Bug Summary

File:home/bhubbard/working/src/ceph/build/src/pybind/rados2/rados.c
Warning:line 24884, column 108
Value stored to '__pyx_filename' is never read

Annotated Source Code

[?] Use j/k keys for keyboard navigation

1/* Generated by Cython 0.23.4 */
2
3/* BEGIN: Cython Metadata
4{
5 "distutils": {
6 "depends": [
7 "/usr/include/python2.7/Python.h",
8 "/usr/include/python2.7/pythread.h"
9 ],
10 "extra_compile_args": [
11 "-fno-strict-aliasing",
12 "-DNDEBUG",
13 "-g",
14 "-fwrapv",
15 "-O2",
16 "-Wall",
17 "-Wstrict-prototypes",
18 "-Wdate-time",
19 "-D_FORTIFY_SOURCE=2",
20 "-g",
21 "-fstack-protector-strong",
22 "-Wformat",
23 "-Werror=format-security"
24 ],
25 "extra_link_args": [
26 "-Wl,-Bsymbolic-functions",
27 "-Wl,-z,relro",
28 "-Xlinker",
29 "-export-dynamic",
30 "-Wl,-O1",
31 "-Wl,-Bsymbolic-functions"
32 ],
33 "include_dirs": [
34 "/usr/include/python2.7"
35 ],
36 "libraries": [
37 "rados",
38 "pthread",
39 "dl",
40 "util",
41 "m"
42 ],
43 "library_dirs": [
44 "/usr/lib",
45 "/usr/lib/python2.7/config-x86_64-linux-gnu"
46 ]
47 }
48}
49END: Cython Metadata */
50
51#define PY_SSIZE_T_CLEAN
52#include "Python.h"
53#ifndef Py_PYTHON_H
54 #error Python headers needed to compile C extensions, please install development version of Python.
55#elif PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x02060000 || (0x03000000 <= PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
&& PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x03020000)
56 #error Cython requires Python 2.6+ or Python 3.2+.
57#else
58#define CYTHON_ABI"0_23_4" "0_23_4"
59#include <stddef.h>
60#ifndef offsetof
61#define offsetof(type, member)__builtin_offsetof(type, member) ( (size_t) & ((type*)0) -> member )
62#endif
63#if !defined(WIN32) && !defined(MS_WINDOWS)
64 #ifndef __stdcall
65 #define __stdcall
66 #endif
67 #ifndef __cdecl
68 #define __cdecl
69 #endif
70 #ifndef __fastcall
71 #define __fastcall
72 #endif
73#endif
74#ifndef DL_IMPORT
75 #define DL_IMPORT(t)t t
76#endif
77#ifndef DL_EXPORT
78 #define DL_EXPORT(t)t t
79#endif
80#ifndef PY_LONG_LONGlong long
81 #define PY_LONG_LONGlong long LONG_LONG
82#endif
83#ifndef Py_HUGE_VAL(__builtin_huge_val())
84 #define Py_HUGE_VAL(__builtin_huge_val()) HUGE_VAL(__builtin_huge_val())
85#endif
86#ifdef PYPY_VERSION
87#define CYTHON_COMPILING_IN_PYPY0 1
88#define CYTHON_COMPILING_IN_CPYTHON1 0
89#else
90#define CYTHON_COMPILING_IN_PYPY0 0
91#define CYTHON_COMPILING_IN_CPYTHON1 1
92#endif
93#if !defined(CYTHON_USE_PYLONG_INTERNALS1) && CYTHON_COMPILING_IN_CPYTHON1 && PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x02070000
94#define CYTHON_USE_PYLONG_INTERNALS1 1
95#endif
96#if CYTHON_COMPILING_IN_PYPY0 && PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x02070600 && !defined(Py_OptimizeFlag)
97#define Py_OptimizeFlag 0
98#endif
99#define __PYX_BUILD_PY_SSIZE_T"n" "n"
100#define CYTHON_FORMAT_SSIZE_T"z" "z"
101#if PY_MAJOR_VERSION2 < 3
102 #define __Pyx_BUILTIN_MODULE_NAME"__builtin__" "__builtin__"
103 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline
, lnos)
\
104 PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
105 #define __Pyx_DefaultClassTypePyClass_Type PyClass_Type
106#else
107 #define __Pyx_BUILTIN_MODULE_NAME"__builtin__" "builtins"
108 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline
, lnos)
\
109 PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
110 #define __Pyx_DefaultClassTypePyClass_Type PyType_Type
111#endif
112#ifndef Py_TPFLAGS_CHECKTYPES(1L<<4)
113 #define Py_TPFLAGS_CHECKTYPES(1L<<4) 0
114#endif
115#ifndef Py_TPFLAGS_HAVE_INDEX(1L<<17)
116 #define Py_TPFLAGS_HAVE_INDEX(1L<<17) 0
117#endif
118#ifndef Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)
119 #define Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21) 0
120#endif
121#ifndef Py_TPFLAGS_HAVE_FINALIZE0
122 #define Py_TPFLAGS_HAVE_FINALIZE0 0
123#endif
124#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
> 0x03030000 && defined(PyUnicode_KIND)
125 #define CYTHON_PEP393_ENABLED0 1
126 #define __Pyx_PyUnicode_READY(op)(0) (likely(PyUnicode_IS_READY(op))__builtin_expect(!!(PyUnicode_IS_READY(op)), 1) ?\
127 0 : _PyUnicode_Ready((PyObject *)(op)))
128 #define __Pyx_PyUnicode_GET_LENGTH(u)(((PyUnicodeObject *)(u))->length) PyUnicode_GET_LENGTH(u)
129 #define __Pyx_PyUnicode_READ_CHAR(u, i)((Py_UCS4)((((PyUnicodeObject *)(u))->str)[i])) PyUnicode_READ_CHAR(u, i)
130 #define __Pyx_PyUnicode_KIND(u)(sizeof(Py_UNICODE)) PyUnicode_KIND(u)
131 #define __Pyx_PyUnicode_DATA(u)((void*)(((PyUnicodeObject *)(u))->str)) PyUnicode_DATA(u)
132 #define __Pyx_PyUnicode_READ(k, d, i)((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) PyUnicode_READ(k, d, i)
133#else
134 #define CYTHON_PEP393_ENABLED0 0
135 #define __Pyx_PyUnicode_READY(op)(0) (0)
136 #define __Pyx_PyUnicode_GET_LENGTH(u)(((PyUnicodeObject *)(u))->length) PyUnicode_GET_SIZE(u)(((PyUnicodeObject *)(u))->length)
137 #define __Pyx_PyUnicode_READ_CHAR(u, i)((Py_UCS4)((((PyUnicodeObject *)(u))->str)[i])) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)(((PyUnicodeObject *)(u))->str)[i]))
138 #define __Pyx_PyUnicode_KIND(u)(sizeof(Py_UNICODE)) (sizeof(Py_UNICODE))
139 #define __Pyx_PyUnicode_DATA(u)((void*)(((PyUnicodeObject *)(u))->str)) ((void*)PyUnicode_AS_UNICODE(u)(((PyUnicodeObject *)(u))->str))
140 #define __Pyx_PyUnicode_READ(k, d, i)((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
141#endif
142#if CYTHON_COMPILING_IN_PYPY0
143 #define __Pyx_PyUnicode_Concat(a, b)PyUnicodeUCS4_Concat(a, b) PyNumber_Add(a, b)
144 #define __Pyx_PyUnicode_ConcatSafe(a, b)((__builtin_expect(!!((a) == (&_Py_NoneStruct)), 0) || __builtin_expect
(!!((b) == (&_Py_NoneStruct)), 0)) ? PyNumber_Add(a, b) :
PyUnicodeUCS4_Concat(a, b))
PyNumber_Add(a, b)
145#else
146 #define __Pyx_PyUnicode_Concat(a, b)PyUnicodeUCS4_Concat(a, b) PyUnicode_ConcatPyUnicodeUCS4_Concat(a, b)
147 #define __Pyx_PyUnicode_ConcatSafe(a, b)((__builtin_expect(!!((a) == (&_Py_NoneStruct)), 0) || __builtin_expect
(!!((b) == (&_Py_NoneStruct)), 0)) ? PyNumber_Add(a, b) :
PyUnicodeUCS4_Concat(a, b))
((unlikely((a) == Py_None)__builtin_expect(!!((a) == (&_Py_NoneStruct)), 0) || unlikely((b) == Py_None)__builtin_expect(!!((b) == (&_Py_NoneStruct)), 0)) ?\
148 PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)PyUnicodeUCS4_Concat(a, b))
149#endif
150#if CYTHON_COMPILING_IN_PYPY0 && !defined(PyUnicode_ContainsPyUnicodeUCS4_Contains)
151 #define PyUnicode_ContainsPyUnicodeUCS4_Contains(u, s) PySequence_Contains(u, s)
152#endif
153#define __Pyx_PyString_FormatSafe(a, b)((__builtin_expect(!!((a) == (&_Py_NoneStruct)), 0)) ? PyNumber_Remainder
(a, b) : PyString_Format(a, b))
((unlikely((a) == Py_None)__builtin_expect(!!((a) == (&_Py_NoneStruct)), 0)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)PyString_Format(a, b))
154#define __Pyx_PyUnicode_FormatSafe(a, b)((__builtin_expect(!!((a) == (&_Py_NoneStruct)), 0)) ? PyNumber_Remainder
(a, b) : PyUnicodeUCS4_Format(a, b))
((unlikely((a) == Py_None)__builtin_expect(!!((a) == (&_Py_NoneStruct)), 0)) ? PyNumber_Remainder(a, b) : PyUnicode_FormatPyUnicodeUCS4_Format(a, b))
155#if PY_MAJOR_VERSION2 >= 3
156 #define __Pyx_PyString_Format(a, b)PyString_Format(a, b) PyUnicode_FormatPyUnicodeUCS4_Format(a, b)
157#else
158 #define __Pyx_PyString_Format(a, b)PyString_Format(a, b) PyString_Format(a, b)
159#endif
160#if PY_MAJOR_VERSION2 >= 3
161 #define PyBaseString_Type PyUnicode_Type
162 #define PyStringObject PyUnicodeObject
163 #define PyString_Type PyUnicode_Type
164 #define PyString_Check PyUnicode_Check
165 #define PyString_CheckExact PyUnicode_CheckExact
166#endif
167#if PY_MAJOR_VERSION2 >= 3
168 #define __Pyx_PyBaseString_Check(obj)(((((((PyObject*)(obj))->ob_type))->tp_flags & ((1L
<<27))) != 0) || ((((((PyObject*)(obj))->ob_type))->
tp_flags & ((1L<<28))) != 0))
PyUnicode_Check(obj)((((((PyObject*)(obj))->ob_type))->tp_flags & ((1L<<
28))) != 0)
169 #define __Pyx_PyBaseString_CheckExact(obj)(((((PyObject*)(obj))->ob_type) == &PyString_Type) || (
(((PyObject*)(obj))->ob_type) == &PyUnicode_Type))
PyUnicode_CheckExact(obj)((((PyObject*)(obj))->ob_type) == &PyUnicode_Type)
170#else
171 #define __Pyx_PyBaseString_Check(obj)(((((((PyObject*)(obj))->ob_type))->tp_flags & ((1L
<<27))) != 0) || ((((((PyObject*)(obj))->ob_type))->
tp_flags & ((1L<<28))) != 0))
(PyString_Check(obj)((((((PyObject*)(obj))->ob_type))->tp_flags & ((1L<<
27))) != 0)
|| PyUnicode_Check(obj)((((((PyObject*)(obj))->ob_type))->tp_flags & ((1L<<
28))) != 0)
)
172 #define __Pyx_PyBaseString_CheckExact(obj)(((((PyObject*)(obj))->ob_type) == &PyString_Type) || (
(((PyObject*)(obj))->ob_type) == &PyUnicode_Type))
(PyString_CheckExact(obj)((((PyObject*)(obj))->ob_type) == &PyString_Type) || PyUnicode_CheckExact(obj)((((PyObject*)(obj))->ob_type) == &PyUnicode_Type))
173#endif
174#ifndef PySet_CheckExact
175 #define PySet_CheckExact(obj)((((PyObject*)(obj))->ob_type) == &PySet_Type) (Py_TYPE(obj)(((PyObject*)(obj))->ob_type) == &PySet_Type)
176#endif
177#define __Pyx_TypeCheck(obj, type)((((PyObject*)(obj))->ob_type) == ((PyTypeObject *)type) ||
PyType_IsSubtype((((PyObject*)(obj))->ob_type), ((PyTypeObject
*)type)))
PyObject_TypeCheck(obj, (PyTypeObject *)type)((((PyObject*)(obj))->ob_type) == ((PyTypeObject *)type) ||
PyType_IsSubtype((((PyObject*)(obj))->ob_type), ((PyTypeObject
*)type)))
178#if PY_MAJOR_VERSION2 >= 3
179 #define PyIntObject PyLongObject
180 #define PyInt_Type PyLong_Type
181 #define PyInt_Check(op)((((op)->ob_type)->tp_flags & ((1L<<23))) != 0
)
PyLong_Check(op)((((((PyObject*)(op))->ob_type))->tp_flags & ((1L<<
24))) != 0)
182 #define PyInt_CheckExact(op)((op)->ob_type == &PyInt_Type) PyLong_CheckExact(op)((((PyObject*)(op))->ob_type) == &PyLong_Type)
183 #define PyInt_FromString PyLong_FromString
184 #define PyInt_FromUnicode PyLong_FromUnicode
185 #define PyInt_FromLong PyLong_FromLong
186 #define PyInt_FromSize_t PyLong_FromSize_t
187 #define PyInt_FromSsize_t PyLong_FromSsize_t
188 #define PyInt_AsLong PyLong_AsLong
189 #define PyInt_AS_LONG PyLong_AS_LONG
190 #define PyInt_AsSsize_t PyLong_AsSsize_t
191 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
192 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
193 #define PyNumber_Int PyNumber_Long
194#endif
195#if PY_MAJOR_VERSION2 >= 3
196 #define PyBoolObject PyLongObject
197#endif
198#if PY_MAJOR_VERSION2 >= 3 && CYTHON_COMPILING_IN_PYPY0
199 #ifndef PyUnicode_InternFromString
200 #define PyUnicode_InternFromString(s) PyUnicode_FromStringPyUnicodeUCS4_FromString(s)
201 #endif
202#endif
203#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030200A4
204 typedef long Py_hash_t;
205 #define __Pyx_PyInt_FromHash_tPyInt_FromLong PyInt_FromLong
206 #define __Pyx_PyInt_AsHash_tPyInt_AsLong PyInt_AsLong
207#else
208 #define __Pyx_PyInt_FromHash_tPyInt_FromLong PyInt_FromSsize_t
209 #define __Pyx_PyInt_AsHash_tPyInt_AsLong PyInt_AsSsize_t
210#endif
211#if PY_MAJOR_VERSION2 >= 3
212 #define __Pyx_PyMethod_New(func, self, klass)PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
213#else
214 #define __Pyx_PyMethod_New(func, self, klass)PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
215#endif
216#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030500B1
217#define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
218#define __Pyx_PyType_AsAsync(obj)((void*)0) (Py_TYPE(obj)(((PyObject*)(obj))->ob_type)->tp_as_async)
219#elif CYTHON_COMPILING_IN_CPYTHON1 && PY_MAJOR_VERSION2 >= 3
220typedef struct {
221 unaryfunc am_await;
222 unaryfunc am_aiter;
223 unaryfunc am_anext;
224} __Pyx_PyAsyncMethodsStruct;
225#define __Pyx_PyType_AsAsync(obj)((void*)0) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)(((PyObject*)(obj))->ob_type)->tp_reserved))
226#else
227#define __Pyx_PyType_AsAsync(obj)((void*)0) NULL((void*)0)
228#endif
229#ifndef CYTHON_RESTRICT__restrict__
230 #if defined(__GNUC__4)
231 #define CYTHON_RESTRICT__restrict__ __restrict__
232 #elif defined(_MSC_VER) && _MSC_VER >= 1400
233 #define CYTHON_RESTRICT__restrict__ __restrict
234 #elif defined (__STDC_VERSION__199901L) && __STDC_VERSION__199901L >= 199901L
235 #define CYTHON_RESTRICT__restrict__ restrict
236 #else
237 #define CYTHON_RESTRICT__restrict__
238 #endif
239#endif
240#define __Pyx_void_to_None(void_result)((void)(void_result), ( ((PyObject*)((&_Py_NoneStruct)))->
ob_refcnt++), (&_Py_NoneStruct))
((void)(void_result), Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++), Py_None(&_Py_NoneStruct))
241
242#ifndef CYTHON_INLINE__inline__
243 #if defined(__GNUC__4)
244 #define CYTHON_INLINE__inline__ __inline__
245 #elif defined(_MSC_VER)
246 #define CYTHON_INLINE__inline__ __inline
247 #elif defined (__STDC_VERSION__199901L) && __STDC_VERSION__199901L >= 199901L
248 #define CYTHON_INLINE__inline__ inline
249 #else
250 #define CYTHON_INLINE__inline__
251 #endif
252#endif
253
254#if defined(WIN32) || defined(MS_WINDOWS)
255 #define _USE_MATH_DEFINES
256#endif
257#include <math.h>
258#ifdef NAN(__builtin_nanf (""))
259#define __PYX_NAN()((float) (__builtin_nanf (""))) ((float) NAN(__builtin_nanf ("")))
260#else
261static CYTHON_INLINE__inline__ float __PYX_NAN()((float) (__builtin_nanf (""))) {
262 float value;
263 memset(&value, 0xFF, sizeof(value));
264 return value;
265}
266#endif
267
268
269#if PY_MAJOR_VERSION2 >= 3
270 #define __Pyx_PyNumber_Divide(x,y)PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
271 #define __Pyx_PyNumber_InPlaceDivide(x,y)PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
272#else
273 #define __Pyx_PyNumber_Divide(x,y)PyNumber_Divide(x,y) PyNumber_Divide(x,y)
274 #define __Pyx_PyNumber_InPlaceDivide(x,y)PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
275#endif
276
277#ifndef __PYX_EXTERN_Cextern
278 #ifdef __cplusplus
279 #define __PYX_EXTERN_Cextern extern "C"
280 #else
281 #define __PYX_EXTERN_Cextern extern
282 #endif
283#endif
284
285#define __PYX_HAVE__rados
286#define __PYX_HAVE_API__rados
287#include "rados/librados.h"
288#include "string.h"
289#include "stdio.h"
290#include "pythread.h"
291#include "errno.h"
292#include "stdint.h"
293#include "stdlib.h"
294#include "time.h"
295#include "sys/time.h"
296#include "rados/rados_types.h"
297#ifdef _OPENMP
298#include <omp.h>
299#endif /* _OPENMP */
300
301#ifdef PYREX_WITHOUT_ASSERTIONS
302#define CYTHON_WITHOUT_ASSERTIONS
303#endif
304
305#ifndef CYTHON_UNUSED__attribute__ ((__unused__))
306# if defined(__GNUC__4)
307# if !(defined(__cplusplus)) || (__GNUC__4 > 3 || (__GNUC__4 == 3 && __GNUC_MINOR__2 >= 4))
308# define CYTHON_UNUSED__attribute__ ((__unused__)) __attribute__ ((__unused__))
309# else
310# define CYTHON_UNUSED__attribute__ ((__unused__))
311# endif
312# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
313# define CYTHON_UNUSED__attribute__ ((__unused__)) __attribute__ ((__unused__))
314# else
315# define CYTHON_UNUSED__attribute__ ((__unused__))
316# endif
317#endif
318#ifndef CYTHON_NCP_UNUSED
319# if CYTHON_COMPILING_IN_CPYTHON1
320# define CYTHON_NCP_UNUSED
321# else
322# define CYTHON_NCP_UNUSED CYTHON_UNUSED__attribute__ ((__unused__))
323# endif
324#endif
325typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
326 const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
327
328#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII0 0
329#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT0 0
330#define __PYX_DEFAULT_STRING_ENCODING"" ""
331#define __Pyx_PyObject_FromStringPyString_FromString __Pyx_PyBytes_FromStringPyString_FromString
332#define __Pyx_PyObject_FromStringAndSizePyString_FromStringAndSize __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize
333#define __Pyx_uchar_cast(c)((unsigned char)c) ((unsigned char)c)
334#define __Pyx_long_cast(x)((long)x) ((long)x)
335#define __Pyx_fits_Py_ssize_t(v, type, is_signed)( (sizeof(type) < sizeof(Py_ssize_t)) || (sizeof(type) >
sizeof(Py_ssize_t) && __builtin_expect(!!(v < (type
)((Py_ssize_t)(((size_t)-1)>>1)) || v == (type)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!is_signed || __builtin_expect
(!!(v > (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
v == (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(type) == sizeof(Py_ssize_t) && (is_signed
|| __builtin_expect(!!(v < (type)((Py_ssize_t)(((size_t)-
1)>>1)) || v == (type)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) )
(\
336 (sizeof(type) < sizeof(Py_ssize_t)) ||\
337 (sizeof(type) > sizeof(Py_ssize_t) &&\
338 likely(v < (type)PY_SSIZE_T_MAX ||\__builtin_expect(!!(v < (type)((Py_ssize_t)(((size_t)-1)>>
1)) || v == (type)((Py_ssize_t)(((size_t)-1)>>1))), 1)
339 v == (type)PY_SSIZE_T_MAX)__builtin_expect(!!(v < (type)((Py_ssize_t)(((size_t)-1)>>
1)) || v == (type)((Py_ssize_t)(((size_t)-1)>>1))), 1)
&&\
340 (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\__builtin_expect(!!(v > (type)(-((Py_ssize_t)(((size_t)-1)
>>1))-1) || v == (type)(-((Py_ssize_t)(((size_t)-1)>>
1))-1)), 1)
341 v == (type)PY_SSIZE_T_MIN)__builtin_expect(!!(v > (type)(-((Py_ssize_t)(((size_t)-1)
>>1))-1) || v == (type)(-((Py_ssize_t)(((size_t)-1)>>
1))-1)), 1)
)) ||\
342 (sizeof(type) == sizeof(Py_ssize_t) &&\
343 (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\__builtin_expect(!!(v < (type)((Py_ssize_t)(((size_t)-1)>>
1)) || v == (type)((Py_ssize_t)(((size_t)-1)>>1))), 1)
344 v == (type)PY_SSIZE_T_MAX)__builtin_expect(!!(v < (type)((Py_ssize_t)(((size_t)-1)>>
1)) || v == (type)((Py_ssize_t)(((size_t)-1)>>1))), 1)
)) )
345#if defined (__cplusplus) && __cplusplus >= 201103L
346 #include <cstdlib>
347 #define __Pyx_sst_abs(value)labs(value) std::abs(value)
348#elif SIZEOF_INT4 >= SIZEOF_SIZE_T8
349 #define __Pyx_sst_abs(value)labs(value) abs(value)
350#elif SIZEOF_LONG8 >= SIZEOF_SIZE_T8
351 #define __Pyx_sst_abs(value)labs(value) labs(value)
352#elif defined (_MSC_VER) && defined (_M_X64)
353 #define __Pyx_sst_abs(value)labs(value) _abs64(value)
354#elif defined (__STDC_VERSION__199901L) && __STDC_VERSION__199901L >= 199901L
355 #define __Pyx_sst_abs(value)labs(value) llabs(value)
356#elif defined (__GNUC__4)
357 #define __Pyx_sst_abs(value)labs(value) __builtin_llabs(value)
358#else
359 #define __Pyx_sst_abs(value)labs(value) ((value<0) ? -value : value)
360#endif
361static CYTHON_INLINE__inline__ char* __Pyx_PyObject_AsString(PyObject*);
362static CYTHON_INLINE__inline__ char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
363#define __Pyx_PyByteArray_FromString(s)PyByteArray_FromStringAndSize((const char*)s, strlen((const char
*)s))
PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
364#define __Pyx_PyByteArray_FromStringAndSize(s, l)PyByteArray_FromStringAndSize((const char*)s, l) PyByteArray_FromStringAndSize((const char*)s, l)
365#define __Pyx_PyBytes_FromStringPyString_FromString PyBytes_FromStringPyString_FromString
366#define __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize PyBytes_FromStringAndSizePyString_FromStringAndSize
367static CYTHON_INLINE__inline__ PyObject* __Pyx_PyUnicode_FromString(const char*);
368#if PY_MAJOR_VERSION2 < 3
369 #define __Pyx_PyStr_FromStringPyString_FromString __Pyx_PyBytes_FromStringPyString_FromString
370 #define __Pyx_PyStr_FromStringAndSizePyString_FromStringAndSize __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize
371#else
372 #define __Pyx_PyStr_FromStringPyString_FromString __Pyx_PyUnicode_FromString
373 #define __Pyx_PyStr_FromStringAndSizePyString_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
374#endif
375#define __Pyx_PyObject_AsSString(s)((signed char*) __Pyx_PyObject_AsString(s)) ((signed char*) __Pyx_PyObject_AsString(s))
376#define __Pyx_PyObject_AsUString(s)((unsigned char*) __Pyx_PyObject_AsString(s)) ((unsigned char*) __Pyx_PyObject_AsString(s))
377#define __Pyx_PyObject_FromCString(s)PyString_FromString((const char*)s) __Pyx_PyObject_FromStringPyString_FromString((const char*)s)
378#define __Pyx_PyBytes_FromCString(s)PyString_FromString((const char*)s) __Pyx_PyBytes_FromStringPyString_FromString((const char*)s)
379#define __Pyx_PyByteArray_FromCString(s)PyByteArray_FromStringAndSize((const char*)(const char*)s, strlen
((const char*)(const char*)s))
__Pyx_PyByteArray_FromString((const char*)s)PyByteArray_FromStringAndSize((const char*)(const char*)s, strlen
((const char*)(const char*)s))
380#define __Pyx_PyStr_FromCString(s)PyString_FromString((const char*)s) __Pyx_PyStr_FromStringPyString_FromString((const char*)s)
381#define __Pyx_PyUnicode_FromCString(s)__Pyx_PyUnicode_FromString((const char*)s) __Pyx_PyUnicode_FromString((const char*)s)
382#if PY_MAJOR_VERSION2 < 3
383static CYTHON_INLINE__inline__ size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
384{
385 const Py_UNICODE *u_end = u;
386 while (*u_end++) ;
387 return (size_t)(u_end - u - 1);
388}
389#else
390#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
391#endif
392#define __Pyx_PyUnicode_FromUnicode(u)PyUnicodeUCS4_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) PyUnicode_FromUnicodePyUnicodeUCS4_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
393#define __Pyx_PyUnicode_FromUnicodeAndLengthPyUnicodeUCS4_FromUnicode PyUnicode_FromUnicodePyUnicodeUCS4_FromUnicode
394#define __Pyx_PyUnicode_AsUnicodePyUnicodeUCS4_AsUnicode PyUnicode_AsUnicodePyUnicodeUCS4_AsUnicode
395#define __Pyx_NewRef(obj)(( ((PyObject*)(obj))->ob_refcnt++), obj) (Py_INCREF(obj)( ((PyObject*)(obj))->ob_refcnt++), obj)
396#define __Pyx_Owned_Py_None(b)(( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++), (&
_Py_NoneStruct))
__Pyx_NewRef(Py_None)(( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++), (&
_Py_NoneStruct))
397#define __Pyx_PyBool_FromLong(b)((b) ? (( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->
ob_refcnt++), ((PyObject *) &_Py_TrueStruct)) : (( ((PyObject
*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt++), ((PyObject
*) &_Py_ZeroStruct)))
((b) ? __Pyx_NewRef(Py_True)(( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->ob_refcnt
++), ((PyObject *) &_Py_TrueStruct))
: __Pyx_NewRef(Py_False)(( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++), ((PyObject *) &_Py_ZeroStruct))
)
398static CYTHON_INLINE__inline__ int __Pyx_PyObject_IsTrue(PyObject*);
399static CYTHON_INLINE__inline__ PyObject* __Pyx_PyNumber_Int(PyObject* x);
400static CYTHON_INLINE__inline__ Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
401static CYTHON_INLINE__inline__ PyObject * __Pyx_PyInt_FromSize_t(size_t);
402#if CYTHON_COMPILING_IN_CPYTHON1
403#define __pyx_PyFloat_AsDouble(x)(((((PyObject*)(x))->ob_type) == &PyFloat_Type) ? (((PyFloatObject
*)(x))->ob_fval) : PyFloat_AsDouble(x))
(PyFloat_CheckExact(x)((((PyObject*)(x))->ob_type) == &PyFloat_Type) ? PyFloat_AS_DOUBLE(x)(((PyFloatObject *)(x))->ob_fval) : PyFloat_AsDouble(x))
404#else
405#define __pyx_PyFloat_AsDouble(x)(((((PyObject*)(x))->ob_type) == &PyFloat_Type) ? (((PyFloatObject
*)(x))->ob_fval) : PyFloat_AsDouble(x))
PyFloat_AsDouble(x)
406#endif
407#define __pyx_PyFloat_AsFloat(x)((float) (((((PyObject*)(x))->ob_type) == &PyFloat_Type
) ? (((PyFloatObject *)(x))->ob_fval) : PyFloat_AsDouble(x
)))
((float) __pyx_PyFloat_AsDouble(x)(((((PyObject*)(x))->ob_type) == &PyFloat_Type) ? (((PyFloatObject
*)(x))->ob_fval) : PyFloat_AsDouble(x))
)
408#if PY_MAJOR_VERSION2 < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII0
409static int __Pyx_sys_getdefaultencoding_not_ascii;
410static int __Pyx_init_sys_getdefaultencoding_params(void) {
411 PyObject* sys;
412 PyObject* default_encoding = NULL((void*)0);
413 PyObject* ascii_chars_u = NULL((void*)0);
414 PyObject* ascii_chars_b = NULL((void*)0);
415 const char* default_encoding_c;
416 sys = PyImport_ImportModule("sys");
417 if (!sys) goto bad;
418 default_encoding = PyObject_CallMethod_PyObject_CallMethod_SizeT(sys, (char*) "getdefaultencoding", NULL((void*)0));
419 Py_DECREF(sys)do { if ( --((PyObject*)(sys))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(sys)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(sys)))); } while (0)
;
420 if (!default_encoding) goto bad;
421 default_encoding_c = PyBytes_AsStringPyString_AsString(default_encoding);
422 if (!default_encoding_c) goto bad;
423 if (strcmp(default_encoding_c, "ascii")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(default_encoding_c) && __builtin_constant_p ("ascii"
) && (__s1_len = __builtin_strlen (default_encoding_c
), __s2_len = __builtin_strlen ("ascii"), (!((size_t)(const void
*)((default_encoding_c) + 1) - (size_t)(const void *)(default_encoding_c
) == 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("ascii") + 1) - (size_t)(const void *)("ascii") == 1) ||
__s2_len >= 4)) ? __builtin_strcmp (default_encoding_c, "ascii"
) : (__builtin_constant_p (default_encoding_c) && ((size_t
)(const void *)((default_encoding_c) + 1) - (size_t)(const void
*)(default_encoding_c) == 1) && (__s1_len = __builtin_strlen
(default_encoding_c), __s1_len < 4) ? (__builtin_constant_p
("ascii") && ((size_t)(const void *)(("ascii") + 1) -
(size_t)(const void *)("ascii") == 1) ? __builtin_strcmp (default_encoding_c
, "ascii") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("ascii"); int __result = ((
(const unsigned char *) (const char *) (default_encoding_c))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (default_encoding_c
))[1] - __s2[1]); if (__s1_len > 1 && __result == 0
) { __result = (((const unsigned char *) (const char *) (default_encoding_c
))[2] - __s2[2]); if (__s1_len > 2 && __result == 0
) __result = (((const unsigned char *) (const char *) (default_encoding_c
))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (
"ascii") && ((size_t)(const void *)(("ascii") + 1) - (
size_t)(const void *)("ascii") == 1) && (__s2_len = __builtin_strlen
("ascii"), __s2_len < 4) ? (__builtin_constant_p (default_encoding_c
) && ((size_t)(const void *)((default_encoding_c) + 1
) - (size_t)(const void *)(default_encoding_c) == 1) ? __builtin_strcmp
(default_encoding_c, "ascii") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (default_encoding_c
); int __result = (((const unsigned char *) (const char *) ("ascii"
))[0] - __s2[0]); if (__s2_len > 0 && __result == 0
) { __result = (((const unsigned char *) (const char *) ("ascii"
))[1] - __s2[1]); if (__s2_len > 1 && __result == 0
) { __result = (((const unsigned char *) (const char *) ("ascii"
))[2] - __s2[2]); if (__s2_len > 2 && __result == 0
) __result = (((const unsigned char *) (const char *) ("ascii"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (default_encoding_c
, "ascii")))); })
== 0) {
424 __Pyx_sys_getdefaultencoding_not_ascii = 0;
425 } else {
426 char ascii_chars[128];
427 int c;
428 for (c = 0; c < 128; c++) {
429 ascii_chars[c] = c;
430 }
431 __Pyx_sys_getdefaultencoding_not_ascii = 1;
432 ascii_chars_u = PyUnicode_DecodeASCIIPyUnicodeUCS4_DecodeASCII(ascii_chars, 128, NULL((void*)0));
433 if (!ascii_chars_u) goto bad;
434 ascii_chars_b = PyUnicode_AsEncodedStringPyUnicodeUCS4_AsEncodedString(ascii_chars_u, default_encoding_c, NULL((void*)0));
435 if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b)((((((PyObject*)(ascii_chars_b))->ob_type))->tp_flags &
((1L<<27))) != 0)
|| memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b)(((PyStringObject *)(ascii_chars_b))->ob_sval), 128) != 0) {
436 PyErr_Format(
437 PyExc_ValueError,
438 "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
439 default_encoding_c);
440 goto bad;
441 }
442 Py_DECREF(ascii_chars_u)do { if ( --((PyObject*)(ascii_chars_u))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(ascii_chars_u)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(ascii_chars_u))))
; } while (0)
;
443 Py_DECREF(ascii_chars_b)do { if ( --((PyObject*)(ascii_chars_b))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(ascii_chars_b)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(ascii_chars_b))))
; } while (0)
;
444 }
445 Py_DECREF(default_encoding)do { if ( --((PyObject*)(default_encoding))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(default_encoding)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(default_encoding
)))); } while (0)
;
446 return 0;
447bad:
448 Py_XDECREF(default_encoding)do { if ((default_encoding) == ((void*)0)) ; else do { if ( --
((PyObject*)(default_encoding))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(default_encoding)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(default_encoding)))); }
while (0); } while (0)
;
449 Py_XDECREF(ascii_chars_u)do { if ((ascii_chars_u) == ((void*)0)) ; else do { if ( --((
PyObject*)(ascii_chars_u))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(ascii_chars_u)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(ascii_chars_u)))); } while (0); }
while (0)
;
450 Py_XDECREF(ascii_chars_b)do { if ((ascii_chars_b) == ((void*)0)) ; else do { if ( --((
PyObject*)(ascii_chars_b))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(ascii_chars_b)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(ascii_chars_b)))); } while (0); }
while (0)
;
451 return -1;
452}
453#endif
454#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT0 && PY_MAJOR_VERSION2 >= 3
455#define __Pyx_PyUnicode_FromStringAndSize(c_str, size)PyUnicodeUCS4_Decode(c_str, size, "", ((void*)0)) PyUnicode_DecodeUTF8PyUnicodeUCS4_DecodeUTF8(c_str, size, NULL((void*)0))
456#else
457#define __Pyx_PyUnicode_FromStringAndSize(c_str, size)PyUnicodeUCS4_Decode(c_str, size, "", ((void*)0)) PyUnicode_DecodePyUnicodeUCS4_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING"", NULL((void*)0))
458#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT0
459static char* __PYX_DEFAULT_STRING_ENCODING"";
460static int __Pyx_init_sys_getdefaultencoding_params(void) {
461 PyObject* sys;
462 PyObject* default_encoding = NULL((void*)0);
463 char* default_encoding_c;
464 sys = PyImport_ImportModule("sys");
465 if (!sys) goto bad;
466 default_encoding = PyObject_CallMethod_PyObject_CallMethod_SizeT(sys, (char*) (const char*) "getdefaultencoding", NULL((void*)0));
467 Py_DECREF(sys)do { if ( --((PyObject*)(sys))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(sys)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(sys)))); } while (0)
;
468 if (!default_encoding) goto bad;
469 default_encoding_c = PyBytes_AsStringPyString_AsString(default_encoding);
470 if (!default_encoding_c) goto bad;
471 __PYX_DEFAULT_STRING_ENCODING"" = (char*) malloc(strlen(default_encoding_c));
472 if (!__PYX_DEFAULT_STRING_ENCODING"") goto bad;
473 strcpy(__PYX_DEFAULT_STRING_ENCODING"", default_encoding_c);
474 Py_DECREF(default_encoding)do { if ( --((PyObject*)(default_encoding))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(default_encoding)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(default_encoding
)))); } while (0)
;
475 return 0;
476bad:
477 Py_XDECREF(default_encoding)do { if ((default_encoding) == ((void*)0)) ; else do { if ( --
((PyObject*)(default_encoding))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(default_encoding)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(default_encoding)))); }
while (0); } while (0)
;
478 return -1;
479}
480#endif
481#endif
482
483
484/* Test for GCC > 2.95 */
485#if defined(__GNUC__4) && (__GNUC__4 > 2 || (__GNUC__4 == 2 && (__GNUC_MINOR__2 > 95)))
486 #define likely(x)__builtin_expect(!!(x), 1) __builtin_expect(!!(x), 1)
487 #define unlikely(x)__builtin_expect(!!(x), 0) __builtin_expect(!!(x), 0)
488#else /* !__GNUC__ or GCC < 2.95 */
489 #define likely(x)__builtin_expect(!!(x), 1) (x)
490 #define unlikely(x)__builtin_expect(!!(x), 0) (x)
491#endif /* __GNUC__ */
492
493static PyObject *__pyx_m;
494static PyObject *__pyx_d;
495static PyObject *__pyx_b;
496static PyObject *__pyx_empty_tuple;
497static PyObject *__pyx_empty_bytes;
498static int __pyx_lineno;
499static int __pyx_clineno = 0;
500static const char * __pyx_cfilenm= __FILE__"/home/bhubbard/working/src/ceph/build/src/pybind/rados2/rados.c";
501static const char *__pyx_filename;
502
503
504static const char *__pyx_f[] = {
505 "rados.pyx",
506 "type.pxd",
507 "bool.pxd",
508 "complex.pxd",
509};
510
511/*--- Type declarations ---*/
512struct __pyx_obj_5rados_Rados;
513struct __pyx_obj_5rados_Ioctx;
514struct __pyx_obj_5rados_OmapIterator;
515struct __pyx_obj_5rados_ObjectIterator;
516struct __pyx_obj_5rados_XattrIterator;
517struct __pyx_obj_5rados_SnapIterator;
518struct __pyx_obj_5rados_Snap;
519struct __pyx_obj_5rados_Completion;
520struct __pyx_obj_5rados_WriteOp;
521struct __pyx_obj_5rados_ReadOp;
522struct __pyx_obj_5rados___pyx_scope_struct__requires;
523struct __pyx_obj_5rados___pyx_scope_struct_1_check_type;
524struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr;
525struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr;
526struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper;
527struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func;
528struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr;
529struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict;
530struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr;
531struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat;
532struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read;
533struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute;
534struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator;
535struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace;
536
537/* "rados.pxd":14
538 *
539 *
540 * cdef class Rados(object): # <<<<<<<<<<<<<<
541 * cdef:
542 * rados_t cluster
543 */
544struct __pyx_obj_5rados_Rados {
545 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
546 rados_t cluster;
547 PyObject *state;
548 PyObject *monitor_callback;
549 PyObject *monitor_callback2;
550 PyObject *parsed_args;
551 PyObject *conf_defaults;
552 PyObject *conffile;
553 PyObject *rados_id;
554};
555
556
557/* "rados.pxd":26
558 *
559 *
560 * cdef class Ioctx(object): # <<<<<<<<<<<<<<
561 * cdef:
562 * rados_ioctx_t io
563 */
564struct __pyx_obj_5rados_Ioctx {
565 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
566 rados_ioctx_t io;
567 PyObject *name;
568 PyObject *state;
569 PyObject *locator_key;
570 PyObject *nspace;
571 PyObject *safe_completions;
572 PyObject *complete_completions;
573 PyObject *lock;
574};
575
576
577/* "rados.pyx":1607
578 *
579 *
580 * cdef class OmapIterator(object): # <<<<<<<<<<<<<<
581 * """Omap iterator"""
582 *
583 */
584struct __pyx_obj_5rados_OmapIterator {
585 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
586 struct __pyx_obj_5rados_Ioctx *ioctx;
587 rados_omap_iter_t ctx;
588};
589
590
591/* "rados.pyx":1647
592 *
593 *
594 * cdef class ObjectIterator(object): # <<<<<<<<<<<<<<
595 * """rados.Ioctx Object iterator"""
596 *
597 */
598struct __pyx_obj_5rados_ObjectIterator {
599 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
600 rados_list_ctx_t ctx;
601 PyObject *ioctx;
602};
603
604
605/* "rados.pyx":1694
606 *
607 *
608 * cdef class XattrIterator(object): # <<<<<<<<<<<<<<
609 * """Extended attribute iterator"""
610 *
611 */
612struct __pyx_obj_5rados_XattrIterator {
613 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
614 rados_xattrs_iter_t it;
615 char *_oid;
616 struct __pyx_obj_5rados_Ioctx *ioctx;
617 PyObject *oid;
618};
619
620
621/* "rados.pyx":1744
622 *
623 *
624 * cdef class SnapIterator(object): # <<<<<<<<<<<<<<
625 * """Snapshot iterator"""
626 *
627 */
628struct __pyx_obj_5rados_SnapIterator {
629 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
630 struct __pyx_obj_5rados_Ioctx *ioctx;
631 rados_snap_t *snaps;
632 int max_snap;
633 int cur_snap;
634};
635
636
637/* "rados.pyx":1811
638 *
639 *
640 * cdef class Snap(object): # <<<<<<<<<<<<<<
641 * """Snapshot object"""
642 * cdef public Ioctx ioctx
643 */
644struct __pyx_obj_5rados_Snap {
645 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
646 struct __pyx_obj_5rados_Ioctx *ioctx;
647 PyObject *name;
648 rados_snap_t snap_id;
649};
650
651
652/* "rados.pyx":1845
653 *
654 *
655 * cdef class Completion(object): # <<<<<<<<<<<<<<
656 * """completion object"""
657 *
658 */
659struct __pyx_obj_5rados_Completion {
660 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
661 struct __pyx_obj_5rados_Ioctx *ioctx;
662 PyObject *oncomplete;
663 PyObject *onsafe;
664 rados_callback_t complete_cb;
665 rados_callback_t safe_cb;
666 rados_completion_t rados_comp;
667 PyObject *buf;
668};
669
670
671/* "rados.pyx":1980
672 *
673 *
674 * cdef class WriteOp(object): # <<<<<<<<<<<<<<
675 * cdef rados_write_op_t write_op
676 *
677 */
678struct __pyx_obj_5rados_WriteOp {
679 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
680 rados_write_op_t write_op;
681};
682
683
684/* "rados.pyx":2123
685 *
686 *
687 * cdef class ReadOp(object): # <<<<<<<<<<<<<<
688 * cdef rados_read_op_t read_op
689 *
690 */
691struct __pyx_obj_5rados_ReadOp {
692 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
693 rados_read_op_t read_op;
694};
695
696
697/* "rados.pyx":534
698 * # validate argument types of an instance method
699 * # kwargs is an un-ordered dict, so use args instead
700 * def requires(*types): # <<<<<<<<<<<<<<
701 * def is_type_of(v, t):
702 * if t is None:
703 */
704struct __pyx_obj_5rados___pyx_scope_struct__requires {
705 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
706 PyObject *__pyx_v_check_type;
707 PyObject *__pyx_v_is_type_of;
708 PyObject *__pyx_v_types;
709};
710
711
712/* "rados.pyx":541
713 * return isinstance(v, t)
714 *
715 * def check_type(val, arg_name, arg_type): # <<<<<<<<<<<<<<
716 * if isinstance(arg_type, tuple):
717 * if any(is_type_of(val, t) for t in arg_type):
718 */
719struct __pyx_obj_5rados___pyx_scope_struct_1_check_type {
720 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
721 struct __pyx_obj_5rados___pyx_scope_struct__requires *__pyx_outer_scope;
722 PyObject *__pyx_v_arg_type;
723 PyObject *__pyx_v_val;
724};
725
726
727/* "rados.pyx":543
728 * def check_type(val, arg_name, arg_type):
729 * if isinstance(arg_type, tuple):
730 * if any(is_type_of(val, t) for t in arg_type): # <<<<<<<<<<<<<<
731 * return
732 * type_names = ' or '.join('None' if t is None else t.__name__
733 */
734struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr {
735 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
736 struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *__pyx_outer_scope;
737 PyObject *__pyx_v_t;
738};
739
740
741/* "rados.pyx":545
742 * if any(is_type_of(val, t) for t in arg_type):
743 * return
744 * type_names = ' or '.join('None' if t is None else t.__name__ # <<<<<<<<<<<<<<
745 * for t in arg_type)
746 * raise TypeError('%s must be %s' % (arg_name, type_names))
747 */
748struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr {
749 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
750 struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *__pyx_outer_scope;
751 PyObject *__pyx_v_t;
752 PyObject *__pyx_t_0;
753 Py_ssize_t __pyx_t_1;
754 PyObject *(*__pyx_t_2)(PyObject *);
755};
756
757
758/* "rados.pyx":554
759 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
760 *
761 * def wrapper(f): # <<<<<<<<<<<<<<
762 * # FIXME(sileht): this stop with
763 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
764 */
765struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper {
766 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
767 struct __pyx_obj_5rados___pyx_scope_struct__requires *__pyx_outer_scope;
768 PyObject *__pyx_v_f;
769};
770
771
772/* "rados.pyx":558
773 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
774 * # @wraps(f)
775 * def validate_func(*args, **kwargs): # <<<<<<<<<<<<<<
776 * # ignore the `self` arg
777 * pos_args = zip(args[1:], types)
778 */
779struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func {
780 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
781 struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *__pyx_outer_scope;
782 PyObject *__pyx_v_kwargs;
783};
784
785
786/* "rados.pyx":561
787 * # ignore the `self` arg
788 * pos_args = zip(args[1:], types)
789 * named_args = ((kwargs[name], (name, spec)) for name, spec in types # <<<<<<<<<<<<<<
790 * if name in kwargs)
791 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
792 */
793struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr {
794 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
795 struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *__pyx_outer_scope;
796 PyObject *__pyx_v_name;
797 PyObject *__pyx_v_spec;
798 PyObject *__pyx_t_0;
799 Py_ssize_t __pyx_t_1;
800};
801
802
803/* "rados.pyx":608
804 *
805 *
806 * def flatten_dict(d, name): # <<<<<<<<<<<<<<
807 * items = chain.from_iterable(d.items())
808 * return cstr(''.join(i + '\0' for i in items), name)
809 */
810struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict {
811 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
812 PyObject *__pyx_v_items;
813};
814
815
816/* "rados.pyx":610
817 * def flatten_dict(d, name):
818 * items = chain.from_iterable(d.items())
819 * return cstr(''.join(i + '\0' for i in items), name) # <<<<<<<<<<<<<<
820 *
821 *
822 */
823struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr {
824 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
825 struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *__pyx_outer_scope;
826 PyObject *__pyx_v_i;
827 PyObject *__pyx_t_0;
828 Py_ssize_t __pyx_t_1;
829 PyObject *(*__pyx_t_2)(PyObject *);
830};
831
832
833/* "rados.pyx":2242
834 *
835 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)))
836 * def aio_stat(self, object_name, oncomplete): # <<<<<<<<<<<<<<
837 * """
838 * Asynchronously get object stats (size/mtime)
839 */
840struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat {
841 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
842 PyObject *__pyx_v_oncomplete;
843 time_t __pyx_v_pmtime;
844 uint64_t __pyx_v_psize;
845};
846
847
848/* "rados.pyx":2433
849 * @requires(('object_name', str_type), ('length', int), ('offset', int),
850 * ('oncomplete', opt(Callable)))
851 * def aio_read(self, object_name, length, offset, oncomplete): # <<<<<<<<<<<<<<
852 * """
853 * Asynchronously read data from an object
854 */
855struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read {
856 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
857 PyObject *__pyx_v_length;
858 PyObject *__pyx_v_oncomplete;
859};
860
861
862/* "rados.pyx":2487
863 * ('data', bytes), ('length', int),
864 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
865 * def aio_execute(self, object_name, cls, method, data, # <<<<<<<<<<<<<<
866 * length=8192, oncomplete=None, onsafe=None):
867 * """
868 */
869struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute {
870 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
871 PyObject *__pyx_v_length;
872 PyObject *__pyx_v_oncomplete;
873 PyObject *__pyx_v_onsafe;
874};
875
876
877/* "rados.pyx":4015
878 *
879 *
880 * def set_object_locator(func): # <<<<<<<<<<<<<<
881 * def retfunc(self, *args, **kwargs):
882 * if self.locator_key is not None:
883 */
884struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator {
885 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
886 PyObject *__pyx_v_func;
887};
888
889
890/* "rados.pyx":4028
891 *
892 *
893 * def set_object_namespace(func): # <<<<<<<<<<<<<<
894 * def retfunc(self, *args, **kwargs):
895 * if self.nspace is None:
896 */
897struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace {
898 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
899 PyObject *__pyx_v_func;
900};
901
902
903/* --- Runtime support code (head) --- */
904#ifndef CYTHON_REFNANNY0
905 #define CYTHON_REFNANNY0 0
906#endif
907#if CYTHON_REFNANNY0
908 typedef struct {
909 void (*INCREF)(void*, PyObject*, int);
910 void (*DECREF)(void*, PyObject*, int);
911 void (*GOTREF)(void*, PyObject*, int);
912 void (*GIVEREF)(void*, PyObject*, int);
913 void* (*SetupContext)(const char*, int, const char*);
914 void (*FinishContext)(void**);
915 } __Pyx_RefNannyAPIStruct;
916 static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL((void*)0);
917 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
918 #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL((void*)0);
919#ifdef WITH_THREAD1
920 #define __Pyx_RefNannySetupContext(name, acquire_gil)\
921 if (acquire_gil) {\
922 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
923 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__923, __FILE__"/home/bhubbard/working/src/ceph/build/src/pybind/rados2/rados.c");\
924 PyGILState_Release(__pyx_gilstate_save);\
925 } else {\
926 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__926, __FILE__"/home/bhubbard/working/src/ceph/build/src/pybind/rados2/rados.c");\
927 }
928#else
929 #define __Pyx_RefNannySetupContext(name, acquire_gil)\
930 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__930, __FILE__"/home/bhubbard/working/src/ceph/build/src/pybind/rados2/rados.c")
931#endif
932 #define __Pyx_RefNannyFinishContext()\
933 __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
934 #define __Pyx_INCREF(r)( ((PyObject*)(r))->ob_refcnt++) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__934)
935 #define __Pyx_DECREF(r)do { if ( --((PyObject*)(r))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(r)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(r)))); } while (0)
__Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__935)
936 #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__936)
937 #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__937)
938 #define __Pyx_XINCREF(r)do { if ((r) == ((void*)0)) ; else ( ((PyObject*)(r))->ob_refcnt
++); } while (0)
do { if((r) != NULL((void*)0)) {__Pyx_INCREF(r)( ((PyObject*)(r))->ob_refcnt++); }} while(0)
939 #define __Pyx_XDECREF(r)do { if ((r) == ((void*)0)) ; else do { if ( --((PyObject*)(r
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(r
)))); } while (0); } while (0)
do { if((r) != NULL((void*)0)) {__Pyx_DECREF(r)do { if ( --((PyObject*)(r))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(r)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(r)))); } while (0)
; }} while(0)
940 #define __Pyx_XGOTREF(r) do { if((r) != NULL((void*)0)) {__Pyx_GOTREF(r); }} while(0)
941 #define __Pyx_XGIVEREF(r) do { if((r) != NULL((void*)0)) {__Pyx_GIVEREF(r);}} while(0)
942#else
943 #define __Pyx_RefNannyDeclarations
944 #define __Pyx_RefNannySetupContext(name, acquire_gil)
945 #define __Pyx_RefNannyFinishContext()
946 #define __Pyx_INCREF(r)( ((PyObject*)(r))->ob_refcnt++) Py_INCREF(r)( ((PyObject*)(r))->ob_refcnt++)
947 #define __Pyx_DECREF(r)do { if ( --((PyObject*)(r))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(r)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(r)))); } while (0)
Py_DECREF(r)do { if ( --((PyObject*)(r))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(r)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(r)))); } while (0)
948 #define __Pyx_GOTREF(r)
949 #define __Pyx_GIVEREF(r)
950 #define __Pyx_XINCREF(r)do { if ((r) == ((void*)0)) ; else ( ((PyObject*)(r))->ob_refcnt
++); } while (0)
Py_XINCREF(r)do { if ((r) == ((void*)0)) ; else ( ((PyObject*)(r))->ob_refcnt
++); } while (0)
951 #define __Pyx_XDECREF(r)do { if ((r) == ((void*)0)) ; else do { if ( --((PyObject*)(r
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(r
)))); } while (0); } while (0)
Py_XDECREF(r)do { if ((r) == ((void*)0)) ; else do { if ( --((PyObject*)(r
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(r
)))); } while (0); } while (0)
952 #define __Pyx_XGOTREF(r)
953 #define __Pyx_XGIVEREF(r)
954#endif
955#define __Pyx_XDECREF_SET(r, v)do { PyObject *tmp = (PyObject *) r; r = v; do { if ((tmp) ==
((void*)0)) ; else do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0); } while (0)
do {\
956 PyObject *tmp = (PyObject *) r;\
957 r = v; __Pyx_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;\
958 } while (0)
959#define __Pyx_DECREF_SET(r, v)do { PyObject *tmp = (PyObject *) r; r = v; do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
do {\
960 PyObject *tmp = (PyObject *) r;\
961 r = v; __Pyx_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;\
962 } while (0)
963#define __Pyx_CLEAR(r)do { PyObject* tmp = ((PyObject*)(r)); r = ((void*)0); do { if
( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0);} while(0)
do { PyObject* tmp = ((PyObject*)(r)); r = NULL((void*)0); __Pyx_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;} while(0)
964#define __Pyx_XCLEAR(r)do { if((r) != ((void*)0)) {PyObject* tmp = ((PyObject*)(r));
r = ((void*)0); do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0);}} while(0)
do { if((r) != NULL((void*)0)) {PyObject* tmp = ((PyObject*)(r)); r = NULL((void*)0); __Pyx_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;}} while(0)
965
966#if CYTHON_COMPILING_IN_CPYTHON1
967static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
968 PyTypeObject* tp = Py_TYPE(obj)(((PyObject*)(obj))->ob_type);
969 if (likely(tp->tp_getattro)__builtin_expect(!!(tp->tp_getattro), 1))
970 return tp->tp_getattro(obj, attr_name);
971#if PY_MAJOR_VERSION2 < 3
972 if (likely(tp->tp_getattr)__builtin_expect(!!(tp->tp_getattr), 1))
973 return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)(((PyStringObject *)(attr_name))->ob_sval));
974#endif
975 return PyObject_GetAttr(obj, attr_name);
976}
977#else
978#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
979#endif
980
981static PyObject *__Pyx_GetBuiltinName(PyObject *name);
982
983static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
984 Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
985
986static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
987
988static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
989 PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
990 const char* function_name);
991
992#if CYTHON_COMPILING_IN_CPYTHON1
993static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
994#else
995#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
996#endif
997
998#if CYTHON_COMPILING_IN_CPYTHON1
999static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
1000#endif
1001
1002static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
1003
1004#if CYTHON_COMPILING_IN_CPYTHON1
1005#define __Pyx_PyObject_DelAttrStr(o,n)__Pyx_PyObject_SetAttrStr(o,n,((void*)0)) __Pyx_PyObject_SetAttrStr(o,n,NULL((void*)0))
1006static CYTHON_INLINE__inline__ int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
1007 PyTypeObject* tp = Py_TYPE(obj)(((PyObject*)(obj))->ob_type);
1008 if (likely(tp->tp_setattro)__builtin_expect(!!(tp->tp_setattro), 1))
1009 return tp->tp_setattro(obj, attr_name, value);
1010#if PY_MAJOR_VERSION2 < 3
1011 if (likely(tp->tp_setattr)__builtin_expect(!!(tp->tp_setattr), 1))
1012 return tp->tp_setattr(obj, PyString_AS_STRING(attr_name)(((PyStringObject *)(attr_name))->ob_sval), value);
1013#endif
1014 return PyObject_SetAttr(obj, attr_name, value);
1015}
1016#else
1017#define __Pyx_PyObject_DelAttrStr(o,n)__Pyx_PyObject_SetAttrStr(o,n,((void*)0)) PyObject_DelAttr(o,n)PyObject_SetAttr((o),(n),((void*)0))
1018#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
1019#endif
1020
1021#if CYTHON_COMPILING_IN_CPYTHON1
1022static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
1023#else
1024#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL((void*)0))
1025#endif
1026
1027static CYTHON_INLINE__inline__ PyObject *__Pyx_GetModuleGlobalName(PyObject *name);
1028
1029static CYTHON_INLINE__inline__ int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
1030 int result = PySequence_Contains(seq, item);
1031 return unlikely(result < 0)__builtin_expect(!!(result < 0), 0) ? result : (result == (eq == Py_EQ2));
1032}
1033
1034static CYTHON_INLINE__inline__ int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);
1035
1036static CYTHON_INLINE__inline__ void __Pyx_RaiseClosureNameError(const char *varname);
1037
1038#if PY_MAJOR_VERSION2 < 3
1039#define __Pyx_PyString_Join_PyString_Join __Pyx_PyBytes_Join_PyString_Join
1040#define __Pyx_PyBaseString_Join(s, v)(((((PyObject*)(s))->ob_type) == &PyUnicode_Type) ? PyUnicodeUCS4_Join
(s, v) : _PyString_Join(s, v))
(PyUnicode_CheckExact(s)((((PyObject*)(s))->ob_type) == &PyUnicode_Type) ? PyUnicode_JoinPyUnicodeUCS4_Join(s, v) : __Pyx_PyBytes_Join_PyString_Join(s, v))
1041#else
1042#define __Pyx_PyString_Join_PyString_Join PyUnicode_JoinPyUnicodeUCS4_Join
1043#define __Pyx_PyBaseString_Join PyUnicode_JoinPyUnicodeUCS4_Join
1044#endif
1045#if CYTHON_COMPILING_IN_CPYTHON1
1046 #if PY_MAJOR_VERSION2 < 3
1047 #define __Pyx_PyBytes_Join_PyString_Join _PyString_Join
1048 #else
1049 #define __Pyx_PyBytes_Join_PyString_Join _PyBytes_Join_PyString_Join
1050 #endif
1051#else
1052static CYTHON_INLINE__inline__ PyObject* __Pyx_PyBytes_Join_PyString_Join(PyObject* sep, PyObject* values);
1053#endif
1054
1055static CYTHON_INLINE__inline__ void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb);
1056static CYTHON_INLINE__inline__ void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb);
1057
1058static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
1059
1060static CYTHON_INLINE__inline__ void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
1061
1062static CYTHON_INLINE__inline__ void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
1063
1064static CYTHON_INLINE__inline__ int __Pyx_IterFinish(void);
1065
1066static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
1067
1068static CYTHON_INLINE__inline__ int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
1069 int result = PyDict_Contains(dict, item);
1070 return unlikely(result < 0)__builtin_expect(!!(result < 0), 0) ? result : (result == (eq == Py_EQ2));
1071}
1072
1073#if PY_MAJOR_VERSION2 >= 3 && !CYTHON_COMPILING_IN_PYPY0
1074static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key)PyObject_GetItem(PyObject *d, PyObject* key) {
1075 PyObject *value;
1076 value = PyDict_GetItemWithError(d, key);
1077 if (unlikely(!value)__builtin_expect(!!(!value), 0)) {
1078 if (!PyErr_Occurred()) {
1079 PyObject* args = PyTuple_Pack(1, key);
1080 if (likely(args)__builtin_expect(!!(args), 1))
1081 PyErr_SetObject(PyExc_KeyError, args);
1082 Py_XDECREF(args)do { if ((args) == ((void*)0)) ; else do { if ( --((PyObject*
)(args))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(args)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(args)))); } while (0); } while (0)
;
1083 }
1084 return NULL((void*)0);
1085 }
1086 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
1087 return value;
1088}
1089#else
1090 #define __Pyx_PyDict_GetItem(d, key)PyObject_GetItem(d, key) PyObject_GetItem(d, key)
1091#endif
1092
1093#if CYTHON_COMPILING_IN_CPYTHON1
1094static CYTHON_INLINE__inline__ PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
1095static CYTHON_INLINE__inline__ PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop);
1096#else
1097#define __Pyx_PyList_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop)
1098#define __Pyx_PyTuple_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop)
1099#endif
1100
1101static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
1102
1103#define __Pyx_CyFunction_USED1 1
1104#include <structmember.h>
1105#define __Pyx_CYFUNCTION_STATICMETHOD0x01 0x01
1106#define __Pyx_CYFUNCTION_CLASSMETHOD0x02 0x02
1107#define __Pyx_CYFUNCTION_CCLASS0x04 0x04
1108#define __Pyx_CyFunction_GetClosure(f)(((__pyx_CyFunctionObject *) (f))->func_closure)\
1109 (((__pyx_CyFunctionObject *) (f))->func_closure)
1110#define __Pyx_CyFunction_GetClassObj(f)(((__pyx_CyFunctionObject *) (f))->func_classobj)\
1111 (((__pyx_CyFunctionObject *) (f))->func_classobj)
1112#define __Pyx_CyFunction_Defaults(type, f)((type *)(((__pyx_CyFunctionObject *) (f))->defaults))\
1113 ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
1114#define __Pyx_CyFunction_SetDefaultsGetter(f, g)((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)\
1115 ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
1116typedef struct {
1117 PyCFunctionObject func;
1118#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030500A0
1119 PyObject *func_weakreflist;
1120#endif
1121 PyObject *func_dict;
1122 PyObject *func_name;
1123 PyObject *func_qualname;
1124 PyObject *func_doc;
1125 PyObject *func_globals;
1126 PyObject *func_code;
1127 PyObject *func_closure;
1128 PyObject *func_classobj;
1129 void *defaults;
1130 int defaults_pyobjects;
1131 int flags;
1132 PyObject *defaults_tuple;
1133 PyObject *defaults_kwdict;
1134 PyObject *(*defaults_getter)(PyObject *);
1135 PyObject *func_annotations;
1136} __pyx_CyFunctionObject;
1137static PyTypeObject *__pyx_CyFunctionType = 0;
1138#define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)__Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname
, self, module, globals, code)
\
1139 __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code)
1140static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml,
1141 int flags, PyObject* qualname,
1142 PyObject *self,
1143 PyObject *module, PyObject *globals,
1144 PyObject* code);
1145static CYTHON_INLINE__inline__ void *__Pyx_CyFunction_InitDefaults(PyObject *m,
1146 size_t size,
1147 int pyobjects);
1148static CYTHON_INLINE__inline__ void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
1149 PyObject *tuple);
1150static CYTHON_INLINE__inline__ void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
1151 PyObject *dict);
1152static CYTHON_INLINE__inline__ void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
1153 PyObject *dict);
1154static int __pyx_CyFunction_init(void);
1155
1156#if CYTHON_COMPILING_IN_CPYTHON1
1157static CYTHON_INLINE__inline__ int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
1158 PyListObject* L = (PyListObject*) list;
1159 Py_ssize_t len = Py_SIZE(list)(((PyVarObject*)(list))->ob_size);
1160 if (likely(L->allocated > len)__builtin_expect(!!(L->allocated > len), 1)) {
1161 Py_INCREF(x)( ((PyObject*)(x))->ob_refcnt++);
1162 PyList_SET_ITEM(list, len, x)(((PyListObject *)(list))->ob_item[len] = (x));
1163 Py_SIZE(list)(((PyVarObject*)(list))->ob_size) = len+1;
1164 return 0;
1165 }
1166 return PyList_Append(list, x);
1167}
1168#else
1169#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
1170#endif
1171
1172#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)(( (sizeof(type) < sizeof(Py_ssize_t)) || (sizeof(type) >
sizeof(Py_ssize_t) && __builtin_expect(!!(i < (type
)((Py_ssize_t)(((size_t)-1)>>1)) || i == (type)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!is_signed || __builtin_expect
(!!(i > (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
i == (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(type) == sizeof(Py_ssize_t) && (is_signed
|| __builtin_expect(!!(i < (type)((Py_ssize_t)(((size_t)-
1)>>1)) || i == (type)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) ) ? __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list
, wraparound, boundscheck) : (is_list ? (PyErr_SetString(PyExc_IndexError
, "list index out of range"), (PyObject*)((void*)0)) : __Pyx_GetItemInt_Generic
(o, to_py_func(i))))
\
1173 (__Pyx_fits_Py_ssize_t(i, type, is_signed)( (sizeof(type) < sizeof(Py_ssize_t)) || (sizeof(type) >
sizeof(Py_ssize_t) && __builtin_expect(!!(i < (type
)((Py_ssize_t)(((size_t)-1)>>1)) || i == (type)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!is_signed || __builtin_expect
(!!(i > (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
i == (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(type) == sizeof(Py_ssize_t) && (is_signed
|| __builtin_expect(!!(i < (type)((Py_ssize_t)(((size_t)-
1)>>1)) || i == (type)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) )
?\
1174 __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
1175 (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL((void*)0)) :\
1176 __Pyx_GetItemInt_Generic(o, to_py_func(i))))
1177#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)(( (sizeof(type) < sizeof(Py_ssize_t)) || (sizeof(type) >
sizeof(Py_ssize_t) && __builtin_expect(!!(i < (type
)((Py_ssize_t)(((size_t)-1)>>1)) || i == (type)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!is_signed || __builtin_expect
(!!(i > (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
i == (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(type) == sizeof(Py_ssize_t) && (is_signed
|| __builtin_expect(!!(i < (type)((Py_ssize_t)(((size_t)-
1)>>1)) || i == (type)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) ) ? __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound
, boundscheck) : (PyErr_SetString(PyExc_IndexError, "list index out of range"
), (PyObject*)((void*)0)))
\
1178 (__Pyx_fits_Py_ssize_t(i, type, is_signed)( (sizeof(type) < sizeof(Py_ssize_t)) || (sizeof(type) >
sizeof(Py_ssize_t) && __builtin_expect(!!(i < (type
)((Py_ssize_t)(((size_t)-1)>>1)) || i == (type)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!is_signed || __builtin_expect
(!!(i > (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
i == (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(type) == sizeof(Py_ssize_t) && (is_signed
|| __builtin_expect(!!(i < (type)((Py_ssize_t)(((size_t)-
1)>>1)) || i == (type)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) )
?\
1179 __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1180 (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL((void*)0)))
1181static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
1182 int wraparound, int boundscheck);
1183#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)(( (sizeof(type) < sizeof(Py_ssize_t)) || (sizeof(type) >
sizeof(Py_ssize_t) && __builtin_expect(!!(i < (type
)((Py_ssize_t)(((size_t)-1)>>1)) || i == (type)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!is_signed || __builtin_expect
(!!(i > (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
i == (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(type) == sizeof(Py_ssize_t) && (is_signed
|| __builtin_expect(!!(i < (type)((Py_ssize_t)(((size_t)-
1)>>1)) || i == (type)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) ) ? __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound
, boundscheck) : (PyErr_SetString(PyExc_IndexError, "tuple index out of range"
), (PyObject*)((void*)0)))
\
1184 (__Pyx_fits_Py_ssize_t(i, type, is_signed)( (sizeof(type) < sizeof(Py_ssize_t)) || (sizeof(type) >
sizeof(Py_ssize_t) && __builtin_expect(!!(i < (type
)((Py_ssize_t)(((size_t)-1)>>1)) || i == (type)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!is_signed || __builtin_expect
(!!(i > (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
i == (type)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(type) == sizeof(Py_ssize_t) && (is_signed
|| __builtin_expect(!!(i < (type)((Py_ssize_t)(((size_t)-
1)>>1)) || i == (type)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) )
?\
1185 __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
1186 (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL((void*)0)))
1187static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
1188 int wraparound, int boundscheck);
1189static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
1190static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
1191 int is_list, int wraparound, int boundscheck);
1192
1193static void __Pyx_WriteUnraisable(const char *name, int clineno,
1194 int lineno, const char *filename,
1195 int full_traceback, int nogil);
1196
1197#ifndef __PYX_FORCE_INIT_THREADS0
1198 #define __PYX_FORCE_INIT_THREADS0 0
1199#endif
1200
1201#include <string.h>
1202
1203static CYTHON_INLINE__inline__ int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
1204
1205static CYTHON_INLINE__inline__ int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
1206
1207#if PY_MAJOR_VERSION2 >= 3
1208#define __Pyx_PyString_Equals__Pyx_PyBytes_Equals __Pyx_PyUnicode_Equals
1209#else
1210#define __Pyx_PyString_Equals__Pyx_PyBytes_Equals __Pyx_PyBytes_Equals
1211#endif
1212
1213static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
1214
1215static CYTHON_INLINE__inline__ void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
1216
1217static CYTHON_INLINE__inline__ void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb);
1218static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb);
1219
1220#if CYTHON_COMPILING_IN_CPYTHON1 && PY_MAJOR_VERSION2 >= 3
1221#define __Pyx_PyCallable_Check(obj)PyCallable_Check(obj) ((obj)->ob_type->tp_call != NULL((void*)0))
1222#else
1223#define __Pyx_PyCallable_Check(obj)PyCallable_Check(obj) PyCallable_Check(obj)
1224#endif
1225
1226static CYTHON_INLINE__inline__ int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
1227 const char *name, int exact);
1228
1229static CYTHON_INLINE__inline__ int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
1230
1231#if CYTHON_COMPILING_IN_CPYTHON1 && PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x02070000
1232static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name) {
1233 PyObject *res;
1234 PyTypeObject *tp = Py_TYPE(obj)(((PyObject*)(obj))->ob_type);
1235#if PY_MAJOR_VERSION2 < 3
1236 if (unlikely(PyInstance_Check(obj))__builtin_expect(!!(((obj)->ob_type == &PyInstance_Type
)), 0)
)
1237 return __Pyx_PyObject_GetAttrStr(obj, attr_name);
1238#endif
1239 res = _PyType_Lookup(tp, attr_name);
1240 if (likely(res)__builtin_expect(!!(res), 1)) {
1241 descrgetfunc f = Py_TYPE(res)(((PyObject*)(res))->ob_type)->tp_descr_get;
1242 if (!f) {
1243 Py_INCREF(res)( ((PyObject*)(res))->ob_refcnt++);
1244 } else {
1245 res = f(res, obj, (PyObject *)tp);
1246 }
1247 } else {
1248 PyErr_SetObject(PyExc_AttributeError, attr_name);
1249 }
1250 return res;
1251}
1252#else
1253#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
1254#endif
1255
1256#if CYTHON_COMPILING_IN_CPYTHON1
1257static CYTHON_INLINE__inline__ int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
1258 PyListObject* L = (PyListObject*) list;
1259 Py_ssize_t len = Py_SIZE(list)(((PyVarObject*)(list))->ob_size);
1260 if (likely(L->allocated > len)__builtin_expect(!!(L->allocated > len), 1) & likely(len > (L->allocated >> 1))__builtin_expect(!!(len > (L->allocated >> 1)), 1
)
) {
1261 Py_INCREF(x)( ((PyObject*)(x))->ob_refcnt++);
1262 PyList_SET_ITEM(list, len, x)(((PyListObject *)(list))->ob_item[len] = (x));
1263 Py_SIZE(list)(((PyVarObject*)(list))->ob_size) = len+1;
1264 return 0;
1265 }
1266 return PyList_Append(list, x);
1267}
1268#else
1269#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
1270#endif
1271
1272static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);
1273
1274static CYTHON_INLINE__inline__ int __Pyx_PyObject_Append(PyObject* L, PyObject* x);
1275
1276static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_GetSlice(
1277 PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
1278 PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
1279 int has_cstart, int has_cstop, int wraparound);
1280
1281#if CYTHON_COMPILING_IN_CPYTHON1
1282static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, int inplace);
1283#else
1284#define __Pyx_PyInt_EqObjC(op1, op2, intval, inplace)\
1285 PyObject_RichCompare(op1, op2, Py_EQ2)
1286 #endif
1287
1288static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
1289
1290static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
1291
1292static CYTHON_INLINE__inline__ PyObject* __Pyx_decode_c_string(
1293 const char* cstring, Py_ssize_t start, Py_ssize_t stop,
1294 const char* encoding, const char* errors,
1295 PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));
1296
1297static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);
1298
1299static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
1300 PyObject *mkw, PyObject *modname, PyObject *doc);
1301static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
1302 PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);
1303
1304static PyObject *__Pyx_GetNameInClass(PyObject *nmspace, PyObject *name);
1305
1306typedef struct {
1307 int code_line;
1308 PyCodeObject* code_object;
1309} __Pyx_CodeObjectCacheEntry;
1310struct __Pyx_CodeObjectCache {
1311 int count;
1312 int max_count;
1313 __Pyx_CodeObjectCacheEntry* entries;
1314};
1315static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL((void*)0)};
1316static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
1317static PyCodeObject *__pyx_find_code_object(int code_line);
1318static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
1319
1320static void __Pyx_AddTraceback(const char *funcname, int c_line,
1321 int py_line, const char *filename);
1322
1323static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_long(long value);
1324
1325static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_int(int value);
1326
1327static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value);
1328
1329static CYTHON_INLINE__inline__ uint64_t __Pyx_PyInt_As_uint64_t(PyObject *);
1330
1331static CYTHON_INLINE__inline__ size_t __Pyx_PyInt_As_size_t(PyObject *);
1332
1333static CYTHON_INLINE__inline__ int __Pyx_PyInt_As_int(PyObject *);
1334
1335static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_int64_t(int64_t value);
1336
1337static CYTHON_INLINE__inline__ int64_t __Pyx_PyInt_As_int64_t(PyObject *);
1338
1339static CYTHON_INLINE__inline__ uint8_t __Pyx_PyInt_As_uint8_t(PyObject *);
1340
1341static CYTHON_INLINE__inline__ uint32_t __Pyx_PyInt_As_uint32_t(PyObject *);
1342
1343static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_time_t(time_t value);
1344
1345static CYTHON_INLINE__inline__ time_t __Pyx_PyInt_As_time_t(PyObject *);
1346
1347static CYTHON_INLINE__inline__ long __Pyx_PyInt_As_long(PyObject *);
1348
1349typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyObject *);
1350typedef struct {
1351 PyObject_HEADPy_ssize_t ob_refcnt; struct _typeobject *ob_type;
1352 __pyx_coroutine_body_t body;
1353 PyObject *closure;
1354 PyObject *exc_type;
1355 PyObject *exc_value;
1356 PyObject *exc_traceback;
1357 PyObject *gi_weakreflist;
1358 PyObject *classobj;
1359 PyObject *yieldfrom;
1360 PyObject *gi_name;
1361 PyObject *gi_qualname;
1362 int resume_label;
1363 char is_running;
1364} __pyx_CoroutineObject;
1365static __pyx_CoroutineObject *__Pyx__Coroutine_New(PyTypeObject *type, __pyx_coroutine_body_t body,
1366 PyObject *closure, PyObject *name, PyObject *qualname);
1367static int __Pyx_Coroutine_clear(PyObject *self);
1368#if 1 || PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030300B0
1369static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue);
1370#else
1371#define __Pyx_PyGen_FetchStopIterationValue(pvalue) PyGen_FetchStopIterationValue(pvalue)
1372#endif
1373
1374static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);
1375
1376static int __Pyx_patch_abc(void);
1377
1378#define __Pyx_Generator_USED
1379static PyTypeObject *__pyx_GeneratorType = 0;
1380#define __Pyx_Generator_CheckExact(obj)((((PyObject*)(obj))->ob_type) == __pyx_GeneratorType) (Py_TYPE(obj)(((PyObject*)(obj))->ob_type) == __pyx_GeneratorType)
1381#define __Pyx_Generator_New(body, closure, name, qualname)__Pyx__Coroutine_New(__pyx_GeneratorType, body, closure, name
, qualname)
\
1382 __Pyx__Coroutine_New(__pyx_GeneratorType, body, closure, name, qualname)
1383static PyObject *__Pyx_Generator_Next(PyObject *self);
1384static int __pyx_Generator_init(void);
1385
1386static int __Pyx_check_binary_version(void);
1387
1388#if !defined(__Pyx_PyIdentifier_FromString)
1389#if PY_MAJOR_VERSION2 < 3
1390 #define __Pyx_PyIdentifier_FromString(s)PyString_FromString(s) PyString_FromString(s)
1391#else
1392 #define __Pyx_PyIdentifier_FromString(s)PyString_FromString(s) PyUnicode_FromStringPyUnicodeUCS4_FromString(s)
1393#endif
1394#endif
1395
1396static PyObject *__Pyx_ImportModule(const char *name);
1397
1398static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);
1399
1400static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
1401
1402
1403/* Module declarations from 'cpython.version' */
1404
1405/* Module declarations from '__builtin__' */
1406
1407/* Module declarations from 'cpython.type' */
1408static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
1409
1410/* Module declarations from 'libc.string' */
1411
1412/* Module declarations from 'libc.stdio' */
1413
1414/* Module declarations from 'cpython.object' */
1415
1416/* Module declarations from 'cpython.ref' */
1417
1418/* Module declarations from 'cpython.exc' */
1419
1420/* Module declarations from 'cpython.module' */
1421
1422/* Module declarations from 'cpython.mem' */
1423
1424/* Module declarations from 'cpython.tuple' */
1425
1426/* Module declarations from 'cpython.list' */
1427
1428/* Module declarations from 'cpython.sequence' */
1429
1430/* Module declarations from 'cpython.mapping' */
1431
1432/* Module declarations from 'cpython.iterator' */
1433
1434/* Module declarations from 'cpython.number' */
1435
1436/* Module declarations from 'cpython.int' */
1437
1438/* Module declarations from '__builtin__' */
1439
1440/* Module declarations from 'cpython.bool' */
1441static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0;
1442
1443/* Module declarations from 'cpython.long' */
1444
1445/* Module declarations from 'cpython.float' */
1446
1447/* Module declarations from '__builtin__' */
1448
1449/* Module declarations from 'cpython.complex' */
1450static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0;
1451
1452/* Module declarations from 'cpython.string' */
1453
1454/* Module declarations from 'cpython.unicode' */
1455
1456/* Module declarations from 'cpython.dict' */
1457
1458/* Module declarations from 'cpython.instance' */
1459
1460/* Module declarations from 'cpython.function' */
1461
1462/* Module declarations from 'cpython.method' */
1463
1464/* Module declarations from 'cpython.weakref' */
1465
1466/* Module declarations from 'cpython.getargs' */
1467
1468/* Module declarations from 'cpython.pythread' */
1469
1470/* Module declarations from 'cpython.pystate' */
1471
1472/* Module declarations from 'cpython.cobject' */
1473
1474/* Module declarations from 'cpython.oldbuffer' */
1475
1476/* Module declarations from 'cpython.set' */
1477
1478/* Module declarations from 'cpython.buffer' */
1479
1480/* Module declarations from 'cpython.bytes' */
1481
1482/* Module declarations from 'cpython.pycapsule' */
1483
1484/* Module declarations from 'cpython' */
1485
1486/* Module declarations from 'libc' */
1487
1488/* Module declarations from 'libc.errno' */
1489
1490/* Module declarations from 'libc.stdint' */
1491
1492/* Module declarations from 'libc.stdlib' */
1493
1494/* Module declarations from 'rados' */
1495static PyTypeObject *__pyx_ptype_5rados_Rados = 0;
1496static PyTypeObject *__pyx_ptype_5rados_Ioctx = 0;
1497static PyTypeObject *__pyx_ptype_5rados_OmapIterator = 0;
1498static PyTypeObject *__pyx_ptype_5rados_ObjectIterator = 0;
1499static PyTypeObject *__pyx_ptype_5rados_XattrIterator = 0;
1500static PyTypeObject *__pyx_ptype_5rados_SnapIterator = 0;
1501static PyTypeObject *__pyx_ptype_5rados_Snap = 0;
1502static PyTypeObject *__pyx_ptype_5rados_Completion = 0;
1503static PyTypeObject *__pyx_ptype_5rados_WriteOp = 0;
1504static PyTypeObject *__pyx_ptype_5rados_ReadOp = 0;
1505static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct__requires = 0;
1506static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_1_check_type = 0;
1507static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_2_genexpr = 0;
1508static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_3_genexpr = 0;
1509static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_4_wrapper = 0;
1510static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_5_validate_func = 0;
1511static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_6_genexpr = 0;
1512static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_7_flatten_dict = 0;
1513static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_8_genexpr = 0;
1514static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_9_aio_stat = 0;
1515static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_10_aio_read = 0;
1516static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_11_aio_execute = 0;
1517static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_12_set_object_locator = 0;
1518static PyTypeObject *__pyx_ptype_5rados___pyx_scope_struct_13_set_object_namespace = 0;
1519static PyObject *__pyx_v_5rados_errno_to_exception = 0;
1520static PyObject *__pyx_f_5rados_make_ex(PyObject *, PyObject *); /*proto*/
1521static char *__pyx_f_5rados_opt_str(PyObject *); /*proto*/
1522static void *__pyx_f_5rados_realloc_chk(void *, size_t); /*proto*/
1523static size_t *__pyx_f_5rados_to_csize_t_array(PyObject *); /*proto*/
1524static char **__pyx_f_5rados_to_bytes_array(PyObject *); /*proto*/
1525static int __pyx_f_5rados___monitor_callback(void *, char const *, char const *, uint64_t, uint64_t, uint64_t, char const *, char const *); /*proto*/
1526static int __pyx_f_5rados___monitor_callback2(void *, char const *, char const *, char const *, char const *, uint64_t, uint64_t, uint64_t, char const *, char const *); /*proto*/
1527static int __pyx_f_5rados___aio_safe_cb(rados_completion_t, void *); /*proto*/
1528static int __pyx_f_5rados___aio_complete_cb(rados_completion_t, void *); /*proto*/
1529#define __Pyx_MODULE_NAME"rados" "rados"
1530int __pyx_module_is_main_rados = 0;
1531
1532/* Implementation of 'rados' */
1533static PyObject *__pyx_builtin_ImportError;
1534static PyObject *__pyx_builtin_Exception;
1535static PyObject *__pyx_builtin_object;
1536static PyObject *__pyx_builtin_super;
1537static PyObject *__pyx_builtin_TypeError;
1538static PyObject *__pyx_builtin_zip;
1539static PyObject *__pyx_builtin_MemoryError;
1540static PyObject *__pyx_builtin_xrange;
1541static PyObject *__pyx_builtin_StopIteration;
1542static PyObject *__pyx_builtin_sorted;
1543static PyObject *__pyx_builtin_range;
1544static char __pyx_k_c[] = "c";
1545static char __pyx_k_d[] = "d";
1546static char __pyx_k_f[] = "f";
1547static char __pyx_k_s[] = "s";
1548static char __pyx_k_t[] = "t";
1549static char __pyx_k_v[] = "v";
1550static char __pyx_k__9[] = "\000";
1551static char __pyx_k_kb[] = "kb";
1552static char __pyx_k_or[] = " or ";
1553static char __pyx_k__10[] = "";
1554static char __pyx_k_arg[] = "arg";
1555static char __pyx_k_cls[] = "cls";
1556static char __pyx_k_cmd[] = "cmd";
1557static char __pyx_k_doc[] = "__doc__";
1558static char __pyx_k_err[] = "err";
1559static char __pyx_k_key[] = "key";
1560static char __pyx_k_msg[] = "msg";
1561static char __pyx_k_new[] = "new";
1562static char __pyx_k_obj[] = "obj";
1563static char __pyx_k_oid[] = "oid";
1564static char __pyx_k_opt[] = "opt";
1565static char __pyx_k_ret[] = "ret";
1566static char __pyx_k_sec[] = "sec";
1567static char __pyx_k_str[] = "__str__";
1568static char __pyx_k_sys[] = "sys";
1569static char __pyx_k_tag[] = "tag";
1570static char __pyx_k_val[] = "val";
1571static char __pyx_k_var[] = "var";
1572static char __pyx_k_zip[] = "zip";
1573static char __pyx_k_Lock[] = "Lock";
1574static char __pyx_k_None[] = "None";
1575static char __pyx_k_args[] = "args";
1576static char __pyx_k_conf[] = "conf";
1577static char __pyx_k_cstr[] = "cstr";
1578static char __pyx_k_data[] = "data";
1579static char __pyx_k_desc[] = "desc";
1580static char __pyx_k_exit[] = "__exit__";
1581static char __pyx_k_flag[] = "flag";
1582static char __pyx_k_func[] = "func";
1583static char __pyx_k_info[] = "info";
1584static char __pyx_k_init[] = "__init__";
1585static char __pyx_k_join[] = "join";
1586static char __pyx_k_keys[] = "keys";
1587static char __pyx_k_main[] = "__main__";
1588static char __pyx_k_name[] = "__name__";
1589static char __pyx_k_open[] = "open";
1590static char __pyx_k_path[] = "path";
1591static char __pyx_k_pgid[] = "pgid";
1592static char __pyx_k_read[] = "read";
1593static char __pyx_k_safe[] = "_safe";
1594static char __pyx_k_seek[] = "seek";
1595static char __pyx_k_self[] = "self";
1596static char __pyx_k_send[] = "send";
1597static char __pyx_k_size[] = "size";
1598static char __pyx_k_stat[] = "stat";
1599static char __pyx_k_test[] = "__test__";
1600static char __pyx_k_time[] = "time";
1601static char __pyx_k_type[] = "type_";
1602static char __pyx_k_warn[] = "warn";
1603static char __pyx_k_zero[] = "zero";
1604static char __pyx_k_Error[] = "Error";
1605static char __pyx_k_OpCtx[] = "OpCtx";
1606static char __pyx_k_chain[] = "chain";
1607static char __pyx_k_class[] = "__class__";
1608static char __pyx_k_close[] = "close";
1609static char __pyx_k_d_d_d[] = "%d.%d.%d";
1610static char __pyx_k_debug[] = "debug";
1611static char __pyx_k_enter[] = "__enter__";
1612static char __pyx_k_errno[] = "errno";
1613static char __pyx_k_error[] = "error";
1614static char __pyx_k_extra[] = "extra";
1615static char __pyx_k_flags[] = "flags";
1616static char __pyx_k_force[] = "force";
1617static char __pyx_k_inbuf[] = "inbuf";
1618static char __pyx_k_ioctx[] = "ioctx";
1619static char __pyx_k_items[] = "items";
1620static char __pyx_k_level[] = "level";
1621static char __pyx_k_major[] = "major";
1622static char __pyx_k_minor[] = "minor";
1623static char __pyx_k_mtime[] = "mtime";
1624static char __pyx_k_osdid[] = "osdid";
1625static char __pyx_k_rados[] = "rados";
1626static char __pyx_k_range[] = "range";
1627static char __pyx_k_setup[] = "__setup";
1628static char __pyx_k_split[] = "split";
1629static char __pyx_k_state[] = "state";
1630static char __pyx_k_super[] = "super";
1631static char __pyx_k_throw[] = "throw";
1632static char __pyx_k_trunc[] = "trunc";
1633static char __pyx_k_types[] = "types";
1634static char __pyx_k_utf_8[] = "utf-8";
1635static char __pyx_k_value[] = "value";
1636static char __pyx_k_wraps[] = "wraps";
1637static char __pyx_k_write[] = "write";
1638static char __pyx_k_NoData[] = "NoData";
1639static char __pyx_k_Object[] = "Object";
1640static char __pyx_k_append[] = "append";
1641static char __pyx_k_client[] = "client.";
1642static char __pyx_k_closed[] = "closed";
1643static char __pyx_k_cookie[] = "cookie";
1644static char __pyx_k_create[] = "create";
1645static char __pyx_k_daemon[] = "daemon";
1646static char __pyx_k_decode[] = "decode";
1647static char __pyx_k_encode[] = "encode";
1648static char __pyx_k_exists[] = "exists";
1649static char __pyx_k_format[] = "format";
1650static char __pyx_k_import[] = "__import__";
1651static char __pyx_k_kwargs[] = "kwargs";
1652static char __pyx_k_length[] = "length";
1653static char __pyx_k_method[] = "method";
1654static char __pyx_k_module[] = "__module__";
1655static char __pyx_k_mon_id[] = "mon_id";
1656static char __pyx_k_name_2[] = "name";
1657static char __pyx_k_notify[] = "notify";
1658static char __pyx_k_nspace[] = "nspace";
1659static char __pyx_k_num_kb[] = "num_kb";
1660static char __pyx_k_num_rd[] = "num_rd";
1661static char __pyx_k_num_wr[] = "num_wr";
1662static char __pyx_k_object[] = "object";
1663static char __pyx_k_offset[] = "offset";
1664static char __pyx_k_onsafe[] = "onsafe";
1665static char __pyx_k_option[] = "option";
1666static char __pyx_k_reduce[] = "__reduce__";
1667static char __pyx_k_remove[] = "remove";
1668static char __pyx_k_retval[] = "retval";
1669static char __pyx_k_rstrip[] = "rstrip";
1670static char __pyx_k_sorted[] = "sorted";
1671static char __pyx_k_status[] = "status";
1672static char __pyx_k_target[] = "target";
1673static char __pyx_k_type_2[] = "type";
1674static char __pyx_k_unlock[] = "unlock";
1675static char __pyx_k_values[] = "values";
1676static char __pyx_k_xrange[] = "xrange";
1677static char __pyx_k_IOError[] = "IOError";
1678static char __pyx_k_NoSpace[] = "NoSpace";
1679static char __pyx_k_OSError[] = "OSError";
1680static char __pyx_k_Version[] = "Version";
1681static char __pyx_k_arg_val[] = "arg_val";
1682static char __pyx_k_cleanup[] = "_cleanup";
1683static char __pyx_k_cluster[] = "cluster";
1684static char __pyx_k_connect[] = "connect";
1685static char __pyx_k_context[] = "context";
1686static char __pyx_k_default[] = "--default--";
1687static char __pyx_k_execute[] = "execute";
1688static char __pyx_k_genexpr[] = "genexpr";
1689static char __pyx_k_kb_used[] = "kb_used";
1690static char __pyx_k_loc_key[] = "loc_key";
1691static char __pyx_k_message[] = "message";
1692static char __pyx_k_partial[] = "partial";
1693static char __pyx_k_pool_id[] = "pool_id";
1694static char __pyx_k_prepare[] = "__prepare__";
1695static char __pyx_k_read_op[] = "read_op";
1696static char __pyx_k_release[] = "release";
1697static char __pyx_k_removed[] = "removed";
1698static char __pyx_k_retfunc[] = "retfunc";
1699static char __pyx_k_reverse[] = "reverse";
1700static char __pyx_k_service[] = "service";
1701static char __pyx_k_snap_id[] = "snap_id";
1702static char __pyx_k_timeout[] = "timeout";
1703static char __pyx_k_version[] = "version";
1704static char __pyx_k_warning[] = "warning";
1705static char __pyx_k_wrapper[] = "wrapper";
1706static char __pyx_k_Callable[] = "Callable";
1707static char __pyx_k_TimedOut[] = "TimedOut";
1708static char __pyx_k_aio_read[] = "aio_read";
1709static char __pyx_k_aio_stat[] = "aio_stat";
1710static char __pyx_k_app_name[] = "app_name";
1711static char __pyx_k_arg_name[] = "arg_name";
1712static char __pyx_k_arg_type[] = "arg_type";
1713static char __pyx_k_callback[] = "callback";
1714static char __pyx_k_complete[] = "_complete";
1715static char __pyx_k_conf_get[] = "conf_get";
1716static char __pyx_k_conf_set[] = "conf_set";
1717static char __pyx_k_conffile[] = "conffile";
1718static char __pyx_k_datetime[] = "datetime";
1719static char __pyx_k_duration[] = "duration";
1720static char __pyx_k_encoding[] = "encoding";
1721static char __pyx_k_kb_avail[] = "kb_avail";
1722static char __pyx_k_list_str[] = "list_str";
1723static char __pyx_k_metadata[] = "metadata";
1724static char __pyx_k_onsafe_2[] = "onsafe_";
1725static char __pyx_k_pos_args[] = "pos_args";
1726static char __pyx_k_position[] = "position";
1727static char __pyx_k_qualname[] = "__qualname__";
1728static char __pyx_k_rados_id[] = "rados_id";
1729static char __pyx_k_requires[] = "requires";
1730static char __pyx_k_rm_xattr[] = "rm_xattr";
1731static char __pyx_k_set_omap[] = "set_omap";
1732static char __pyx_k_set_read[] = "set_read";
1733static char __pyx_k_shutdown[] = "shutdown";
1734static char __pyx_k_str_type[] = "str_type";
1735static char __pyx_k_to_write[] = "to_write";
1736static char __pyx_k_truncate[] = "truncate";
1737static char __pyx_k_write_op[] = "write_op";
1738static char __pyx_k_CEPH_ARGS[] = "CEPH_ARGS";
1739static char __pyx_k_Exception[] = "Exception";
1740static char __pyx_k_ReadOpCtx[] = "ReadOpCtx";
1741static char __pyx_k_TypeError[] = "TypeError";
1742static char __pyx_k_aio_write[] = "aio_write";
1743static char __pyx_k_connected[] = "connected";
1744static char __pyx_k_cstr_list[] = "cstr_list";
1745static char __pyx_k_errno_0_1[] = "[errno {0}] {1}";
1746static char __pyx_k_exclusive[] = "exclusive";
1747static char __pyx_k_functools[] = "functools";
1748static char __pyx_k_get_xattr[] = "get_xattr";
1749static char __pyx_k_itertools[] = "itertools";
1750static char __pyx_k_localtime[] = "localtime";
1751static char __pyx_k_metaclass[] = "__metaclass__";
1752static char __pyx_k_num_bytes[] = "num_bytes";
1753static char __pyx_k_num_rd_kb[] = "num_rd_kb";
1754static char __pyx_k_num_wr_kb[] = "num_wr_kb";
1755static char __pyx_k_pool_name[] = "pool_name";
1756static char __pyx_k_set_flags[] = "set_flags";
1757static char __pyx_k_set_xattr[] = "set_xattr";
1758static char __pyx_k_snap_name[] = "snap_name";
1759static char __pyx_k_threading[] = "threading";
1760static char __pyx_k_to_append[] = "to_append";
1761static char __pyx_k_traceback[] = "traceback";
1762static char __pyx_k_ADMIN_AUID[] = "ADMIN_AUID";
1763static char __pyx_k_InProgress[] = "InProgress";
1764static char __pyx_k_LogicError[] = "LogicError";
1765static char __pyx_k_MonitorLog[] = "MonitorLog";
1766static char __pyx_k_ObjectBusy[] = "ObjectBusy";
1767static char __pyx_k_WriteOpCtx[] = "WriteOpCtx";
1768static char __pyx_k_aio_append[] = "aio_append";
1769static char __pyx_k_aio_remove[] = "aio_remove";
1770static char __pyx_k_check_type[] = "check_type";
1771static char __pyx_k_clear_omap[] = "clear_omap";
1772static char __pyx_k_crush_rule[] = "crush_rule";
1773static char __pyx_k_get_xattrs[] = "get_xattrs";
1774static char __pyx_k_ioctx_name[] = "ioctx_name";
1775static char __pyx_k_is_type_of[] = "is_type_of";
1776static char __pyx_k_max_return[] = "max_return";
1777static char __pyx_k_named_args[] = "named_args";
1778static char __pyx_k_oid_object[] = "oid: object";
1779static char __pyx_k_old_nspace[] = "old_nspace";
1780static char __pyx_k_oncomplete[] = "oncomplete";
1781static char __pyx_k_open_ioctx[] = "open_ioctx";
1782static char __pyx_k_timeout_ms[] = "timeout_ms";
1783static char __pyx_k_type_names[] = "type_names";
1784static char __pyx_k_write_full[] = "write_full";
1785static char __pyx_k_xattr_name[] = "xattr_name";
1786static char __pyx_k_Error___str[] = "Error.__str__";
1787static char __pyx_k_ImportError[] = "ImportError";
1788static char __pyx_k_IsConnected[] = "IsConnected";
1789static char __pyx_k_MemoryError[] = "MemoryError";
1790static char __pyx_k_Object_read[] = "Object.read";
1791static char __pyx_k_Object_seek[] = "Object.seek";
1792static char __pyx_k_Object_stat[] = "Object.stat";
1793static char __pyx_k_aio_execute[] = "aio_execute";
1794static char __pyx_k_clustername[] = "clustername";
1795static char __pyx_k_collections[] = "collections";
1796static char __pyx_k_configuring[] = "configuring";
1797static char __pyx_k_create_pool[] = "create_pool";
1798static char __pyx_k_create_snap[] = "create_snap";
1799static char __pyx_k_decode_cstr[] = "decode_cstr";
1800static char __pyx_k_delete_pool[] = "delete_pool";
1801static char __pyx_k_locator_key[] = "locator_key";
1802static char __pyx_k_lock_object[] = "lock: object";
1803static char __pyx_k_lock_shared[] = "lock_shared";
1804static char __pyx_k_lookup_snap[] = "lookup_snap";
1805static char __pyx_k_monitor_log[] = "monitor_log";
1806static char __pyx_k_name_object[] = "name: object";
1807static char __pyx_k_num_objects[] = "num_objects";
1808static char __pyx_k_object_name[] = "object_name";
1809static char __pyx_k_old_locator[] = "old_locator";
1810static char __pyx_k_open_ioctx2[] = "open_ioctx2";
1811static char __pyx_k_pool_exists[] = "pool_exists";
1812static char __pyx_k_pool_lookup[] = "pool_lookup";
1813static char __pyx_k_remove_snap[] = "remove_snap";
1814static char __pyx_k_s_must_be_s[] = "%s must be %s";
1815static char __pyx_k_start_after[] = "start_after";
1816static char __pyx_k_xattr_value[] = "xattr_value";
1817static char __pyx_k_Error___init[] = "Error.__init__";
1818static char __pyx_k_ObjectExists[] = "ObjectExists";
1819static char __pyx_k_Object___str[] = "Object.__str__";
1820static char __pyx_k_Object_write[] = "Object.write";
1821static char __pyx_k_OpCtx___exit[] = "OpCtx.__exit__";
1822static char __pyx_k_client_admin[] = "client.admin";
1823static char __pyx_k_completion_v[] = "completion_v";
1824static char __pyx_k_flatten_dict[] = "flatten_dict";
1825static char __pyx_k_ioctx_object[] = "ioctx: object";
1826static char __pyx_k_oncomplete_2[] = "oncomplete_";
1827static char __pyx_k_return_value[] = "return_value";
1828static char __pyx_k_state_object[] = "state: object";
1829static char __pyx_k_version_info[] = "version_info";
1830static char __pyx_k_NoData___init[] = "NoData.__init__";
1831static char __pyx_k_Object___init[] = "Object.__init__";
1832static char __pyx_k_Object_remove[] = "Object.remove";
1833static char __pyx_k_OpCtx___enter[] = "OpCtx.__enter__";
1834static char __pyx_k_StopIteration[] = "StopIteration";
1835static char __pyx_k_The_pool_is_s[] = "The pool is %s";
1836static char __pyx_k_Version___str[] = "Version.__str__";
1837static char __pyx_k_conf_defaults[] = "conf_defaults";
1838static char __pyx_k_filter_prefix[] = "filter_prefix";
1839static char __pyx_k_from_iterable[] = "from_iterable";
1840static char __pyx_k_fromtimestamp[] = "fromtimestamp";
1841static char __pyx_k_get_namespace[] = "get_namespace";
1842static char __pyx_k_get_omap_keys[] = "get_omap_keys";
1843static char __pyx_k_get_omap_vals[] = "get_omap_vals";
1844static char __pyx_k_malloc_failed[] = "malloc failed";
1845static char __pyx_k_nspace_object[] = "nspace: object";
1846static char __pyx_k_onsafe_object[] = "onsafe: object";
1847static char __pyx_k_remove_object[] = "remove_object";
1848static char __pyx_k_require_state[] = "require_state";
1849static char __pyx_k_set_namespace[] = "set_namespace";
1850static char __pyx_k_snap_rollback[] = "snap_rollback";
1851static char __pyx_k_validate_func[] = "validate_func";
1852static char __pyx_k_ANONYMOUS_AUID[] = "ANONYMOUS_AUID";
1853static char __pyx_k_Error___reduce[] = "Error.__reduce__";
1854static char __pyx_k_IOError___init[] = "IOError.__init__";
1855static char __pyx_k_MONITOR_LEVELS[] = "MONITOR_LEVELS";
1856static char __pyx_k_NoSpace___init[] = "NoSpace.__init__";
1857static char __pyx_k_ObjectNotFound[] = "ObjectNotFound";
1858static char __pyx_k_Version___init[] = "Version.__init__";
1859static char __pyx_k_aio_write_full[] = "aio_write_full";
1860static char __pyx_k_assert_version[] = "assert_version";
1861static char __pyx_k_client_address[] = "client_address";
1862static char __pyx_k_completion_v_2[] = "_completion_v";
1863static char __pyx_k_conf_read_file[] = "conf_read_file";
1864static char __pyx_k_error_flushing[] = "error flushing";
1865static char __pyx_k_expire_seconds[] = "expire_seconds";
1866static char __pyx_k_get_completion[] = "__get_completion";
1867static char __pyx_k_lock_exclusive[] = "lock_exclusive";
1868static char __pyx_k_realloc_failed[] = "realloc failed";
1869static char __pyx_k_IoctxStateError[] = "IoctxStateError";
1870static char __pyx_k_Object_rm_xattr[] = "Object.rm_xattr";
1871static char __pyx_k_PermissionError[] = "PermissionError";
1872static char __pyx_k_RADOS_no_data_s[] = "RADOS no data (%s)";
1873static char __pyx_k_RadosStateError[] = "RadosStateError";
1874static char __pyx_k_The_object_is_s[] = "The object is %s";
1875static char __pyx_k_TimedOut___init[] = "TimedOut.__init__";
1876static char __pyx_k_collections_abc[] = "collections.abc";
1877static char __pyx_k_conffile_object[] = "conffile: object";
1878static char __pyx_k_error_reading_s[] = "error reading %s";
1879static char __pyx_k_error_stating_s[] = "error stating %s";
1880static char __pyx_k_get_locator_key[] = "get_locator_key";
1881static char __pyx_k_operate_read_op[] = "operate_read_op";
1882static char __pyx_k_rados_id_object[] = "rados_id: object";
1883static char __pyx_k_set_locator_key[] = "set_locator_key";
1884static char __pyx_k_string_to_write[] = "string_to_write";
1885static char __pyx_k_Failed_to_stat_r[] = "Failed to stat %r";
1886static char __pyx_k_ObjectStateError[] = "ObjectStateError";
1887static char __pyx_k_Object_get_xattr[] = "Object.get_xattr";
1888static char __pyx_k_Object_set_xattr[] = "Object.set_xattr";
1889static char __pyx_k_RADOS_no_space_s[] = "RADOS no space (%s)";
1890static char __pyx_k_error_removing_s[] = "error removing %s";
1891static char __pyx_k_get_return_value[] = "get_return_value";
1892static char __pyx_k_operate_write_op[] = "operate_write_op";
1893static char __pyx_k_remove_omap_keys[] = "remove_omap_keys";
1894static char __pyx_k_track_completion[] = "__track_completion";
1895static char __pyx_k_InProgress___init[] = "InProgress.__init__";
1896static char __pyx_k_LogicError___init[] = "LogicError.__init__";
1897static char __pyx_k_MonitorLog___init[] = "MonitorLog.__init__";
1898static char __pyx_k_ObjectBusy___init[] = "ObjectBusy.__init__";
1899static char __pyx_k_Object_get_xattrs[] = "Object.get_xattrs";
1900static char __pyx_k_RADOS_I_O_error_s[] = "RADOS I/O error (%s)";
1901static char __pyx_k_RADOS_timed_out_s[] = "RADOS timed out (%s)";
1902static char __pyx_k_ioctx_rados_Ioctx[] = "ioctx: rados.Ioctx";
1903static char __pyx_k_num_object_clones[] = "num_object_clones";
1904static char __pyx_k_num_object_copies[] = "num_object_copies";
1905static char __pyx_k_oncomplete_object[] = "oncomplete: object";
1906static char __pyx_k_Failed_to_notify_r[] = "Failed to notify %r";
1907static char __pyx_k_Failed_to_remove_s[] = "Failed to remove '%s'";
1908static char __pyx_k_IsConnected___init[] = "IsConnected.__init__";
1909static char __pyx_k_LIBRADOS_SNAP_HEAD[] = "LIBRADOS_SNAP_HEAD";
1910static char __pyx_k_get_pool_base_tier[] = "get_pool_base_tier";
1911static char __pyx_k_locator_key_object[] = "locator_key: object";
1912static char __pyx_k_parsed_args_object[] = "parsed_args: object";
1913static char __pyx_k_require_ioctx_open[] = "require_ioctx_open";
1914static char __pyx_k_s_must_be_a_string[] = "%s must be a string";
1915static char __pyx_k_set_object_locator[] = "set_object_locator";
1916static char __pyx_k_ObjectExists___init[] = "ObjectExists.__init__";
1917static char __pyx_k_RADOS_logic_error_s[] = "RADOS logic error (%s)";
1918static char __pyx_k_RADOS_object_busy_s[] = "RADOS object busy (%s)";
1919static char __pyx_k_RADOS_rados_state_s[] = "RADOS rados state (%s)";
1920static char __pyx_k_Version_information[] = " Version information ";
1921static char __pyx_k_num_objects_unfound[] = "num_objects_unfound";
1922static char __pyx_k_operate_aio_read_op[] = "operate_aio_read_op";
1923static char __pyx_k_pool_reverse_lookup[] = "pool_reverse_lookup";
1924static char __pyx_k_Failed_to_rollback_s[] = "Failed to rollback %s";
1925static char __pyx_k_InvalidArgumentError[] = "InvalidArgumentError";
1926static char __pyx_k_LIBRADOS_ALL_NSPACES[] = "LIBRADOS_ALL_NSPACES";
1927static char __pyx_k_conf_defaults_object[] = "conf_defaults: object";
1928static char __pyx_k_error_opening_pool_s[] = "error opening pool '%s'";
1929static char __pyx_k_get_inconsistent_pgs[] = "get_inconsistent_pgs";
1930static char __pyx_k_get_pool_base_tier_d[] = "get_pool_base_tier(%d)";
1931static char __pyx_k_num_objects_degraded[] = "num_objects_degraded";
1932static char __pyx_k_operate_aio_write_op[] = "operate_aio_write_op";
1933static char __pyx_k_set_object_namespace[] = "set_object_namespace";
1934static char __pyx_k_snap_id_rados_snap_t[] = "snap_id: 'rados_snap_t'";
1935static char __pyx_k_Failed_to_get_xattr_r[] = "Failed to get xattr %r";
1936static char __pyx_k_Failed_to_set_xattr_r[] = "Failed to set xattr %r";
1937static char __pyx_k_LIBRADOS_OP_FLAG_EXCL[] = "LIBRADOS_OP_FLAG_EXCL";
1938static char __pyx_k_ObjectNotFound___init[] = "ObjectNotFound.__init__";
1939static char __pyx_k_PermissionDeniedError[] = "PermissionDeniedError";
1940static char __pyx_k_RADOS_object_exists_s[] = "RADOS object exists (%s)";
1941static char __pyx_k_error_creating_pool_s[] = "error creating pool '%s'";
1942static char __pyx_k_error_deleting_pool_s[] = "error deleting pool '%s'";
1943static char __pyx_k_get_omap_vals_by_keys[] = "get_omap_vals_by_keys";
1944static char __pyx_k_invalid_monitor_level[] = "invalid monitor level ";
1945static char __pyx_k_require_object_exists[] = "require_object_exists";
1946static char __pyx_k_service_daemon_update[] = "service_daemon_update";
1947static char __pyx_k_IoctxStateError___init[] = "IoctxStateError.__init__";
1948static char __pyx_k_PermissionError___init[] = "PermissionError.__init__";
1949static char __pyx_k_RadosStateError___init[] = "RadosStateError.__init__";
1950static char __pyx_k_error_calling_conf_get[] = "error calling conf_get";
1951static char __pyx_k_error_calling_conf_set[] = "error calling conf_set";
1952static char __pyx_k_error_writing_object_s[] = "error writing object %s";
1953static char __pyx_k_Failed_to_create_snap_s[] = "Failed to create snap %s";
1954static char __pyx_k_Failed_to_lookup_snap_s[] = "Failed to lookup snap %s";
1955static char __pyx_k_Failed_to_remove_snap_s[] = "Failed to remove snap %s";
1956static char __pyx_k_LIBRADOS_OP_FLAG_FAILOK[] = "LIBRADOS_OP_FLAG_FAILOK";
1957static char __pyx_k_ObjectStateError___init[] = "ObjectStateError.__init__";
1958static char __pyx_k_error_looking_up_pool_s[] = "error looking up pool '%s'";
1959static char __pyx_k_error_opening_pool_id_s[] = "error opening pool id '%s'";
1960static char __pyx_k_monitor_callback_object[] = "monitor_callback: object";
1961static char __pyx_k_requires_locals_wrapper[] = "requires.<locals>.wrapper";
1962static char __pyx_k_safe_completions_object[] = "safe_completions: object";
1963static char __pyx_k_service_daemon_register[] = "service_daemon_register";
1964static char __pyx_k_RADOS_invalid_argument_s[] = "RADOS invalid argument (%s)";
1965static char __pyx_k_RADOS_object_not_found_s[] = "RADOS object not found (%s)";
1966static char __pyx_k_RADOS_permission_error_s[] = "RADOS permission error (%s)";
1967static char __pyx_k_class_derived_from_Error[] = " `` class, derived from `Error` ";
1968static char __pyx_k_deal_with_EACCES_related[] = " deal with EACCES related. ";
1969static char __pyx_k_error_appending_object_s[] = "error appending object %s";
1970static char __pyx_k_error_checking_alignment[] = "error checking alignment";
1971static char __pyx_k_error_executing_s_s_on_s[] = "error executing %s::%s on %s";
1972static char __pyx_k_error_querying_alignment[] = "error querying alignment";
1973static char __pyx_k_monitor_callback2_object[] = "monitor_callback2: object";
1974static char __pyx_k_remove_self_managed_snap[] = "remove_self_managed_snap";
1975static char __pyx_k_InterruptedOrTimeoutError[] = "InterruptedOrTimeoutError";
1976static char __pyx_k_LIBRADOS_CREATE_EXCLUSIVE[] = "LIBRADOS_CREATE_EXCLUSIVE";
1977static char __pyx_k_LIBRADOS_OPERATION_NOFLAG[] = "LIBRADOS_OPERATION_NOFLAG";
1978static char __pyx_k_RADOS_Ioctx_state_error_s[] = "RADOS Ioctx state error (%s)";
1979static char __pyx_k_RADOS_in_progress_error_s[] = "RADOS in progress error (%s)";
1980static char __pyx_k_RADOS_permission_denied_s[] = "RADOS permission denied (%s)";
1981static char __pyx_k_aio_execute_locals_onsafe[] = "aio_execute.<locals>.onsafe_";
1982static char __pyx_k_rados_snap_get_name_error[] = "rados_snap_get_name error";
1983static char __pyx_k_LIBRADOS_CREATE_IDEMPOTENT[] = "LIBRADOS_CREATE_IDEMPOTENT";
1984static char __pyx_k_RADOS_is_connected_error_s[] = "RADOS is connected error (%s)";
1985static char __pyx_k_RADOS_object_state_error_s[] = "RADOS object state error (%s)";
1986static char __pyx_k_aio_read_locals_oncomplete[] = "aio_read.<locals>.oncomplete_";
1987static char __pyx_k_aio_stat_locals_oncomplete[] = "aio_stat.<locals>.oncomplete_";
1988static char __pyx_k_error_calling_ping_monitor[] = "error calling ping_monitor";
1989static char __pyx_k_error_enabling_application[] = "error enabling application";
1990static char __pyx_k_error_getting_a_completion[] = "error getting a completion";
1991static char __pyx_k_error_getting_cluster_fsid[] = "error getting cluster fsid";
1992static char __pyx_k_error_listing_applications[] = "error listing applications";
1993static char __pyx_k_requires_locals_check_type[] = "requires.<locals>.check_type";
1994static char __pyx_k_requires_locals_is_type_of[] = "requires.<locals>.is_type_of";
1995static char __pyx_k_rollback_self_managed_snap[] = "rollback_self_managed_snap";
1996static char __pyx_k_InvalidArgumentError___init[] = "InvalidArgumentError.__init__";
1997static char __pyx_k_Rados_mon_command_line_1288[] = "Rados.mon_command (line 1288)";
1998static char __pyx_k_complete_completions_object[] = "complete_completions: object";
1999static char __pyx_k_error_blacklisting_client_s[] = "error blacklisting client '%s'";
2000static char __pyx_k_flatten_dict_locals_genexpr[] = "flatten_dict.<locals>.genexpr";
2001static char __pyx_k_Object_require_object_exists[] = "Object.require_object_exists";
2002static char __pyx_k_PermissionDeniedError___init[] = "PermissionDeniedError.__init__";
2003static char __pyx_k_error_calling_conf_parse_env[] = "error calling conf_parse_env";
2004static char __pyx_k_error_calling_conf_read_file[] = "error calling conf_read_file";
2005static char __pyx_k_Ioctx_read_s_failed_to_read_s[] = "Ioctx.read(%s): failed to read %s";
2006static char __pyx_k_aio_execute_locals_oncomplete[] = "aio_execute.<locals>.oncomplete_";
2007static char __pyx_k_error_iterating_over_the_omap[] = "error iterating over the omap";
2008static char __pyx_k_Failed_to_delete_key_r_xattr_r[] = "Failed to delete key %r xattr %r";
2009static char __pyx_k_IsConnected_class_derived_from[] = " `IsConnected` class, derived from `Error` ";
2010static char __pyx_k_LIBRADOS_OPERATION_SKIPRWLOCKS[] = "LIBRADOS_OPERATION_SKIPRWLOCKS";
2011static char __pyx_k_ObjectStateError_class_derived[] = " `ObjectStateError` class, derived from `Error` ";
2012static char __pyx_k_RADOS_interrupted_or_timeout_s[] = "RADOS interrupted or timeout (%s)";
2013static char __pyx_k_error_calling_service_register[] = "error calling service_register()";
2014static char __pyx_k_home_bhubbard_working_src_ceph[] = "/home/bhubbard/working/src/ceph/src/pybind/rados/rados.pyx";
2015static char __pyx_k_num_objects_missing_on_primary[] = "num_objects_missing_on_primary";
2016static char __pyx_k_read_operation_context_manager[] = "read operation context manager";
2017static char __pyx_k_Error_class_derived_from_Except[] = " `Error` class, derived from `Exception` ";
2018static char __pyx_k_Failed_to_update_snapshot_write[] = "Failed to update snapshot write context";
2019static char __pyx_k_For_watching_cluster_log_messag[] = "\n For watching cluster log messages. Instantiate an object and keep\n it around while callback is periodically called. Construct with\n 'level' to monitor 'level' messages (one of MONITOR_LEVELS).\n arg will be passed to the callback.\n\n callback will be called with:\n arg (given to __init__)\n line (the full line, including timestamp, who, level, msg)\n who (which entity issued the log message)\n timestamp_sec (sec of a struct timespec)\n timestamp_nsec (sec of a struct timespec)\n seq (sequence number)\n level (string representing the level of the log message)\n msg (the message itself)\n callback's return value is ignored\n ";
2020static char __pyx_k_InProgress_class_derived_from_E[] = " `InProgress` class, derived from `Error` ";
2021static char __pyx_k_InterruptedOrTimeoutError_class[] = " `InterruptedOrTimeoutError` class, derived from `OSError` ";
2022static char __pyx_k_IoctxStateError_class_derived_f[] = " `IoctxStateError` class, derived from `Error` ";
2023static char __pyx_k_Ioctx_append_s_failed_to_append[] = "Ioctx.append(%s): failed to append %s";
2024static char __pyx_k_Ioctx_write_s_failed_to_write_s[] = "Ioctx.write(%s): failed to write %s";
2025static char __pyx_k_LIBRADOS_OPERATION_IGNORE_CACHE[] = "LIBRADOS_OPERATION_IGNORE_CACHE";
2026static char __pyx_k_LIBRADOS_OP_FLAG_FADVISE_RANDOM[] = "LIBRADOS_OP_FLAG_FADVISE_RANDOM";
2027static char __pyx_k_NoData_class_derived_from_OSErr[] = " `NoData` class, derived from `OSError` ";
2028static char __pyx_k_NoSpace_class_derived_from_OSEr[] = " `NoSpace` class, derived from `OSError` ";
2029static char __pyx_k_OSError_class_derived_from_Erro[] = " `OSError` class, derived from `Error` ";
2030static char __pyx_k_ObjectBusy_class_derived_from_I[] = " `ObjectBusy` class, derived from `IOError` ";
2031static char __pyx_k_ObjectBusy_class_derived_from_O[] = " `ObjectBusy` class, derived from `OSError` ";
2032static char __pyx_k_ObjectExists_class_derived_from[] = " `ObjectExists` class, derived from `OSError` ";
2033static char __pyx_k_ObjectNotFound_class_derived_fr[] = " `ObjectNotFound` class, derived from `OSError` ";
2034static char __pyx_k_PermissionError_class_derived_f[] = " `PermissionError` class, derived from `OSError` ";
2035static char __pyx_k_RadosStateError_class_derived_f[] = " `RadosStateError` class, derived from `Error` ";
2036static char __pyx_k_Rados_keys_and_values_must_have[] = "Rados(): keys and values must have the same number of items";
2037static char __pyx_k_Send_a_command_to_the_mon_mon_c[] = "\n Send a command to the mon.\n\n mon_command[_target](cmd, inbuf, outbuf, outbuflen, outs, outslen)\n\n :param cmd: JSON formatted string.\n :param inbuf: optional string.\n :param timeout: This parameter is ignored.\n :param target: name of a specific mon. Optional\n :return: (int ret, string outbuf, string outs)\n\n Example:\n\n >>> import json\n >>> c = Rados(conffile='/etc/ceph/ceph.conf')\n >>> c.connect()\n >>> cmd = json.dumps({\"prefix\": \"osd safe-to-destroy\", \"ids\": [\"2\"], \"format\": \"json\"})\n >>> c.mon_command(cmd, b'')\n ";
2038static char __pyx_k_This_module_is_a_thin_wrapper_a[] = "\nThis module is a thin wrapper around librados.\n\nError codes from librados are turned into exceptions that subclass\n:class:`Error`. Almost all methods may raise :class:`Error(the base class of all rados exceptions), :class:`PermissionError`\n(the base class of all rados exceptions), :class:`PermissionError`\nand :class:`IOError`, in addition to those documented for the\nmethod.\n";
2039static char __pyx_k_TimedOut_class_derived_from_OSE[] = " `TimedOut` class, derived from `OSError` ";
2040static char __pyx_k_error_calling_rados_monitor_log[] = "error calling rados_monitor_log";
2041static char __pyx_k_error_connecting_to_the_cluster[] = "error connecting to the cluster";
2042static char __pyx_k_error_reverse_looking_up_pool_s[] = "error reverse looking up pool '%s'";
2043static char __pyx_k_write_operation_context_manager[] = "write operation context manager";
2044static char __pyx_k_Failed_to_create_self_managed_sn[] = "Failed to create self-managed snapshot";
2045static char __pyx_k_Failed_to_get_rados_xattrs_for_o[] = "Failed to get rados xattrs for object %r";
2046static char __pyx_k_Failed_to_operate_aio_read_op_fo[] = "Failed to operate aio read op for oid %s";
2047static char __pyx_k_Failed_to_operate_aio_write_op_f[] = "Failed to operate aio write op for oid %s";
2048static char __pyx_k_Failed_to_operate_read_op_for_oi[] = "Failed to operate read op for oid %s";
2049static char __pyx_k_Failed_to_operate_write_op_for_o[] = "Failed to operate write op for oid %s";
2050static char __pyx_k_Failed_to_remove_self_managed_sn[] = "Failed to remove self-managed snapshot";
2051static char __pyx_k_InterruptedOrTimeoutError___init[] = "InterruptedOrTimeoutError.__init__";
2052static char __pyx_k_Ioctx_append_s_rados_append_retu[] = "Ioctx.append(%s): rados_append returned %d, but should return zero on success.";
2053static char __pyx_k_Ioctx_get_stats_s_get_stats_fail[] = "Ioctx.get_stats(%s): get_stats failed";
2054static char __pyx_k_Ioctx_rados_lock_exclusive_s_fai[] = "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s";
2055static char __pyx_k_Ioctx_trunc_s_failed_to_truncate[] = "Ioctx.trunc(%s): failed to truncate %s";
2056static char __pyx_k_Ioctx_write_full_s_failed_to_wri[] = "Ioctx.write_full(%s): failed to write %s";
2057static char __pyx_k_Ioctx_write_full_s_rados_write_f[] = "Ioctx.write_full(%s): rados_write_full returned %d, but should return zero on success.";
2058static char __pyx_k_Ioctx_write_s_rados_write_return[] = "Ioctx.write(%s): rados_write returned %d, but should return zero on success.";
2059static char __pyx_k_LIBRADOS_OPERATION_BALANCE_READS[] = "LIBRADOS_OPERATION_BALANCE_READS";
2060static char __pyx_k_LIBRADOS_OPERATION_IGNORE_OVERLA[] = "LIBRADOS_OPERATION_IGNORE_OVERLAY";
2061static char __pyx_k_LIBRADOS_OPERATION_LOCALIZE_READ[] = "LIBRADOS_OPERATION_LOCALIZE_READS";
2062static char __pyx_k_LIBRADOS_OPERATION_ORDER_READS_W[] = "LIBRADOS_OPERATION_ORDER_READS_WRITES";
2063static char __pyx_k_LIBRADOS_OP_FLAG_FADVISE_DONTNEE[] = "LIBRADOS_OP_FLAG_FADVISE_DONTNEED";
2064static char __pyx_k_LIBRADOS_OP_FLAG_FADVISE_NOCACHE[] = "LIBRADOS_OP_FLAG_FADVISE_NOCACHE";
2065static char __pyx_k_LIBRADOS_OP_FLAG_FADVISE_SEQUENT[] = "LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL";
2066static char __pyx_k_LIBRADOS_OP_FLAG_FADVISE_WILLNEE[] = "LIBRADOS_OP_FLAG_FADVISE_WILLNEED";
2067static char __pyx_k_Namespace_not_set_properly_in_co[] = "Namespace not set properly in context";
2068static char __pyx_k_Rados_can_t_supply_both_rados_id[] = "Rados(): can't supply both rados_id and name";
2069static char __pyx_k_Rados_get_cluster_stats_s_get_st[] = "Rados.get_cluster_stats(%s): get_stats failed";
2070static char __pyx_k_Rados_object_wrapper_makes_the_o[] = "Rados object wrapper, makes the object look like a file";
2071static char __pyx_k_You_cannot_perform_that_operatio[] = "You cannot perform that operation on a Rados object in state %s.";
2072static char __pyx_k_callback_must_be_a_callable_func[] = "callback must be a callable function or None";
2073static char __pyx_k_error_calling_conf_parse_argv_re[] = "error calling conf_parse_argv_remainder";
2074static char __pyx_k_error_calling_inconsistent_pg_li[] = "error calling inconsistent_pg_list";
2075static char __pyx_k_error_calling_rados_snap_list_fo[] = "error calling rados_snap_list for ioctx '%s'";
2076static char __pyx_k_error_calling_service_daemon_upd[] = "error calling service_daemon_update()";
2077static char __pyx_k_error_iterating_over_the_extende[] = "error iterating over the extended attributes in '%s'";
2078static char __pyx_k_error_iterating_over_the_objects[] = "error iterating over the objects in ioctx '%s'";
2079static char __pyx_k_error_listing_application_metada[] = "error listing application metadata";
2080static char __pyx_k_error_removing_application_metad[] = "error removing application metadata";
2081static char __pyx_k_error_setting_application_metada[] = "error setting application metadata";
2082static char __pyx_k_rados_Object_ioctx_s_key_s_nspac[] = "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)";
2083static char __pyx_k_rados_Snap_ioctx_s_name_s_snap_i[] = "rados.Snap(ioctx=%s,name=%s,snap_id=%d)";
2084static char __pyx_k_rados_initialize_failed_with_err[] = "rados_initialize failed with error code: %d";
2085static char __pyx_k_rados_ioctx_snap_get_stamp_error[] = "rados_ioctx_snap_get_stamp error";
2086static char __pyx_k_requires_locals_check_type_local[] = "requires.<locals>.check_type.<locals>.genexpr";
2087static char __pyx_k_requires_locals_wrapper_locals_v[] = "requires.<locals>.wrapper.<locals>.validate_func.<locals>.genexpr";
2088static char __pyx_k_set_object_locator_locals_retfun[] = "set_object_locator.<locals>.retfunc";
2089static char __pyx_k_set_object_namespace_locals_retf[] = "set_object_namespace.<locals>.retfunc";
2090static char __pyx_k_requires_locals_wrapper_locals_v_2[] = "requires.<locals>.wrapper.<locals>.validate_func";
2091static PyObject *__pyx_n_s_ADMIN_AUID;
2092static PyObject *__pyx_n_s_ANONYMOUS_AUID;
2093static PyObject *__pyx_n_s_CEPH_ARGS;
2094static PyObject *__pyx_n_s_Callable;
2095static PyObject *__pyx_n_s_Error;
2096static PyObject *__pyx_n_s_Error___init;
2097static PyObject *__pyx_n_s_Error___reduce;
2098static PyObject *__pyx_n_s_Error___str;
2099static PyObject *__pyx_kp_s_Error_class_derived_from_Except;
2100static PyObject *__pyx_n_s_Exception;
2101static PyObject *__pyx_kp_s_Failed_to_create_self_managed_sn;
2102static PyObject *__pyx_kp_s_Failed_to_create_snap_s;
2103static PyObject *__pyx_kp_s_Failed_to_delete_key_r_xattr_r;
2104static PyObject *__pyx_kp_s_Failed_to_get_rados_xattrs_for_o;
2105static PyObject *__pyx_kp_s_Failed_to_get_xattr_r;
2106static PyObject *__pyx_kp_s_Failed_to_lookup_snap_s;
2107static PyObject *__pyx_kp_s_Failed_to_notify_r;
2108static PyObject *__pyx_kp_s_Failed_to_operate_aio_read_op_fo;
2109static PyObject *__pyx_kp_s_Failed_to_operate_aio_write_op_f;
2110static PyObject *__pyx_kp_s_Failed_to_operate_read_op_for_oi;
2111static PyObject *__pyx_kp_s_Failed_to_operate_write_op_for_o;
2112static PyObject *__pyx_kp_s_Failed_to_remove_s;
2113static PyObject *__pyx_kp_s_Failed_to_remove_self_managed_sn;
2114static PyObject *__pyx_kp_s_Failed_to_remove_snap_s;
2115static PyObject *__pyx_kp_s_Failed_to_rollback_s;
2116static PyObject *__pyx_kp_s_Failed_to_set_xattr_r;
2117static PyObject *__pyx_kp_s_Failed_to_stat_r;
2118static PyObject *__pyx_kp_s_Failed_to_update_snapshot_write;
2119static PyObject *__pyx_kp_s_For_watching_cluster_log_messag;
2120static PyObject *__pyx_n_s_IOError;
2121static PyObject *__pyx_n_s_IOError___init;
2122static PyObject *__pyx_n_s_ImportError;
2123static PyObject *__pyx_n_s_InProgress;
2124static PyObject *__pyx_n_s_InProgress___init;
2125static PyObject *__pyx_kp_s_InProgress_class_derived_from_E;
2126static PyObject *__pyx_n_s_InterruptedOrTimeoutError;
2127static PyObject *__pyx_n_s_InterruptedOrTimeoutError___init;
2128static PyObject *__pyx_kp_s_InterruptedOrTimeoutError_class;
2129static PyObject *__pyx_n_s_InvalidArgumentError;
2130static PyObject *__pyx_n_s_InvalidArgumentError___init;
2131static PyObject *__pyx_n_s_IoctxStateError;
2132static PyObject *__pyx_n_s_IoctxStateError___init;
2133static PyObject *__pyx_kp_s_IoctxStateError_class_derived_f;
2134static PyObject *__pyx_kp_s_Ioctx_append_s_failed_to_append;
2135static PyObject *__pyx_kp_s_Ioctx_append_s_rados_append_retu;
2136static PyObject *__pyx_kp_s_Ioctx_get_stats_s_get_stats_fail;
2137static PyObject *__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai;
2138static PyObject *__pyx_kp_s_Ioctx_read_s_failed_to_read_s;
2139static PyObject *__pyx_kp_s_Ioctx_trunc_s_failed_to_truncate;
2140static PyObject *__pyx_kp_s_Ioctx_write_full_s_failed_to_wri;
2141static PyObject *__pyx_kp_s_Ioctx_write_full_s_rados_write_f;
2142static PyObject *__pyx_kp_s_Ioctx_write_s_failed_to_write_s;
2143static PyObject *__pyx_kp_s_Ioctx_write_s_rados_write_return;
2144static PyObject *__pyx_n_s_IsConnected;
2145static PyObject *__pyx_n_s_IsConnected___init;
2146static PyObject *__pyx_kp_s_IsConnected_class_derived_from;
2147static PyObject *__pyx_n_s_LIBRADOS_ALL_NSPACES;
2148static PyObject *__pyx_n_s_LIBRADOS_CREATE_EXCLUSIVE;
2149static PyObject *__pyx_n_s_LIBRADOS_CREATE_IDEMPOTENT;
2150static PyObject *__pyx_n_s_LIBRADOS_OPERATION_BALANCE_READS;
2151static PyObject *__pyx_n_s_LIBRADOS_OPERATION_IGNORE_CACHE;
2152static PyObject *__pyx_n_s_LIBRADOS_OPERATION_IGNORE_OVERLA;
2153static PyObject *__pyx_n_s_LIBRADOS_OPERATION_LOCALIZE_READ;
2154static PyObject *__pyx_n_s_LIBRADOS_OPERATION_NOFLAG;
2155static PyObject *__pyx_n_s_LIBRADOS_OPERATION_ORDER_READS_W;
2156static PyObject *__pyx_n_s_LIBRADOS_OPERATION_SKIPRWLOCKS;
2157static PyObject *__pyx_n_s_LIBRADOS_OP_FLAG_EXCL;
2158static PyObject *__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_DONTNEE;
2159static PyObject *__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_NOCACHE;
2160static PyObject *__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_RANDOM;
2161static PyObject *__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_SEQUENT;
2162static PyObject *__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_WILLNEE;
2163static PyObject *__pyx_n_s_LIBRADOS_OP_FLAG_FAILOK;
2164static PyObject *__pyx_n_s_LIBRADOS_SNAP_HEAD;
2165static PyObject *__pyx_n_s_Lock;
2166static PyObject *__pyx_n_s_LogicError;
2167static PyObject *__pyx_n_s_LogicError___init;
2168static PyObject *__pyx_n_s_MONITOR_LEVELS;
2169static PyObject *__pyx_n_s_MemoryError;
2170static PyObject *__pyx_n_s_MonitorLog;
2171static PyObject *__pyx_n_s_MonitorLog___init;
2172static PyObject *__pyx_kp_s_Namespace_not_set_properly_in_co;
2173static PyObject *__pyx_n_s_NoData;
2174static PyObject *__pyx_n_s_NoData___init;
2175static PyObject *__pyx_kp_s_NoData_class_derived_from_OSErr;
2176static PyObject *__pyx_n_s_NoSpace;
2177static PyObject *__pyx_n_s_NoSpace___init;
2178static PyObject *__pyx_kp_s_NoSpace_class_derived_from_OSEr;
2179static PyObject *__pyx_n_s_None;
2180static PyObject *__pyx_n_s_OSError;
2181static PyObject *__pyx_kp_s_OSError_class_derived_from_Erro;
2182static PyObject *__pyx_n_s_Object;
2183static PyObject *__pyx_n_s_ObjectBusy;
2184static PyObject *__pyx_n_s_ObjectBusy___init;
2185static PyObject *__pyx_kp_s_ObjectBusy_class_derived_from_I;
2186static PyObject *__pyx_kp_s_ObjectBusy_class_derived_from_O;
2187static PyObject *__pyx_n_s_ObjectExists;
2188static PyObject *__pyx_n_s_ObjectExists___init;
2189static PyObject *__pyx_kp_s_ObjectExists_class_derived_from;
2190static PyObject *__pyx_n_s_ObjectNotFound;
2191static PyObject *__pyx_n_s_ObjectNotFound___init;
2192static PyObject *__pyx_kp_s_ObjectNotFound_class_derived_fr;
2193static PyObject *__pyx_n_s_ObjectStateError;
2194static PyObject *__pyx_n_s_ObjectStateError___init;
2195static PyObject *__pyx_kp_s_ObjectStateError_class_derived;
2196static PyObject *__pyx_n_s_Object___init;
2197static PyObject *__pyx_n_s_Object___str;
2198static PyObject *__pyx_n_s_Object_get_xattr;
2199static PyObject *__pyx_n_s_Object_get_xattrs;
2200static PyObject *__pyx_n_s_Object_read;
2201static PyObject *__pyx_n_s_Object_remove;
2202static PyObject *__pyx_n_s_Object_require_object_exists;
2203static PyObject *__pyx_n_s_Object_rm_xattr;
2204static PyObject *__pyx_n_s_Object_seek;
2205static PyObject *__pyx_n_s_Object_set_xattr;
2206static PyObject *__pyx_n_s_Object_stat;
2207static PyObject *__pyx_n_s_Object_write;
2208static PyObject *__pyx_n_s_OpCtx;
2209static PyObject *__pyx_n_s_OpCtx___enter;
2210static PyObject *__pyx_n_s_OpCtx___exit;
2211static PyObject *__pyx_n_s_PermissionDeniedError;
2212static PyObject *__pyx_n_s_PermissionDeniedError___init;
2213static PyObject *__pyx_n_s_PermissionError;
2214static PyObject *__pyx_n_s_PermissionError___init;
2215static PyObject *__pyx_kp_s_PermissionError_class_derived_f;
2216static PyObject *__pyx_kp_s_RADOS_I_O_error_s;
2217static PyObject *__pyx_kp_s_RADOS_Ioctx_state_error_s;
2218static PyObject *__pyx_kp_s_RADOS_in_progress_error_s;
2219static PyObject *__pyx_kp_s_RADOS_interrupted_or_timeout_s;
2220static PyObject *__pyx_kp_s_RADOS_invalid_argument_s;
2221static PyObject *__pyx_kp_s_RADOS_is_connected_error_s;
2222static PyObject *__pyx_kp_s_RADOS_logic_error_s;
2223static PyObject *__pyx_kp_s_RADOS_no_data_s;
2224static PyObject *__pyx_kp_s_RADOS_no_space_s;
2225static PyObject *__pyx_kp_s_RADOS_object_busy_s;
2226static PyObject *__pyx_kp_s_RADOS_object_exists_s;
2227static PyObject *__pyx_kp_s_RADOS_object_not_found_s;
2228static PyObject *__pyx_kp_s_RADOS_object_state_error_s;
2229static PyObject *__pyx_kp_s_RADOS_permission_denied_s;
2230static PyObject *__pyx_kp_s_RADOS_permission_error_s;
2231static PyObject *__pyx_kp_s_RADOS_rados_state_s;
2232static PyObject *__pyx_kp_s_RADOS_timed_out_s;
2233static PyObject *__pyx_n_s_RadosStateError;
2234static PyObject *__pyx_n_s_RadosStateError___init;
2235static PyObject *__pyx_kp_s_RadosStateError_class_derived_f;
2236static PyObject *__pyx_kp_s_Rados_can_t_supply_both_rados_id;
2237static PyObject *__pyx_kp_s_Rados_get_cluster_stats_s_get_st;
2238static PyObject *__pyx_kp_s_Rados_keys_and_values_must_have;
2239static PyObject *__pyx_kp_u_Rados_mon_command_line_1288;
2240static PyObject *__pyx_kp_s_Rados_object_wrapper_makes_the_o;
2241static PyObject *__pyx_n_s_ReadOpCtx;
2242static PyObject *__pyx_kp_u_Send_a_command_to_the_mon_mon_c;
2243static PyObject *__pyx_n_s_StopIteration;
2244static PyObject *__pyx_kp_s_The_object_is_s;
2245static PyObject *__pyx_kp_s_The_pool_is_s;
2246static PyObject *__pyx_n_s_TimedOut;
2247static PyObject *__pyx_n_s_TimedOut___init;
2248static PyObject *__pyx_kp_s_TimedOut_class_derived_from_OSE;
2249static PyObject *__pyx_n_s_TypeError;
2250static PyObject *__pyx_n_s_Version;
2251static PyObject *__pyx_n_s_Version___init;
2252static PyObject *__pyx_n_s_Version___str;
2253static PyObject *__pyx_kp_s_Version_information;
2254static PyObject *__pyx_n_s_WriteOpCtx;
2255static PyObject *__pyx_kp_s_You_cannot_perform_that_operatio;
2256static PyObject *__pyx_kp_s__10;
2257static PyObject *__pyx_kp_b__9;
2258static PyObject *__pyx_kp_s__9;
2259static PyObject *__pyx_n_s_aio_append;
2260static PyObject *__pyx_n_s_aio_execute;
2261static PyObject *__pyx_n_s_aio_execute_locals_oncomplete;
2262static PyObject *__pyx_n_s_aio_execute_locals_onsafe;
2263static PyObject *__pyx_n_s_aio_read;
2264static PyObject *__pyx_n_s_aio_read_locals_oncomplete;
2265static PyObject *__pyx_n_s_aio_remove;
2266static PyObject *__pyx_n_s_aio_stat;
2267static PyObject *__pyx_n_s_aio_stat_locals_oncomplete;
2268static PyObject *__pyx_n_s_aio_write;
2269static PyObject *__pyx_n_s_aio_write_full;
2270static PyObject *__pyx_n_s_app_name;
2271static PyObject *__pyx_n_s_append;
2272static PyObject *__pyx_n_s_arg;
2273static PyObject *__pyx_n_s_arg_name;
2274static PyObject *__pyx_n_s_arg_type;
2275static PyObject *__pyx_n_s_arg_val;
2276static PyObject *__pyx_n_s_args;
2277static PyObject *__pyx_n_s_assert_version;
2278static PyObject *__pyx_n_s_c;
2279static PyObject *__pyx_n_s_callback;
2280static PyObject *__pyx_kp_s_callback_must_be_a_callable_func;
2281static PyObject *__pyx_n_s_chain;
2282static PyObject *__pyx_n_s_check_type;
2283static PyObject *__pyx_n_s_class;
2284static PyObject *__pyx_kp_s_class_derived_from_Error;
2285static PyObject *__pyx_n_s_cleanup;
2286static PyObject *__pyx_n_s_clear_omap;
2287static PyObject *__pyx_kp_s_client;
2288static PyObject *__pyx_n_s_client_address;
2289static PyObject *__pyx_kp_s_client_admin;
2290static PyObject *__pyx_n_s_close;
2291static PyObject *__pyx_n_s_closed;
2292static PyObject *__pyx_n_s_cls;
2293static PyObject *__pyx_n_s_cluster;
2294static PyObject *__pyx_n_s_clustername;
2295static PyObject *__pyx_n_s_cmd;
2296static PyObject *__pyx_n_s_collections;
2297static PyObject *__pyx_n_s_collections_abc;
2298static PyObject *__pyx_n_s_complete;
2299static PyObject *__pyx_n_s_completion_v;
2300static PyObject *__pyx_n_s_completion_v_2;
2301static PyObject *__pyx_n_s_conf;
2302static PyObject *__pyx_n_s_conf_defaults;
2303static PyObject *__pyx_n_s_conf_get;
2304static PyObject *__pyx_n_s_conf_read_file;
2305static PyObject *__pyx_n_s_conf_set;
2306static PyObject *__pyx_n_s_conffile;
2307static PyObject *__pyx_n_s_configuring;
2308static PyObject *__pyx_n_s_connect;
2309static PyObject *__pyx_n_s_connected;
2310static PyObject *__pyx_n_s_context;
2311static PyObject *__pyx_n_s_cookie;
2312static PyObject *__pyx_n_s_create;
2313static PyObject *__pyx_n_s_create_pool;
2314static PyObject *__pyx_n_s_create_snap;
2315static PyObject *__pyx_n_s_crush_rule;
2316static PyObject *__pyx_n_s_cstr;
2317static PyObject *__pyx_n_s_cstr_list;
2318static PyObject *__pyx_n_s_d;
2319static PyObject *__pyx_kp_s_d_d_d;
2320static PyObject *__pyx_n_s_daemon;
2321static PyObject *__pyx_n_s_data;
2322static PyObject *__pyx_n_s_datetime;
2323static PyObject *__pyx_kp_s_deal_with_EACCES_related;
2324static PyObject *__pyx_n_s_debug;
2325static PyObject *__pyx_n_s_decode;
2326static PyObject *__pyx_n_s_decode_cstr;
2327static PyObject *__pyx_kp_s_default;
2328static PyObject *__pyx_n_s_delete_pool;
2329static PyObject *__pyx_n_s_desc;
2330static PyObject *__pyx_n_s_doc;
2331static PyObject *__pyx_n_s_duration;
2332static PyObject *__pyx_n_s_encode;
2333static PyObject *__pyx_n_s_encoding;
2334static PyObject *__pyx_n_s_enter;
2335static PyObject *__pyx_n_s_err;
2336static PyObject *__pyx_n_s_errno;
2337static PyObject *__pyx_kp_s_errno_0_1;
2338static PyObject *__pyx_n_s_error;
2339static PyObject *__pyx_kp_s_error_appending_object_s;
2340static PyObject *__pyx_kp_s_error_blacklisting_client_s;
2341static PyObject *__pyx_kp_s_error_calling_conf_get;
2342static PyObject *__pyx_kp_s_error_calling_conf_parse_argv_re;
2343static PyObject *__pyx_kp_s_error_calling_conf_parse_env;
2344static PyObject *__pyx_kp_s_error_calling_conf_read_file;
2345static PyObject *__pyx_kp_s_error_calling_conf_set;
2346static PyObject *__pyx_kp_s_error_calling_inconsistent_pg_li;
2347static PyObject *__pyx_kp_s_error_calling_ping_monitor;
2348static PyObject *__pyx_kp_s_error_calling_rados_monitor_log;
2349static PyObject *__pyx_kp_s_error_calling_rados_snap_list_fo;
2350static PyObject *__pyx_kp_s_error_calling_service_daemon_upd;
2351static PyObject *__pyx_kp_s_error_calling_service_register;
2352static PyObject *__pyx_kp_s_error_checking_alignment;
2353static PyObject *__pyx_kp_s_error_connecting_to_the_cluster;
2354static PyObject *__pyx_kp_s_error_creating_pool_s;
2355static PyObject *__pyx_kp_s_error_deleting_pool_s;
2356static PyObject *__pyx_kp_s_error_enabling_application;
2357static PyObject *__pyx_kp_s_error_executing_s_s_on_s;
2358static PyObject *__pyx_kp_s_error_flushing;
2359static PyObject *__pyx_kp_s_error_getting_a_completion;
2360static PyObject *__pyx_kp_s_error_getting_cluster_fsid;
2361static PyObject *__pyx_kp_s_error_iterating_over_the_extende;
2362static PyObject *__pyx_kp_s_error_iterating_over_the_objects;
2363static PyObject *__pyx_kp_s_error_iterating_over_the_omap;
2364static PyObject *__pyx_kp_s_error_listing_application_metada;
2365static PyObject *__pyx_kp_s_error_listing_applications;
2366static PyObject *__pyx_kp_s_error_looking_up_pool_s;
2367static PyObject *__pyx_kp_s_error_opening_pool_id_s;
2368static PyObject *__pyx_kp_s_error_opening_pool_s;
2369static PyObject *__pyx_kp_s_error_querying_alignment;
2370static PyObject *__pyx_kp_s_error_reading_s;
2371static PyObject *__pyx_kp_s_error_removing_application_metad;
2372static PyObject *__pyx_kp_s_error_removing_s;
2373static PyObject *__pyx_kp_s_error_reverse_looking_up_pool_s;
2374static PyObject *__pyx_kp_s_error_setting_application_metada;
2375static PyObject *__pyx_kp_s_error_stating_s;
2376static PyObject *__pyx_kp_s_error_writing_object_s;
2377static PyObject *__pyx_n_s_exclusive;
2378static PyObject *__pyx_n_s_execute;
2379static PyObject *__pyx_n_s_exists;
2380static PyObject *__pyx_n_s_exit;
2381static PyObject *__pyx_n_s_expire_seconds;
2382static PyObject *__pyx_n_s_extra;
2383static PyObject *__pyx_n_s_f;
2384static PyObject *__pyx_n_s_filter_prefix;
2385static PyObject *__pyx_n_s_flag;
2386static PyObject *__pyx_n_s_flags;
2387static PyObject *__pyx_n_s_flatten_dict;
2388static PyObject *__pyx_n_s_flatten_dict_locals_genexpr;
2389static PyObject *__pyx_n_s_force;
2390static PyObject *__pyx_n_s_format;
2391static PyObject *__pyx_n_s_from_iterable;
2392static PyObject *__pyx_n_s_fromtimestamp;
2393static PyObject *__pyx_n_s_func;
2394static PyObject *__pyx_n_s_functools;
2395static PyObject *__pyx_n_s_genexpr;
2396static PyObject *__pyx_n_s_get_completion;
2397static PyObject *__pyx_n_s_get_inconsistent_pgs;
2398static PyObject *__pyx_n_s_get_locator_key;
2399static PyObject *__pyx_n_s_get_namespace;
2400static PyObject *__pyx_n_s_get_omap_keys;
2401static PyObject *__pyx_n_s_get_omap_vals;
2402static PyObject *__pyx_n_s_get_omap_vals_by_keys;
2403static PyObject *__pyx_n_s_get_pool_base_tier;
2404static PyObject *__pyx_kp_s_get_pool_base_tier_d;
2405static PyObject *__pyx_n_s_get_return_value;
2406static PyObject *__pyx_n_s_get_xattr;
2407static PyObject *__pyx_n_s_get_xattrs;
2408static PyObject *__pyx_kp_s_home_bhubbard_working_src_ceph;
2409static PyObject *__pyx_n_s_import;
2410static PyObject *__pyx_n_s_inbuf;
2411static PyObject *__pyx_n_s_info;
2412static PyObject *__pyx_n_s_init;
2413static PyObject *__pyx_kp_s_invalid_monitor_level;
2414static PyObject *__pyx_n_s_ioctx;
2415static PyObject *__pyx_n_s_ioctx_name;
2416static PyObject *__pyx_n_s_is_type_of;
2417static PyObject *__pyx_n_s_items;
2418static PyObject *__pyx_n_s_itertools;
2419static PyObject *__pyx_n_s_join;
2420static PyObject *__pyx_n_s_kb;
2421static PyObject *__pyx_n_s_kb_avail;
2422static PyObject *__pyx_n_s_kb_used;
2423static PyObject *__pyx_n_s_key;
2424static PyObject *__pyx_n_s_keys;
2425static PyObject *__pyx_n_s_kwargs;
2426static PyObject *__pyx_n_s_length;
2427static PyObject *__pyx_n_s_level;
2428static PyObject *__pyx_n_s_list_str;
2429static PyObject *__pyx_n_s_loc_key;
2430static PyObject *__pyx_n_s_localtime;
2431static PyObject *__pyx_n_s_locator_key;
2432static PyObject *__pyx_n_s_lock_exclusive;
2433static PyObject *__pyx_n_s_lock_shared;
2434static PyObject *__pyx_n_s_lookup_snap;
2435static PyObject *__pyx_n_s_main;
2436static PyObject *__pyx_n_s_major;
2437static PyObject *__pyx_kp_s_malloc_failed;
2438static PyObject *__pyx_n_s_max_return;
2439static PyObject *__pyx_n_s_message;
2440static PyObject *__pyx_n_s_metaclass;
2441static PyObject *__pyx_n_s_metadata;
2442static PyObject *__pyx_n_s_method;
2443static PyObject *__pyx_n_s_minor;
2444static PyObject *__pyx_n_s_module;
2445static PyObject *__pyx_n_s_mon_id;
2446static PyObject *__pyx_n_s_monitor_log;
2447static PyObject *__pyx_n_s_msg;
2448static PyObject *__pyx_n_s_mtime;
2449static PyObject *__pyx_n_s_name;
2450static PyObject *__pyx_n_s_name_2;
2451static PyObject *__pyx_n_s_named_args;
2452static PyObject *__pyx_n_s_new;
2453static PyObject *__pyx_n_s_notify;
2454static PyObject *__pyx_n_s_nspace;
2455static PyObject *__pyx_n_s_num_bytes;
2456static PyObject *__pyx_n_s_num_kb;
2457static PyObject *__pyx_n_s_num_object_clones;
2458static PyObject *__pyx_n_s_num_object_copies;
2459static PyObject *__pyx_n_s_num_objects;
2460static PyObject *__pyx_n_s_num_objects_degraded;
2461static PyObject *__pyx_n_s_num_objects_missing_on_primary;
2462static PyObject *__pyx_n_s_num_objects_unfound;
2463static PyObject *__pyx_n_s_num_rd;
2464static PyObject *__pyx_n_s_num_rd_kb;
2465static PyObject *__pyx_n_s_num_wr;
2466static PyObject *__pyx_n_s_num_wr_kb;
2467static PyObject *__pyx_n_s_obj;
2468static PyObject *__pyx_n_s_object;
2469static PyObject *__pyx_n_s_object_name;
2470static PyObject *__pyx_n_s_offset;
2471static PyObject *__pyx_n_s_oid;
2472static PyObject *__pyx_n_s_old_locator;
2473static PyObject *__pyx_n_s_old_nspace;
2474static PyObject *__pyx_n_s_oncomplete;
2475static PyObject *__pyx_n_s_oncomplete_2;
2476static PyObject *__pyx_n_s_onsafe;
2477static PyObject *__pyx_n_s_onsafe_2;
2478static PyObject *__pyx_n_s_open;
2479static PyObject *__pyx_n_s_open_ioctx;
2480static PyObject *__pyx_n_s_open_ioctx2;
2481static PyObject *__pyx_n_s_operate_aio_read_op;
2482static PyObject *__pyx_n_s_operate_aio_write_op;
2483static PyObject *__pyx_n_s_operate_read_op;
2484static PyObject *__pyx_n_s_operate_write_op;
2485static PyObject *__pyx_n_s_opt;
2486static PyObject *__pyx_n_s_option;
2487static PyObject *__pyx_kp_s_or;
2488static PyObject *__pyx_n_s_osdid;
2489static PyObject *__pyx_n_s_partial;
2490static PyObject *__pyx_n_s_path;
2491static PyObject *__pyx_n_s_pgid;
2492static PyObject *__pyx_n_s_pool_exists;
2493static PyObject *__pyx_n_s_pool_id;
2494static PyObject *__pyx_n_s_pool_lookup;
2495static PyObject *__pyx_n_s_pool_name;
2496static PyObject *__pyx_n_s_pool_reverse_lookup;
2497static PyObject *__pyx_n_s_pos_args;
2498static PyObject *__pyx_n_s_position;
2499static PyObject *__pyx_n_s_prepare;
2500static PyObject *__pyx_n_s_qualname;
2501static PyObject *__pyx_n_s_rados;
2502static PyObject *__pyx_kp_s_rados_Object_ioctx_s_key_s_nspac;
2503static PyObject *__pyx_kp_s_rados_Snap_ioctx_s_name_s_snap_i;
2504static PyObject *__pyx_n_s_rados_id;
2505static PyObject *__pyx_kp_s_rados_initialize_failed_with_err;
2506static PyObject *__pyx_kp_s_rados_ioctx_snap_get_stamp_error;
2507static PyObject *__pyx_kp_s_rados_snap_get_name_error;
2508static PyObject *__pyx_n_s_range;
2509static PyObject *__pyx_n_s_read;
2510static PyObject *__pyx_n_s_read_op;
2511static PyObject *__pyx_kp_s_read_operation_context_manager;
2512static PyObject *__pyx_kp_s_realloc_failed;
2513static PyObject *__pyx_n_s_reduce;
2514static PyObject *__pyx_n_s_release;
2515static PyObject *__pyx_n_s_remove;
2516static PyObject *__pyx_n_s_remove_object;
2517static PyObject *__pyx_n_s_remove_omap_keys;
2518static PyObject *__pyx_n_s_remove_self_managed_snap;
2519static PyObject *__pyx_n_s_remove_snap;
2520static PyObject *__pyx_n_s_removed;
2521static PyObject *__pyx_n_s_require_ioctx_open;
2522static PyObject *__pyx_n_s_require_object_exists;
2523static PyObject *__pyx_n_s_require_state;
2524static PyObject *__pyx_n_s_requires;
2525static PyObject *__pyx_n_s_requires_locals_check_type;
2526static PyObject *__pyx_n_s_requires_locals_check_type_local;
2527static PyObject *__pyx_n_s_requires_locals_is_type_of;
2528static PyObject *__pyx_n_s_requires_locals_wrapper;
2529static PyObject *__pyx_n_s_requires_locals_wrapper_locals_v;
2530static PyObject *__pyx_n_s_requires_locals_wrapper_locals_v_2;
2531static PyObject *__pyx_n_s_ret;
2532static PyObject *__pyx_n_s_retfunc;
2533static PyObject *__pyx_n_s_return_value;
2534static PyObject *__pyx_n_s_retval;
2535static PyObject *__pyx_n_s_reverse;
2536static PyObject *__pyx_n_s_rm_xattr;
2537static PyObject *__pyx_n_s_rollback_self_managed_snap;
2538static PyObject *__pyx_n_s_rstrip;
2539static PyObject *__pyx_n_s_s;
2540static PyObject *__pyx_kp_s_s_must_be_a_string;
2541static PyObject *__pyx_kp_s_s_must_be_s;
2542static PyObject *__pyx_n_s_safe;
2543static PyObject *__pyx_n_s_sec;
2544static PyObject *__pyx_n_s_seek;
2545static PyObject *__pyx_n_s_self;
2546static PyObject *__pyx_n_s_send;
2547static PyObject *__pyx_n_s_service;
2548static PyObject *__pyx_n_s_service_daemon_register;
2549static PyObject *__pyx_n_s_service_daemon_update;
2550static PyObject *__pyx_n_s_set_flags;
2551static PyObject *__pyx_n_s_set_locator_key;
2552static PyObject *__pyx_n_s_set_namespace;
2553static PyObject *__pyx_n_s_set_object_locator;
2554static PyObject *__pyx_n_s_set_object_locator_locals_retfun;
2555static PyObject *__pyx_n_s_set_object_namespace;
2556static PyObject *__pyx_n_s_set_object_namespace_locals_retf;
2557static PyObject *__pyx_n_s_set_omap;
2558static PyObject *__pyx_n_s_set_read;
2559static PyObject *__pyx_n_s_set_xattr;
2560static PyObject *__pyx_n_s_setup;
2561static PyObject *__pyx_n_s_shutdown;
2562static PyObject *__pyx_n_s_size;
2563static PyObject *__pyx_n_s_snap_id;
2564static PyObject *__pyx_n_s_snap_name;
2565static PyObject *__pyx_n_s_snap_rollback;
2566static PyObject *__pyx_n_s_sorted;
2567static PyObject *__pyx_n_s_split;
2568static PyObject *__pyx_n_s_start_after;
2569static PyObject *__pyx_n_s_stat;
2570static PyObject *__pyx_n_s_state;
2571static PyObject *__pyx_n_s_status;
2572static PyObject *__pyx_n_s_str;
2573static PyObject *__pyx_n_s_str_type;
2574static PyObject *__pyx_n_s_string_to_write;
2575static PyObject *__pyx_n_s_super;
2576static PyObject *__pyx_n_s_sys;
2577static PyObject *__pyx_n_s_t;
2578static PyObject *__pyx_n_s_tag;
2579static PyObject *__pyx_n_s_target;
2580static PyObject *__pyx_n_s_test;
2581static PyObject *__pyx_n_s_threading;
2582static PyObject *__pyx_n_s_throw;
2583static PyObject *__pyx_n_s_time;
2584static PyObject *__pyx_n_s_timeout;
2585static PyObject *__pyx_n_s_timeout_ms;
2586static PyObject *__pyx_n_s_to_append;
2587static PyObject *__pyx_n_s_to_write;
2588static PyObject *__pyx_n_s_traceback;
2589static PyObject *__pyx_n_s_track_completion;
2590static PyObject *__pyx_n_s_trunc;
2591static PyObject *__pyx_n_s_truncate;
2592static PyObject *__pyx_n_s_type;
2593static PyObject *__pyx_n_s_type_2;
2594static PyObject *__pyx_n_s_type_names;
2595static PyObject *__pyx_n_s_types;
2596static PyObject *__pyx_n_s_unlock;
2597static PyObject *__pyx_kp_s_utf_8;
2598static PyObject *__pyx_n_s_v;
2599static PyObject *__pyx_n_s_val;
2600static PyObject *__pyx_n_s_validate_func;
2601static PyObject *__pyx_n_s_value;
2602static PyObject *__pyx_n_s_values;
2603static PyObject *__pyx_n_s_var;
2604static PyObject *__pyx_n_s_version;
2605static PyObject *__pyx_n_s_version_info;
2606static PyObject *__pyx_n_s_warn;
2607static PyObject *__pyx_n_s_warning;
2608static PyObject *__pyx_n_s_wrapper;
2609static PyObject *__pyx_n_s_wraps;
2610static PyObject *__pyx_n_s_write;
2611static PyObject *__pyx_n_s_write_full;
2612static PyObject *__pyx_n_s_write_op;
2613static PyObject *__pyx_kp_s_write_operation_context_manager;
2614static PyObject *__pyx_n_s_xattr_name;
2615static PyObject *__pyx_n_s_xattr_value;
2616static PyObject *__pyx_n_s_xrange;
2617static PyObject *__pyx_n_s_zero;
2618static PyObject *__pyx_n_s_zip;
2619static PyObject *__pyx_pf_5rados_5Error___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2620static PyObject *__pyx_pf_5rados_5Error_2__str__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2621static PyObject *__pyx_pf_5rados_5Error_4__reduce__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2622static PyObject *__pyx_pf_5rados_20InvalidArgumentError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2623static PyObject *__pyx_pf_5rados_25InterruptedOrTimeoutError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2624static PyObject *__pyx_pf_5rados_15PermissionError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2625static PyObject *__pyx_pf_5rados_21PermissionDeniedError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2626static PyObject *__pyx_pf_5rados_14ObjectNotFound___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2627static PyObject *__pyx_pf_5rados_6NoData___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2628static PyObject *__pyx_pf_5rados_12ObjectExists___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2629static PyObject *__pyx_pf_5rados_10ObjectBusy___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2630static PyObject *__pyx_pf_5rados_7IOError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2631static PyObject *__pyx_pf_5rados_7NoSpace___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2632static PyObject *__pyx_pf_5rados_15RadosStateError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2633static PyObject *__pyx_pf_5rados_15IoctxStateError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2634static PyObject *__pyx_pf_5rados_16ObjectStateError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2635static PyObject *__pyx_pf_5rados_10LogicError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2636static PyObject *__pyx_pf_5rados_8TimedOut___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2637static PyObject *__pyx_pf_5rados_10InProgress___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2638static PyObject *__pyx_pf_5rados_11IsConnected___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno); /* proto */
2639static PyObject *__pyx_pf_5rados_opt(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_cls); /* proto */
2640static PyObject *__pyx_pf_5rados_8requires_is_type_of(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_v, PyObject *__pyx_v_t); /* proto */
2641static PyObject *__pyx_pf_5rados_8requires_10check_type_genexpr(PyObject *__pyx_self); /* proto */
2642static PyObject *__pyx_pf_5rados_8requires_10check_type_3genexpr(PyObject *__pyx_self); /* proto */
2643static PyObject *__pyx_pf_5rados_8requires_2check_type(PyObject *__pyx_self, PyObject *__pyx_v_val, PyObject *__pyx_v_arg_name, PyObject *__pyx_v_arg_type); /* proto */
2644static PyObject *__pyx_pf_5rados_8requires_7wrapper_13validate_func_genexpr(PyObject *__pyx_self); /* proto */
2645static PyObject *__pyx_pf_5rados_8requires_7wrapper_validate_func(PyObject *__pyx_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
2646static PyObject *__pyx_pf_5rados_8requires_4wrapper(PyObject *__pyx_self, PyObject *__pyx_v_f); /* proto */
2647static PyObject *__pyx_pf_5rados_2requires(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_types); /* proto */
2648static PyObject *__pyx_pf_5rados_4cstr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_val, PyObject *__pyx_v_name, PyObject *__pyx_v_encoding, PyObject *__pyx_v_opt); /* proto */
2649static PyObject *__pyx_pf_5rados_6cstr_list(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_list_str, PyObject *__pyx_v_name, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_encoding); /* proto */
2650static PyObject *__pyx_pf_5rados_8decode_cstr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_val, PyObject *__pyx_v_encoding); /* proto */
2651static PyObject *__pyx_pf_5rados_12flatten_dict_genexpr(PyObject *__pyx_self); /* proto */
2652static PyObject *__pyx_pf_5rados_10flatten_dict(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_d, PyObject *__pyx_v_name); /* proto */
2653static PyObject *__pyx_pf_5rados_7Version___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_major, PyObject *__pyx_v_minor, PyObject *__pyx_v_extra); /* proto */
2654static PyObject *__pyx_pf_5rados_7Version_2__str__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2655static int __pyx_pf_5rados_5Rados___init__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
2656static PyObject *__pyx_pf_5rados_5Rados_2__setup(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_rados_id, PyObject *__pyx_v_name, PyObject *__pyx_v_clustername, PyObject *__pyx_v_conf_defaults, PyObject *__pyx_v_conffile, PyObject *__pyx_v_conf, PyObject *__pyx_v_flags, PyObject *__pyx_v_context); /* proto */
2657static PyObject *__pyx_pf_5rados_5Rados_4require_state(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_args); /* proto */
2658static PyObject *__pyx_pf_5rados_5Rados_6shutdown(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2659static PyObject *__pyx_pf_5rados_5Rados_8__enter__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2660static PyObject *__pyx_pf_5rados_5Rados_10__exit__(struct __pyx_obj_5rados_Rados *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type_, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_value, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback); /* proto */
2661static PyObject *__pyx_pf_5rados_5Rados_12version(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2662static PyObject *__pyx_pf_5rados_5Rados_14conf_read_file(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_path); /* proto */
2663static PyObject *__pyx_pf_5rados_5Rados_16conf_parse_argv(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_args); /* proto */
2664static PyObject *__pyx_pf_5rados_5Rados_18conf_parse_env(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_var); /* proto */
2665static PyObject *__pyx_pf_5rados_5Rados_20conf_get(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_option); /* proto */
2666static PyObject *__pyx_pf_5rados_5Rados_22conf_set(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_option, PyObject *__pyx_v_val); /* proto */
2667static PyObject *__pyx_pf_5rados_5Rados_24ping_monitor(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_mon_id); /* proto */
2668static PyObject *__pyx_pf_5rados_5Rados_26connect(struct __pyx_obj_5rados_Rados *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout); /* proto */
2669static PyObject *__pyx_pf_5rados_5Rados_28get_instance_id(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2670static PyObject *__pyx_pf_5rados_5Rados_30get_cluster_stats(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2671static PyObject *__pyx_pf_5rados_5Rados_32pool_exists(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name); /* proto */
2672static PyObject *__pyx_pf_5rados_5Rados_34pool_lookup(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name); /* proto */
2673static PyObject *__pyx_pf_5rados_5Rados_36pool_reverse_lookup(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id); /* proto */
2674static PyObject *__pyx_pf_5rados_5Rados_38create_pool(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name, PyObject *__pyx_v_crush_rule); /* proto */
2675static PyObject *__pyx_pf_5rados_5Rados_40get_pool_base_tier(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id); /* proto */
2676static PyObject *__pyx_pf_5rados_5Rados_42delete_pool(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name); /* proto */
2677static PyObject *__pyx_pf_5rados_5Rados_44get_inconsistent_pgs(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id); /* proto */
2678static PyObject *__pyx_pf_5rados_5Rados_46list_pools(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2679static PyObject *__pyx_pf_5rados_5Rados_48get_fsid(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2680static PyObject *__pyx_pf_5rados_5Rados_50open_ioctx(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_ioctx_name); /* proto */
2681static PyObject *__pyx_pf_5rados_5Rados_52open_ioctx2(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id); /* proto */
2682static PyObject *__pyx_pf_5rados_5Rados_54mon_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout, PyObject *__pyx_v_target); /* proto */
2683static PyObject *__pyx_pf_5rados_5Rados_56osd_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_osdid, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout); /* proto */
2684static PyObject *__pyx_pf_5rados_5Rados_58mgr_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout); /* proto */
2685static PyObject *__pyx_pf_5rados_5Rados_60pg_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pgid, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout); /* proto */
2686static PyObject *__pyx_pf_5rados_5Rados_62wait_for_latest_osdmap(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2687static PyObject *__pyx_pf_5rados_5Rados_64blacklist_add(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_client_address, PyObject *__pyx_v_expire_seconds); /* proto */
2688static PyObject *__pyx_pf_5rados_5Rados_66monitor_log(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_level, PyObject *__pyx_v_callback, PyObject *__pyx_v_arg); /* proto */
2689static PyObject *__pyx_pf_5rados_5Rados_68monitor_log2(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_level, PyObject *__pyx_v_callback, PyObject *__pyx_v_arg); /* proto */
2690static PyObject *__pyx_pf_5rados_5Rados_70service_daemon_register(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_service, PyObject *__pyx_v_daemon, PyObject *__pyx_v_metadata); /* proto */
2691static PyObject *__pyx_pf_5rados_5Rados_72service_daemon_update(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_status); /* proto */
2692static PyObject *__pyx_pf_5rados_5Rados_5state___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2693static int __pyx_pf_5rados_5Rados_5state_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2694static int __pyx_pf_5rados_5Rados_5state_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2695static PyObject *__pyx_pf_5rados_5Rados_16monitor_callback___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2696static int __pyx_pf_5rados_5Rados_16monitor_callback_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2697static int __pyx_pf_5rados_5Rados_16monitor_callback_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2698static PyObject *__pyx_pf_5rados_5Rados_17monitor_callback2___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2699static int __pyx_pf_5rados_5Rados_17monitor_callback2_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2700static int __pyx_pf_5rados_5Rados_17monitor_callback2_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2701static PyObject *__pyx_pf_5rados_5Rados_11parsed_args___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2702static int __pyx_pf_5rados_5Rados_11parsed_args_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2703static int __pyx_pf_5rados_5Rados_11parsed_args_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2704static PyObject *__pyx_pf_5rados_5Rados_13conf_defaults___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2705static int __pyx_pf_5rados_5Rados_13conf_defaults_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2706static int __pyx_pf_5rados_5Rados_13conf_defaults_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2707static PyObject *__pyx_pf_5rados_5Rados_8conffile___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2708static int __pyx_pf_5rados_5Rados_8conffile_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2709static int __pyx_pf_5rados_5Rados_8conffile_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2710static PyObject *__pyx_pf_5rados_5Rados_8rados_id___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2711static int __pyx_pf_5rados_5Rados_8rados_id_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2712static int __pyx_pf_5rados_5Rados_8rados_id_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self); /* proto */
2713static int __pyx_pf_5rados_12OmapIterator___cinit__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx); /* proto */
2714static PyObject *__pyx_pf_5rados_12OmapIterator_2__iter__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self); /* proto */
2715static PyObject *__pyx_pf_5rados_12OmapIterator_4__next__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self); /* proto */
2716static void __pyx_pf_5rados_12OmapIterator_6__dealloc__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self); /* proto */
2717static PyObject *__pyx_pf_5rados_12OmapIterator_5ioctx___get__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self); /* proto */
2718static int __pyx_pf_5rados_12OmapIterator_5ioctx_2__set__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2719static int __pyx_pf_5rados_12OmapIterator_5ioctx_4__del__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self); /* proto */
2720static int __pyx_pf_5rados_14ObjectIterator___cinit__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx); /* proto */
2721static PyObject *__pyx_pf_5rados_14ObjectIterator_2__iter__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self); /* proto */
2722static PyObject *__pyx_pf_5rados_14ObjectIterator_4__next__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self); /* proto */
2723static void __pyx_pf_5rados_14ObjectIterator_6__dealloc__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self); /* proto */
2724static PyObject *__pyx_pf_5rados_14ObjectIterator_5ioctx___get__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self); /* proto */
2725static int __pyx_pf_5rados_14ObjectIterator_5ioctx_2__set__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2726static int __pyx_pf_5rados_14ObjectIterator_5ioctx_4__del__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self); /* proto */
2727static int __pyx_pf_5rados_13XattrIterator___cinit__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx, PyObject *__pyx_v_oid); /* proto */
2728static PyObject *__pyx_pf_5rados_13XattrIterator_2__iter__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self); /* proto */
2729static PyObject *__pyx_pf_5rados_13XattrIterator_4__next__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self); /* proto */
2730static void __pyx_pf_5rados_13XattrIterator_6__dealloc__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self); /* proto */
2731static PyObject *__pyx_pf_5rados_13XattrIterator_5ioctx___get__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self); /* proto */
2732static int __pyx_pf_5rados_13XattrIterator_5ioctx_2__set__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2733static int __pyx_pf_5rados_13XattrIterator_5ioctx_4__del__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self); /* proto */
2734static PyObject *__pyx_pf_5rados_13XattrIterator_3oid___get__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self); /* proto */
2735static int __pyx_pf_5rados_13XattrIterator_3oid_2__set__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2736static int __pyx_pf_5rados_13XattrIterator_3oid_4__del__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self); /* proto */
2737static int __pyx_pf_5rados_12SnapIterator___cinit__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx); /* proto */
2738static PyObject *__pyx_pf_5rados_12SnapIterator_2__iter__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self); /* proto */
2739static PyObject *__pyx_pf_5rados_12SnapIterator_4__next__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self); /* proto */
2740static PyObject *__pyx_pf_5rados_12SnapIterator_5ioctx___get__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self); /* proto */
2741static int __pyx_pf_5rados_12SnapIterator_5ioctx_2__set__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2742static int __pyx_pf_5rados_12SnapIterator_5ioctx_4__del__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self); /* proto */
2743static int __pyx_pf_5rados_4Snap___cinit__(struct __pyx_obj_5rados_Snap *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx, PyObject *__pyx_v_name, rados_snap_t __pyx_v_snap_id); /* proto */
2744static PyObject *__pyx_pf_5rados_4Snap_2__str__(struct __pyx_obj_5rados_Snap *__pyx_v_self); /* proto */
2745static PyObject *__pyx_pf_5rados_4Snap_4get_timestamp(struct __pyx_obj_5rados_Snap *__pyx_v_self); /* proto */
2746static PyObject *__pyx_pf_5rados_4Snap_5ioctx___get__(struct __pyx_obj_5rados_Snap *__pyx_v_self); /* proto */
2747static int __pyx_pf_5rados_4Snap_5ioctx_2__set__(struct __pyx_obj_5rados_Snap *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2748static int __pyx_pf_5rados_4Snap_5ioctx_4__del__(struct __pyx_obj_5rados_Snap *__pyx_v_self); /* proto */
2749static PyObject *__pyx_pf_5rados_4Snap_4name___get__(struct __pyx_obj_5rados_Snap *__pyx_v_self); /* proto */
2750static int __pyx_pf_5rados_4Snap_4name_2__set__(struct __pyx_obj_5rados_Snap *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2751static int __pyx_pf_5rados_4Snap_4name_4__del__(struct __pyx_obj_5rados_Snap *__pyx_v_self); /* proto */
2752static PyObject *__pyx_pf_5rados_4Snap_7snap_id___get__(struct __pyx_obj_5rados_Snap *__pyx_v_self); /* proto */
2753static int __pyx_pf_5rados_4Snap_7snap_id_2__set__(struct __pyx_obj_5rados_Snap *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2754static int __pyx_pf_5rados_10Completion___cinit__(struct __pyx_obj_5rados_Completion *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe); /* proto */
2755static PyObject *__pyx_pf_5rados_10Completion_2is_safe(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2756static PyObject *__pyx_pf_5rados_10Completion_4is_complete(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2757static PyObject *__pyx_pf_5rados_10Completion_6wait_for_safe(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2758static PyObject *__pyx_pf_5rados_10Completion_8wait_for_complete(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2759static PyObject *__pyx_pf_5rados_10Completion_10wait_for_safe_and_cb(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2760static PyObject *__pyx_pf_5rados_10Completion_12wait_for_complete_and_cb(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2761static PyObject *__pyx_pf_5rados_10Completion_14get_return_value(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2762static void __pyx_pf_5rados_10Completion_16__dealloc__(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2763static PyObject *__pyx_pf_5rados_10Completion_18_complete(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2764static PyObject *__pyx_pf_5rados_10Completion_20_safe(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2765static PyObject *__pyx_pf_5rados_10Completion_22_cleanup(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2766static PyObject *__pyx_pf_5rados_10Completion_5ioctx___get__(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2767static int __pyx_pf_5rados_10Completion_5ioctx_2__set__(struct __pyx_obj_5rados_Completion *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2768static int __pyx_pf_5rados_10Completion_5ioctx_4__del__(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2769static PyObject *__pyx_pf_5rados_10Completion_10oncomplete___get__(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2770static int __pyx_pf_5rados_10Completion_10oncomplete_2__set__(struct __pyx_obj_5rados_Completion *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2771static int __pyx_pf_5rados_10Completion_10oncomplete_4__del__(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2772static PyObject *__pyx_pf_5rados_10Completion_6onsafe___get__(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2773static int __pyx_pf_5rados_10Completion_6onsafe_2__set__(struct __pyx_obj_5rados_Completion *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2774static int __pyx_pf_5rados_10Completion_6onsafe_4__del__(struct __pyx_obj_5rados_Completion *__pyx_v_self); /* proto */
2775static PyObject *__pyx_pf_5rados_5OpCtx___enter__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2776static PyObject *__pyx_pf_5rados_5OpCtx_2__exit__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_msg, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback); /* proto */
2777static PyObject *__pyx_pf_5rados_7WriteOp_create(struct __pyx_obj_5rados_WriteOp *__pyx_v_self); /* proto */
2778static PyObject *__pyx_pf_5rados_7WriteOp_2release(struct __pyx_obj_5rados_WriteOp *__pyx_v_self); /* proto */
2779static PyObject *__pyx_pf_5rados_7WriteOp_4new(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_exclusive); /* proto */
2780static PyObject *__pyx_pf_5rados_7WriteOp_6remove(struct __pyx_obj_5rados_WriteOp *__pyx_v_self); /* proto */
2781static PyObject *__pyx_pf_5rados_7WriteOp_8set_flags(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
2782static PyObject *__pyx_pf_5rados_7WriteOp_10append(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_to_write); /* proto */
2783static PyObject *__pyx_pf_5rados_7WriteOp_12write_full(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_to_write); /* proto */
2784static PyObject *__pyx_pf_5rados_7WriteOp_14write(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_to_write, PyObject *__pyx_v_offset); /* proto */
2785static PyObject *__pyx_pf_5rados_7WriteOp_16assert_version(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_version); /* proto */
2786static PyObject *__pyx_pf_5rados_7WriteOp_18zero(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_offset, PyObject *__pyx_v_length); /* proto */
2787static PyObject *__pyx_pf_5rados_7WriteOp_20truncate(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_offset); /* proto */
2788static PyObject *__pyx_pf_5rados_6ReadOp_create(struct __pyx_obj_5rados_ReadOp *__pyx_v_self); /* proto */
2789static PyObject *__pyx_pf_5rados_6ReadOp_2release(struct __pyx_obj_5rados_ReadOp *__pyx_v_self); /* proto */
2790static PyObject *__pyx_pf_5rados_6ReadOp_4set_flags(struct __pyx_obj_5rados_ReadOp *__pyx_v_self, PyObject *__pyx_v_flags); /* proto */
2791static int __pyx_pf_5rados_5Ioctx___init__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
2792static PyObject *__pyx_pf_5rados_5Ioctx_2__enter__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2793static PyObject *__pyx_pf_5rados_5Ioctx_4__exit__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type_, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_value, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback); /* proto */
2794static void __pyx_pf_5rados_5Ioctx_6__dealloc__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2795static PyObject *__pyx_pf_5rados_5Ioctx_8__track_completion(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_completion_obj); /* proto */
2796static PyObject *__pyx_pf_5rados_5Ioctx_10__get_completion(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe); /* proto */
2797static PyObject *__pyx_pf_5rados_5Ioctx_8aio_stat_oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /* proto */
2798static PyObject *__pyx_pf_5rados_5Ioctx_12aio_stat(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_oncomplete); /* proto */
2799static PyObject *__pyx_pf_5rados_5Ioctx_14aio_write(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_to_write, PyObject *__pyx_v_offset, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe); /* proto */
2800static PyObject *__pyx_pf_5rados_5Ioctx_16aio_write_full(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_to_write, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe); /* proto */
2801static PyObject *__pyx_pf_5rados_5Ioctx_18aio_append(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_to_append, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe); /* proto */
2802static PyObject *__pyx_pf_5rados_5Ioctx_20aio_flush(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2803static PyObject *__pyx_pf_5rados_5Ioctx_8aio_read_oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /* proto */
2804static PyObject *__pyx_pf_5rados_5Ioctx_22aio_read(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_length, PyObject *__pyx_v_offset, PyObject *__pyx_v_oncomplete); /* proto */
2805static PyObject *__pyx_pf_5rados_5Ioctx_11aio_execute_oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /* proto */
2806static PyObject *__pyx_pf_5rados_5Ioctx_11aio_execute_2onsafe_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /* proto */
2807static PyObject *__pyx_pf_5rados_5Ioctx_24aio_execute(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_cls, PyObject *__pyx_v_method, PyObject *__pyx_v_data, PyObject *__pyx_v_length, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe); /* proto */
2808static PyObject *__pyx_pf_5rados_5Ioctx_26aio_remove(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe); /* proto */
2809static PyObject *__pyx_pf_5rados_5Ioctx_28require_ioctx_open(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2810static PyObject *__pyx_pf_5rados_5Ioctx_30set_locator_key(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_loc_key); /* proto */
2811static PyObject *__pyx_pf_5rados_5Ioctx_32get_locator_key(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2812static PyObject *__pyx_pf_5rados_5Ioctx_34set_read(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_id); /* proto */
2813static PyObject *__pyx_pf_5rados_5Ioctx_36set_namespace(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_nspace); /* proto */
2814static PyObject *__pyx_pf_5rados_5Ioctx_38get_namespace(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2815static PyObject *__pyx_pf_5rados_5Ioctx_40close(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2816static PyObject *__pyx_pf_5rados_5Ioctx_42write(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_data, PyObject *__pyx_v_offset); /* proto */
2817static PyObject *__pyx_pf_5rados_5Ioctx_44write_full(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_data); /* proto */
2818static PyObject *__pyx_pf_5rados_5Ioctx_46append(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_data); /* proto */
2819static PyObject *__pyx_pf_5rados_5Ioctx_48read(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_length, PyObject *__pyx_v_offset); /* proto */
2820static PyObject *__pyx_pf_5rados_5Ioctx_50execute(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_cls, PyObject *__pyx_v_method, PyObject *__pyx_v_data, PyObject *__pyx_v_length); /* proto */
2821static PyObject *__pyx_pf_5rados_5Ioctx_52get_stats(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2822static PyObject *__pyx_pf_5rados_5Ioctx_54remove_object(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
2823static PyObject *__pyx_pf_5rados_5Ioctx_56trunc(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_size); /* proto */
2824static PyObject *__pyx_pf_5rados_5Ioctx_58stat(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
2825static PyObject *__pyx_pf_5rados_5Ioctx_60get_xattr(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_xattr_name); /* proto */
2826static PyObject *__pyx_pf_5rados_5Ioctx_62get_xattrs(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oid); /* proto */
2827static PyObject *__pyx_pf_5rados_5Ioctx_64set_xattr(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_xattr_name, PyObject *__pyx_v_xattr_value); /* proto */
2828static PyObject *__pyx_pf_5rados_5Ioctx_66rm_xattr(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_xattr_name); /* proto */
2829static PyObject *__pyx_pf_5rados_5Ioctx_68notify(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_obj, PyObject *__pyx_v_msg, PyObject *__pyx_v_timeout_ms); /* proto */
2830static PyObject *__pyx_pf_5rados_5Ioctx_70list_objects(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2831static PyObject *__pyx_pf_5rados_5Ioctx_72list_snaps(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2832static PyObject *__pyx_pf_5rados_5Ioctx_74create_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_name); /* proto */
2833static PyObject *__pyx_pf_5rados_5Ioctx_76remove_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_name); /* proto */
2834static PyObject *__pyx_pf_5rados_5Ioctx_78lookup_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_name); /* proto */
2835static PyObject *__pyx_pf_5rados_5Ioctx_80snap_rollback(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oid, PyObject *__pyx_v_snap_name); /* proto */
2836static PyObject *__pyx_pf_5rados_5Ioctx_82create_self_managed_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2837static PyObject *__pyx_pf_5rados_5Ioctx_84remove_self_managed_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_id); /* proto */
2838static PyObject *__pyx_pf_5rados_5Ioctx_86set_self_managed_snap_write(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snaps); /* proto */
2839static PyObject *__pyx_pf_5rados_5Ioctx_88rollback_self_managed_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oid, PyObject *__pyx_v_snap_id); /* proto */
2840static PyObject *__pyx_pf_5rados_5Ioctx_90get_last_version(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2841static PyObject *__pyx_pf_5rados_5Ioctx_92create_write_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2842static PyObject *__pyx_pf_5rados_5Ioctx_94create_read_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2843static PyObject *__pyx_pf_5rados_5Ioctx_96release_write_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op); /* proto */
2844static PyObject *__pyx_pf_5rados_5Ioctx_98release_read_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op); /* proto */
2845static PyObject *__pyx_pf_5rados_5Ioctx_100set_omap(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_keys, PyObject *__pyx_v_values); /* proto */
2846static PyObject *__pyx_pf_5rados_5Ioctx_102operate_write_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_mtime, PyObject *__pyx_v_flags); /* proto */
2847static PyObject *__pyx_pf_5rados_5Ioctx_104operate_aio_write_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe, PyObject *__pyx_v_mtime, PyObject *__pyx_v_flags); /* proto */
2848static PyObject *__pyx_pf_5rados_5Ioctx_106operate_read_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_flag); /* proto */
2849static PyObject *__pyx_pf_5rados_5Ioctx_108operate_aio_read_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe, PyObject *__pyx_v_flag); /* proto */
2850static PyObject *__pyx_pf_5rados_5Ioctx_110get_omap_vals(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_start_after, PyObject *__pyx_v_filter_prefix, PyObject *__pyx_v_max_return); /* proto */
2851static PyObject *__pyx_pf_5rados_5Ioctx_112get_omap_keys(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_start_after, PyObject *__pyx_v_max_return); /* proto */
2852static PyObject *__pyx_pf_5rados_5Ioctx_114get_omap_vals_by_keys(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_keys); /* proto */
2853static PyObject *__pyx_pf_5rados_5Ioctx_116remove_omap_keys(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_keys); /* proto */
2854static PyObject *__pyx_pf_5rados_5Ioctx_118clear_omap(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op); /* proto */
2855static PyObject *__pyx_pf_5rados_5Ioctx_120lock_exclusive(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_name, PyObject *__pyx_v_cookie, PyObject *__pyx_v_desc, PyObject *__pyx_v_duration, PyObject *__pyx_v_flags); /* proto */
2856static PyObject *__pyx_pf_5rados_5Ioctx_122lock_shared(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_name, PyObject *__pyx_v_cookie, PyObject *__pyx_v_tag, PyObject *__pyx_v_desc, PyObject *__pyx_v_duration, PyObject *__pyx_v_flags); /* proto */
2857static PyObject *__pyx_pf_5rados_5Ioctx_124unlock(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_name, PyObject *__pyx_v_cookie); /* proto */
2858static PyObject *__pyx_pf_5rados_5Ioctx_126set_osdmap_full_try(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2859static PyObject *__pyx_pf_5rados_5Ioctx_128unset_osdmap_full_try(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2860static PyObject *__pyx_pf_5rados_5Ioctx_130application_enable(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name, PyObject *__pyx_v_force); /* proto */
2861static PyObject *__pyx_pf_5rados_5Ioctx_132application_list(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2862static PyObject *__pyx_pf_5rados_5Ioctx_134application_metadata_set(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */
2863static PyObject *__pyx_pf_5rados_5Ioctx_136application_metadata_remove(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name, PyObject *__pyx_v_key); /* proto */
2864static PyObject *__pyx_pf_5rados_5Ioctx_138application_metadata_list(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name); /* proto */
2865static PyObject *__pyx_pf_5rados_5Ioctx_140alignment(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2866static PyObject *__pyx_pf_5rados_5Ioctx_4name___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2867static int __pyx_pf_5rados_5Ioctx_4name_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2868static int __pyx_pf_5rados_5Ioctx_4name_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2869static PyObject *__pyx_pf_5rados_5Ioctx_5state___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2870static int __pyx_pf_5rados_5Ioctx_5state_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2871static int __pyx_pf_5rados_5Ioctx_5state_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2872static PyObject *__pyx_pf_5rados_5Ioctx_11locator_key___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2873static int __pyx_pf_5rados_5Ioctx_11locator_key_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2874static int __pyx_pf_5rados_5Ioctx_11locator_key_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2875static PyObject *__pyx_pf_5rados_5Ioctx_6nspace___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2876static int __pyx_pf_5rados_5Ioctx_6nspace_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2877static int __pyx_pf_5rados_5Ioctx_6nspace_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2878static PyObject *__pyx_pf_5rados_5Ioctx_16safe_completions___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2879static int __pyx_pf_5rados_5Ioctx_16safe_completions_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2880static int __pyx_pf_5rados_5Ioctx_16safe_completions_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2881static PyObject *__pyx_pf_5rados_5Ioctx_20complete_completions___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2882static int __pyx_pf_5rados_5Ioctx_20complete_completions_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2883static int __pyx_pf_5rados_5Ioctx_20complete_completions_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2884static PyObject *__pyx_pf_5rados_5Ioctx_4lock___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2885static int __pyx_pf_5rados_5Ioctx_4lock_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
2886static int __pyx_pf_5rados_5Ioctx_4lock_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self); /* proto */
2887static PyObject *__pyx_pf_5rados_18set_object_locator_retfunc(PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
2888static PyObject *__pyx_pf_5rados_12set_object_locator(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_func); /* proto */
2889static PyObject *__pyx_pf_5rados_20set_object_namespace_retfunc(PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */
2890static PyObject *__pyx_pf_5rados_14set_object_namespace(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_func); /* proto */
2891static PyObject *__pyx_pf_5rados_6Object___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_ioctx, PyObject *__pyx_v_key, PyObject *__pyx_v_locator_key, PyObject *__pyx_v_nspace); /* proto */
2892static PyObject *__pyx_pf_5rados_6Object_2__str__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2893static PyObject *__pyx_pf_5rados_6Object_4require_object_exists(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2894static PyObject *__pyx_pf_5rados_6Object_6read(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_length); /* proto */
2895static PyObject *__pyx_pf_5rados_6Object_8write(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_string_to_write); /* proto */
2896static PyObject *__pyx_pf_5rados_6Object_10remove(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2897static PyObject *__pyx_pf_5rados_6Object_12stat(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2898static PyObject *__pyx_pf_5rados_6Object_14seek(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_position); /* proto */
2899static PyObject *__pyx_pf_5rados_6Object_16get_xattr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xattr_name); /* proto */
2900static PyObject *__pyx_pf_5rados_6Object_18get_xattrs(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
2901static PyObject *__pyx_pf_5rados_6Object_20set_xattr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xattr_name, PyObject *__pyx_v_xattr_value); /* proto */
2902static PyObject *__pyx_pf_5rados_6Object_22rm_xattr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xattr_name); /* proto */
2903static PyObject *__pyx_pf_5rados_10MonitorLog___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_cluster, PyObject *__pyx_v_level, PyObject *__pyx_v_callback, PyObject *__pyx_v_arg); /* proto */
2904static PyObject *__pyx_tp_new_5rados_Rados(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2905static PyObject *__pyx_tp_new_5rados_Ioctx(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2906static PyObject *__pyx_tp_new_5rados_OmapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2907static PyObject *__pyx_tp_new_5rados_ObjectIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2908static PyObject *__pyx_tp_new_5rados_XattrIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2909static PyObject *__pyx_tp_new_5rados_SnapIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2910static PyObject *__pyx_tp_new_5rados_Snap(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2911static PyObject *__pyx_tp_new_5rados_Completion(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2912static PyObject *__pyx_tp_new_5rados_WriteOp(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2913static PyObject *__pyx_tp_new_5rados_ReadOp(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2914static PyObject *__pyx_tp_new_5rados___pyx_scope_struct__requires(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2915static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_1_check_type(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2916static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2917static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_3_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2918static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_4_wrapper(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2919static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_5_validate_func(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2920static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_6_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2921static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_7_flatten_dict(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2922static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_8_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2923static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_9_aio_stat(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2924static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_10_aio_read(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2925static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_11_aio_execute(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2926static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_12_set_object_locator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2927static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_13_set_object_namespace(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
2928static PyObject *__pyx_int_0;
2929static PyObject *__pyx_int_3;
2930static PyObject *__pyx_int_5000;
2931static PyObject *__pyx_int_8192;
2932static PyObject *__pyx_int_1048576;
2933static PyObject *__pyx_int_4294967296;
2934static PyObject *__pyx_int_18446744073709551615;
2935static PyObject *__pyx_int_neg_1;
2936static PyObject *__pyx_k__48;
2937static PyObject *__pyx_k__49;
2938static PyObject *__pyx_k__61;
2939static PyObject *__pyx_k__62;
2940static PyObject *__pyx_k__63;
2941static PyObject *__pyx_k__64;
2942static PyObject *__pyx_tuple_;
2943static PyObject *__pyx_tuple__3;
2944static PyObject *__pyx_tuple__5;
2945static PyObject *__pyx_tuple__7;
2946static PyObject *__pyx_slice__68;
2947static PyObject *__pyx_tuple__11;
2948static PyObject *__pyx_tuple__12;
2949static PyObject *__pyx_tuple__13;
2950static PyObject *__pyx_tuple__14;
2951static PyObject *__pyx_tuple__15;
2952static PyObject *__pyx_tuple__16;
2953static PyObject *__pyx_tuple__17;
2954static PyObject *__pyx_tuple__18;
2955static PyObject *__pyx_tuple__19;
2956static PyObject *__pyx_tuple__20;
2957static PyObject *__pyx_tuple__21;
2958static PyObject *__pyx_tuple__22;
2959static PyObject *__pyx_tuple__23;
2960static PyObject *__pyx_tuple__24;
2961static PyObject *__pyx_tuple__25;
2962static PyObject *__pyx_tuple__26;
2963static PyObject *__pyx_tuple__27;
2964static PyObject *__pyx_tuple__28;
2965static PyObject *__pyx_tuple__29;
2966static PyObject *__pyx_tuple__30;
2967static PyObject *__pyx_tuple__31;
2968static PyObject *__pyx_tuple__32;
2969static PyObject *__pyx_tuple__33;
2970static PyObject *__pyx_tuple__34;
2971static PyObject *__pyx_tuple__35;
2972static PyObject *__pyx_tuple__36;
2973static PyObject *__pyx_tuple__37;
2974static PyObject *__pyx_tuple__38;
2975static PyObject *__pyx_tuple__39;
2976static PyObject *__pyx_tuple__40;
2977static PyObject *__pyx_tuple__41;
2978static PyObject *__pyx_tuple__42;
2979static PyObject *__pyx_tuple__43;
2980static PyObject *__pyx_tuple__44;
2981static PyObject *__pyx_tuple__45;
2982static PyObject *__pyx_tuple__46;
2983static PyObject *__pyx_tuple__47;
2984static PyObject *__pyx_tuple__50;
2985static PyObject *__pyx_tuple__51;
2986static PyObject *__pyx_tuple__52;
2987static PyObject *__pyx_tuple__54;
2988static PyObject *__pyx_tuple__56;
2989static PyObject *__pyx_tuple__58;
2990static PyObject *__pyx_tuple__60;
2991static PyObject *__pyx_tuple__65;
2992static PyObject *__pyx_tuple__66;
2993static PyObject *__pyx_tuple__67;
2994static PyObject *__pyx_tuple__69;
2995static PyObject *__pyx_tuple__71;
2996static PyObject *__pyx_tuple__72;
2997static PyObject *__pyx_tuple__74;
2998static PyObject *__pyx_tuple__76;
2999static PyObject *__pyx_tuple__77;
3000static PyObject *__pyx_tuple__79;
3001static PyObject *__pyx_tuple__81;
3002static PyObject *__pyx_tuple__83;
3003static PyObject *__pyx_tuple__84;
3004static PyObject *__pyx_tuple__86;
3005static PyObject *__pyx_tuple__87;
3006static PyObject *__pyx_tuple__89;
3007static PyObject *__pyx_tuple__90;
3008static PyObject *__pyx_tuple__92;
3009static PyObject *__pyx_tuple__93;
3010static PyObject *__pyx_tuple__95;
3011static PyObject *__pyx_tuple__96;
3012static PyObject *__pyx_tuple__98;
3013static PyObject *__pyx_tuple__99;
3014static PyObject *__pyx_codeobj__2;
3015static PyObject *__pyx_codeobj__4;
3016static PyObject *__pyx_codeobj__6;
3017static PyObject *__pyx_codeobj__8;
3018static PyObject *__pyx_tuple__101;
3019static PyObject *__pyx_tuple__102;
3020static PyObject *__pyx_tuple__104;
3021static PyObject *__pyx_tuple__105;
3022static PyObject *__pyx_tuple__107;
3023static PyObject *__pyx_tuple__108;
3024static PyObject *__pyx_tuple__110;
3025static PyObject *__pyx_tuple__111;
3026static PyObject *__pyx_tuple__113;
3027static PyObject *__pyx_tuple__114;
3028static PyObject *__pyx_tuple__116;
3029static PyObject *__pyx_tuple__117;
3030static PyObject *__pyx_tuple__119;
3031static PyObject *__pyx_tuple__120;
3032static PyObject *__pyx_tuple__122;
3033static PyObject *__pyx_tuple__123;
3034static PyObject *__pyx_tuple__125;
3035static PyObject *__pyx_tuple__126;
3036static PyObject *__pyx_tuple__128;
3037static PyObject *__pyx_tuple__129;
3038static PyObject *__pyx_tuple__131;
3039static PyObject *__pyx_tuple__132;
3040static PyObject *__pyx_tuple__134;
3041static PyObject *__pyx_tuple__136;
3042static PyObject *__pyx_tuple__138;
3043static PyObject *__pyx_tuple__140;
3044static PyObject *__pyx_tuple__142;
3045static PyObject *__pyx_tuple__144;
3046static PyObject *__pyx_tuple__146;
3047static PyObject *__pyx_tuple__148;
3048static PyObject *__pyx_tuple__150;
3049static PyObject *__pyx_tuple__152;
3050static PyObject *__pyx_tuple__154;
3051static PyObject *__pyx_tuple__156;
3052static PyObject *__pyx_tuple__158;
3053static PyObject *__pyx_tuple__159;
3054static PyObject *__pyx_tuple__161;
3055static PyObject *__pyx_tuple__163;
3056static PyObject *__pyx_tuple__165;
3057static PyObject *__pyx_tuple__166;
3058static PyObject *__pyx_tuple__168;
3059static PyObject *__pyx_tuple__170;
3060static PyObject *__pyx_tuple__172;
3061static PyObject *__pyx_tuple__174;
3062static PyObject *__pyx_tuple__176;
3063static PyObject *__pyx_tuple__178;
3064static PyObject *__pyx_tuple__180;
3065static PyObject *__pyx_tuple__182;
3066static PyObject *__pyx_codeobj__53;
3067static PyObject *__pyx_codeobj__55;
3068static PyObject *__pyx_codeobj__57;
3069static PyObject *__pyx_codeobj__59;
3070static PyObject *__pyx_codeobj__70;
3071static PyObject *__pyx_codeobj__73;
3072static PyObject *__pyx_codeobj__75;
3073static PyObject *__pyx_codeobj__78;
3074static PyObject *__pyx_codeobj__80;
3075static PyObject *__pyx_codeobj__82;
3076static PyObject *__pyx_codeobj__85;
3077static PyObject *__pyx_codeobj__88;
3078static PyObject *__pyx_codeobj__91;
3079static PyObject *__pyx_codeobj__94;
3080static PyObject *__pyx_codeobj__97;
3081static PyObject *__pyx_codeobj__100;
3082static PyObject *__pyx_codeobj__103;
3083static PyObject *__pyx_codeobj__106;
3084static PyObject *__pyx_codeobj__109;
3085static PyObject *__pyx_codeobj__112;
3086static PyObject *__pyx_codeobj__115;
3087static PyObject *__pyx_codeobj__118;
3088static PyObject *__pyx_codeobj__121;
3089static PyObject *__pyx_codeobj__124;
3090static PyObject *__pyx_codeobj__127;
3091static PyObject *__pyx_codeobj__130;
3092static PyObject *__pyx_codeobj__133;
3093static PyObject *__pyx_codeobj__135;
3094static PyObject *__pyx_codeobj__137;
3095static PyObject *__pyx_codeobj__139;
3096static PyObject *__pyx_codeobj__141;
3097static PyObject *__pyx_codeobj__143;
3098static PyObject *__pyx_codeobj__145;
3099static PyObject *__pyx_codeobj__147;
3100static PyObject *__pyx_codeobj__149;
3101static PyObject *__pyx_codeobj__151;
3102static PyObject *__pyx_codeobj__153;
3103static PyObject *__pyx_codeobj__155;
3104static PyObject *__pyx_codeobj__157;
3105static PyObject *__pyx_codeobj__160;
3106static PyObject *__pyx_codeobj__162;
3107static PyObject *__pyx_codeobj__164;
3108static PyObject *__pyx_codeobj__167;
3109static PyObject *__pyx_codeobj__169;
3110static PyObject *__pyx_codeobj__171;
3111static PyObject *__pyx_codeobj__173;
3112static PyObject *__pyx_codeobj__175;
3113static PyObject *__pyx_codeobj__177;
3114static PyObject *__pyx_codeobj__179;
3115static PyObject *__pyx_codeobj__181;
3116static PyObject *__pyx_codeobj__183;
3117
3118/* "rados.pyx":340
3119 * class Error(Exception):
3120 * """ `Error` class, derived from `Exception` """
3121 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
3122 * super(Exception, self).__init__(message)
3123 * self.errno = errno
3124 */
3125
3126/* Python wrapper */
3127static PyObject *__pyx_pw_5rados_5Error_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3128static char __pyx_doc_5rados_5Error___init__[] = "Error.__init__(self, message, errno=None)";
3129static PyMethodDef __pyx_mdef_5rados_5Error_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_5Error_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Error___init__};
3130static PyObject *__pyx_pw_5rados_5Error_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3131 PyObject *__pyx_v_self = 0;
3132 PyObject *__pyx_v_message = 0;
3133 PyObject *__pyx_v_errno = 0;
3134 int __pyx_lineno = 0;
3135 const char *__pyx_filename = NULL((void*)0);
3136 int __pyx_clineno = 0;
3137 PyObject *__pyx_r = 0;
3138 __Pyx_RefNannyDeclarations
3139 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
3140 {
3141 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
3142 PyObject* values[3] = {0,0,0};
3143 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
3144 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
3145 Py_ssize_t kw_args;
3146 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
3147 switch (pos_args) {
3148 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3149 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3150 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3151 case 0: break;
3152 default: goto __pyx_L5_argtuple_error;
3153 }
3154 kw_args = PyDict_Size(__pyx_kwds);
3155 switch (pos_args) {
3156 case 0:
3157 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
3158 else goto __pyx_L5_argtuple_error;
3159 case 1:
3160 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
3161 else {
3162 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__3162; goto __pyx_L3_error;}
3163 }
3164 case 2:
3165 if (kw_args > 0) {
3166 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
3167 if (value) { values[2] = value; kw_args--; }
3168 }
3169 }
3170 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
3171 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__3171; goto __pyx_L3_error;}
3172 }
3173 } else {
3174 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
3175 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3176 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3177 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3178 break;
3179 default: goto __pyx_L5_argtuple_error;
3180 }
3181 }
3182 __pyx_v_self = values[0];
3183 __pyx_v_message = values[1];
3184 __pyx_v_errno = values[2];
3185 }
3186 goto __pyx_L4_argument_unpacking_done;
3187 __pyx_L5_argtuple_error:;
3188 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__3188; goto __pyx_L3_error;}
3189 __pyx_L3_error:;
3190 __Pyx_AddTraceback("rados.Error.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3191 __Pyx_RefNannyFinishContext();
3192 return NULL((void*)0);
3193 __pyx_L4_argument_unpacking_done:;
3194 __pyx_r = __pyx_pf_5rados_5Error___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
3195
3196 /* function exit code */
3197 __Pyx_RefNannyFinishContext();
3198 return __pyx_r;
3199}
3200
3201static PyObject *__pyx_pf_5rados_5Error___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
3202 PyObject *__pyx_r = NULL((void*)0);
3203 __Pyx_RefNannyDeclarations
3204 PyObject *__pyx_t_1 = NULL((void*)0);
3205 PyObject *__pyx_t_2 = NULL((void*)0);
3206 PyObject *__pyx_t_3 = NULL((void*)0);
3207 PyObject *__pyx_t_4 = NULL((void*)0);
3208 int __pyx_lineno = 0;
3209 const char *__pyx_filename = NULL((void*)0);
3210 int __pyx_clineno = 0;
3211 __Pyx_RefNannySetupContext("__init__", 0);
3212
3213 /* "rados.pyx":341
3214 * """ `Error` class, derived from `Exception` """
3215 * def __init__(self, message, errno=None):
3216 * super(Exception, self).__init__(message) # <<<<<<<<<<<<<<
3217 * self.errno = errno
3218 *
3219 */
3220 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__3220; goto __pyx_L1_error;}
3221 __Pyx_GOTREF(__pyx_t_2);
3222 __Pyx_INCREF(__pyx_builtin_Exception)( ((PyObject*)(__pyx_builtin_Exception))->ob_refcnt++);
3223 __Pyx_GIVEREF(__pyx_builtin_Exception);
3224 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_Exception)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_builtin_Exception
)
;
3225 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
3226 __Pyx_GIVEREF(__pyx_v_self);
3227 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_self
)
;
3228 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__3228; goto __pyx_L1_error;}
3229 __Pyx_GOTREF(__pyx_t_3);
3230 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
3231 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__3231; goto __pyx_L1_error;}
3232 __Pyx_GOTREF(__pyx_t_2);
3233 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
3234 __pyx_t_3 = NULL((void*)0);
3235 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
3236 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
3237 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
3238 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
3239 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
3240 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
3241 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
3242 }
3243 }
3244 if (!__pyx_t_3) {
3245 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_message); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__3245; goto __pyx_L1_error;}
3246 __Pyx_GOTREF(__pyx_t_1);
3247 } else {
3248 __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__3248; goto __pyx_L1_error;}
3249 __Pyx_GOTREF(__pyx_t_4);
3250 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
3251 __Pyx_INCREF(__pyx_v_message)( ((PyObject*)(__pyx_v_message))->ob_refcnt++);
3252 __Pyx_GIVEREF(__pyx_v_message);
3253 PyTuple_SET_ITEM(__pyx_t_4, 0+1, __pyx_v_message)(((PyTupleObject *)(__pyx_t_4))->ob_item[0+1] = __pyx_v_message
)
;
3254 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__3254; goto __pyx_L1_error;}
3255 __Pyx_GOTREF(__pyx_t_1);
3256 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
3257 }
3258 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
3259 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
3260
3261 /* "rados.pyx":342
3262 * def __init__(self, message, errno=None):
3263 * super(Exception, self).__init__(message)
3264 * self.errno = errno # <<<<<<<<<<<<<<
3265 *
3266 * def __str__(self):
3267 */
3268 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_errno, __pyx_v_errno) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__3268; goto __pyx_L1_error;}
3269
3270 /* "rados.pyx":340
3271 * class Error(Exception):
3272 * """ `Error` class, derived from `Exception` """
3273 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
3274 * super(Exception, self).__init__(message)
3275 * self.errno = errno
3276 */
3277
3278 /* function exit code */
3279 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
3280 goto __pyx_L0;
3281 __pyx_L1_error:;
3282 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
3283 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
3284 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
3285 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
3286 __Pyx_AddTraceback("rados.Error.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3287 __pyx_r = NULL((void*)0);
3288 __pyx_L0:;
3289 __Pyx_XGIVEREF(__pyx_r);
3290 __Pyx_RefNannyFinishContext();
3291 return __pyx_r;
3292}
3293
3294/* "rados.pyx":344
3295 * self.errno = errno
3296 *
3297 * def __str__(self): # <<<<<<<<<<<<<<
3298 * msg = super(Exception, self).__str__()
3299 * if self.errno is None:
3300 */
3301
3302/* Python wrapper */
3303static PyObject *__pyx_pw_5rados_5Error_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
3304static char __pyx_doc_5rados_5Error_2__str__[] = "Error.__str__(self)";
3305static PyMethodDef __pyx_mdef_5rados_5Error_3__str__ = {"__str__", (PyCFunction)__pyx_pw_5rados_5Error_3__str__, METH_O0x0008, __pyx_doc_5rados_5Error_2__str__};
3306static PyObject *__pyx_pw_5rados_5Error_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
3307 PyObject *__pyx_r = 0;
3308 __Pyx_RefNannyDeclarations
3309 __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
3310 __pyx_r = __pyx_pf_5rados_5Error_2__str__(__pyx_self, ((PyObject *)__pyx_v_self));
3311
3312 /* function exit code */
3313 __Pyx_RefNannyFinishContext();
3314 return __pyx_r;
3315}
3316
3317static PyObject *__pyx_pf_5rados_5Error_2__str__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
3318 PyObject *__pyx_v_msg = NULL((void*)0);
3319 PyObject *__pyx_r = NULL((void*)0);
3320 __Pyx_RefNannyDeclarations
3321 PyObject *__pyx_t_1 = NULL((void*)0);
3322 PyObject *__pyx_t_2 = NULL((void*)0);
3323 PyObject *__pyx_t_3 = NULL((void*)0);
3324 int __pyx_t_4;
3325 int __pyx_t_5;
3326 PyObject *__pyx_t_6 = NULL((void*)0);
3327 Py_ssize_t __pyx_t_7;
3328 PyObject *__pyx_t_8 = NULL((void*)0);
3329 int __pyx_lineno = 0;
3330 const char *__pyx_filename = NULL((void*)0);
3331 int __pyx_clineno = 0;
3332 __Pyx_RefNannySetupContext("__str__", 0);
3333
3334 /* "rados.pyx":345
3335 *
3336 * def __str__(self):
3337 * msg = super(Exception, self).__str__() # <<<<<<<<<<<<<<
3338 * if self.errno is None:
3339 * return msg
3340 */
3341 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__3341; goto __pyx_L1_error;}
3342 __Pyx_GOTREF(__pyx_t_2);
3343 __Pyx_INCREF(__pyx_builtin_Exception)( ((PyObject*)(__pyx_builtin_Exception))->ob_refcnt++);
3344 __Pyx_GIVEREF(__pyx_builtin_Exception);
3345 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_Exception)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_builtin_Exception
)
;
3346 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
3347 __Pyx_GIVEREF(__pyx_v_self);
3348 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_self
)
;
3349 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__3349; goto __pyx_L1_error;}
3350 __Pyx_GOTREF(__pyx_t_3);
3351 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
3352 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_str); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__3352; goto __pyx_L1_error;}
3353 __Pyx_GOTREF(__pyx_t_2);
3354 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
3355 __pyx_t_3 = NULL((void*)0);
3356 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
3357 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
3358 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
3359 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
3360 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
3361 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
3362 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
3363 }
3364 }
3365 if (__pyx_t_3) {
3366 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__3366; goto __pyx_L1_error;}
3367 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
3368 } else {
3369 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__3369; goto __pyx_L1_error;}
3370 }
3371 __Pyx_GOTREF(__pyx_t_1);
3372 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
3373 __pyx_v_msg = __pyx_t_1;
3374 __pyx_t_1 = 0;
3375
3376 /* "rados.pyx":346
3377 * def __str__(self):
3378 * msg = super(Exception, self).__str__()
3379 * if self.errno is None: # <<<<<<<<<<<<<<
3380 * return msg
3381 * return '[errno {0}] {1}'.format(self.errno, msg)
3382 */
3383 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_errno); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__3383; goto __pyx_L1_error;}
3384 __Pyx_GOTREF(__pyx_t_1);
3385 __pyx_t_4 = (__pyx_t_1 == Py_None(&_Py_NoneStruct));
3386 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
3387 __pyx_t_5 = (__pyx_t_4 != 0);
3388 if (__pyx_t_5) {
3389
3390 /* "rados.pyx":347
3391 * msg = super(Exception, self).__str__()
3392 * if self.errno is None:
3393 * return msg # <<<<<<<<<<<<<<
3394 * return '[errno {0}] {1}'.format(self.errno, msg)
3395 *
3396 */
3397 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
3398 __Pyx_INCREF(__pyx_v_msg)( ((PyObject*)(__pyx_v_msg))->ob_refcnt++);
3399 __pyx_r = __pyx_v_msg;
3400 goto __pyx_L0;
3401
3402 /* "rados.pyx":346
3403 * def __str__(self):
3404 * msg = super(Exception, self).__str__()
3405 * if self.errno is None: # <<<<<<<<<<<<<<
3406 * return msg
3407 * return '[errno {0}] {1}'.format(self.errno, msg)
3408 */
3409 }
3410
3411 /* "rados.pyx":348
3412 * if self.errno is None:
3413 * return msg
3414 * return '[errno {0}] {1}'.format(self.errno, msg) # <<<<<<<<<<<<<<
3415 *
3416 * def __reduce__(self):
3417 */
3418 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
3419 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_errno_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__3419; goto __pyx_L1_error;}
3420 __Pyx_GOTREF(__pyx_t_2);
3421 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_errno); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__3421; goto __pyx_L1_error;}
3422 __Pyx_GOTREF(__pyx_t_3);
3423 __pyx_t_6 = NULL((void*)0);
3424 __pyx_t_7 = 0;
3425 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
3426 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
3427 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
3428 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
3429 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
3430 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
3431 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
3432 __pyx_t_7 = 1;
3433 }
3434 }
3435 __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__3435; goto __pyx_L1_error;}
3436 __Pyx_GOTREF(__pyx_t_8);
3437 if (__pyx_t_6) {
3438 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
3439 }
3440 __Pyx_GIVEREF(__pyx_t_3);
3441 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_7] = __pyx_t_3
)
;
3442 __Pyx_INCREF(__pyx_v_msg)( ((PyObject*)(__pyx_v_msg))->ob_refcnt++);
3443 __Pyx_GIVEREF(__pyx_v_msg);
3444 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_msg)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_7] = __pyx_v_msg
)
;
3445 __pyx_t_3 = 0;
3446 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__3446; goto __pyx_L1_error;}
3447 __Pyx_GOTREF(__pyx_t_1);
3448 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
3449 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
3450 __pyx_r = __pyx_t_1;
3451 __pyx_t_1 = 0;
3452 goto __pyx_L0;
3453
3454 /* "rados.pyx":344
3455 * self.errno = errno
3456 *
3457 * def __str__(self): # <<<<<<<<<<<<<<
3458 * msg = super(Exception, self).__str__()
3459 * if self.errno is None:
3460 */
3461
3462 /* function exit code */
3463 __pyx_L1_error:;
3464 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
3465 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
3466 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
3467 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
3468 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
3469 __Pyx_AddTraceback("rados.Error.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3470 __pyx_r = NULL((void*)0);
3471 __pyx_L0:;
3472 __Pyx_XDECREF(__pyx_v_msg)do { if ((__pyx_v_msg) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_msg))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_msg)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_msg)))); } while (0); } while (0)
;
3473 __Pyx_XGIVEREF(__pyx_r);
3474 __Pyx_RefNannyFinishContext();
3475 return __pyx_r;
3476}
3477
3478/* "rados.pyx":350
3479 * return '[errno {0}] {1}'.format(self.errno, msg)
3480 *
3481 * def __reduce__(self): # <<<<<<<<<<<<<<
3482 * return (self.__class__, (self.message, self.errno))
3483 *
3484 */
3485
3486/* Python wrapper */
3487static PyObject *__pyx_pw_5rados_5Error_5__reduce__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
3488static char __pyx_doc_5rados_5Error_4__reduce__[] = "Error.__reduce__(self)";
3489static PyMethodDef __pyx_mdef_5rados_5Error_5__reduce__ = {"__reduce__", (PyCFunction)__pyx_pw_5rados_5Error_5__reduce__, METH_O0x0008, __pyx_doc_5rados_5Error_4__reduce__};
3490static PyObject *__pyx_pw_5rados_5Error_5__reduce__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
3491 PyObject *__pyx_r = 0;
3492 __Pyx_RefNannyDeclarations
3493 __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0);
3494 __pyx_r = __pyx_pf_5rados_5Error_4__reduce__(__pyx_self, ((PyObject *)__pyx_v_self));
3495
3496 /* function exit code */
3497 __Pyx_RefNannyFinishContext();
3498 return __pyx_r;
3499}
3500
3501static PyObject *__pyx_pf_5rados_5Error_4__reduce__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
3502 PyObject *__pyx_r = NULL((void*)0);
3503 __Pyx_RefNannyDeclarations
3504 PyObject *__pyx_t_1 = NULL((void*)0);
3505 PyObject *__pyx_t_2 = NULL((void*)0);
3506 PyObject *__pyx_t_3 = NULL((void*)0);
3507 PyObject *__pyx_t_4 = NULL((void*)0);
3508 int __pyx_lineno = 0;
3509 const char *__pyx_filename = NULL((void*)0);
3510 int __pyx_clineno = 0;
3511 __Pyx_RefNannySetupContext("__reduce__", 0);
3512
3513 /* "rados.pyx":351
3514 *
3515 * def __reduce__(self):
3516 * return (self.__class__, (self.message, self.errno)) # <<<<<<<<<<<<<<
3517 *
3518 * class InvalidArgumentError(Error):
3519 */
3520 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
3521 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_class); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__3521; goto __pyx_L1_error;}
3522 __Pyx_GOTREF(__pyx_t_1);
3523 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_message); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__3523; goto __pyx_L1_error;}
3524 __Pyx_GOTREF(__pyx_t_2);
3525 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_errno); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__3525; goto __pyx_L1_error;}
3526 __Pyx_GOTREF(__pyx_t_3);
3527 __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__3527; goto __pyx_L1_error;}
3528 __Pyx_GOTREF(__pyx_t_4);
3529 __Pyx_GIVEREF(__pyx_t_2);
3530 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_2);
3531 __Pyx_GIVEREF(__pyx_t_3);
3532 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)(((PyTupleObject *)(__pyx_t_4))->ob_item[1] = __pyx_t_3);
3533 __pyx_t_2 = 0;
3534 __pyx_t_3 = 0;
3535 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__3535; goto __pyx_L1_error;}
3536 __Pyx_GOTREF(__pyx_t_3);
3537 __Pyx_GIVEREF(__pyx_t_1);
3538 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_1);
3539 __Pyx_GIVEREF(__pyx_t_4);
3540 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_t_4);
3541 __pyx_t_1 = 0;
3542 __pyx_t_4 = 0;
3543 __pyx_r = __pyx_t_3;
3544 __pyx_t_3 = 0;
3545 goto __pyx_L0;
3546
3547 /* "rados.pyx":350
3548 * return '[errno {0}] {1}'.format(self.errno, msg)
3549 *
3550 * def __reduce__(self): # <<<<<<<<<<<<<<
3551 * return (self.__class__, (self.message, self.errno))
3552 *
3553 */
3554
3555 /* function exit code */
3556 __pyx_L1_error:;
3557 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
3558 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
3559 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
3560 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
3561 __Pyx_AddTraceback("rados.Error.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3562 __pyx_r = NULL((void*)0);
3563 __pyx_L0:;
3564 __Pyx_XGIVEREF(__pyx_r);
3565 __Pyx_RefNannyFinishContext();
3566 return __pyx_r;
3567}
3568
3569/* "rados.pyx":354
3570 *
3571 * class InvalidArgumentError(Error):
3572 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
3573 * super(InvalidArgumentError, self).__init__(
3574 * "RADOS invalid argument (%s)" % message, errno)
3575 */
3576
3577/* Python wrapper */
3578static PyObject *__pyx_pw_5rados_20InvalidArgumentError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3579static char __pyx_doc_5rados_20InvalidArgumentError___init__[] = "InvalidArgumentError.__init__(self, message, errno=None)";
3580static PyMethodDef __pyx_mdef_5rados_20InvalidArgumentError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_20InvalidArgumentError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_20InvalidArgumentError___init__};
3581static PyObject *__pyx_pw_5rados_20InvalidArgumentError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3582 PyObject *__pyx_v_self = 0;
3583 PyObject *__pyx_v_message = 0;
3584 PyObject *__pyx_v_errno = 0;
3585 int __pyx_lineno = 0;
3586 const char *__pyx_filename = NULL((void*)0);
3587 int __pyx_clineno = 0;
3588 PyObject *__pyx_r = 0;
3589 __Pyx_RefNannyDeclarations
3590 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
3591 {
3592 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
3593 PyObject* values[3] = {0,0,0};
3594 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
3595 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
3596 Py_ssize_t kw_args;
3597 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
3598 switch (pos_args) {
3599 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3600 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3601 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3602 case 0: break;
3603 default: goto __pyx_L5_argtuple_error;
3604 }
3605 kw_args = PyDict_Size(__pyx_kwds);
3606 switch (pos_args) {
3607 case 0:
3608 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
3609 else goto __pyx_L5_argtuple_error;
3610 case 1:
3611 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
3612 else {
3613 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__3613; goto __pyx_L3_error;}
3614 }
3615 case 2:
3616 if (kw_args > 0) {
3617 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
3618 if (value) { values[2] = value; kw_args--; }
3619 }
3620 }
3621 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
3622 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__3622; goto __pyx_L3_error;}
3623 }
3624 } else {
3625 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
3626 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3627 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3628 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3629 break;
3630 default: goto __pyx_L5_argtuple_error;
3631 }
3632 }
3633 __pyx_v_self = values[0];
3634 __pyx_v_message = values[1];
3635 __pyx_v_errno = values[2];
3636 }
3637 goto __pyx_L4_argument_unpacking_done;
3638 __pyx_L5_argtuple_error:;
3639 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__3639; goto __pyx_L3_error;}
3640 __pyx_L3_error:;
3641 __Pyx_AddTraceback("rados.InvalidArgumentError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3642 __Pyx_RefNannyFinishContext();
3643 return NULL((void*)0);
3644 __pyx_L4_argument_unpacking_done:;
3645 __pyx_r = __pyx_pf_5rados_20InvalidArgumentError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
3646
3647 /* function exit code */
3648 __Pyx_RefNannyFinishContext();
3649 return __pyx_r;
3650}
3651
3652static PyObject *__pyx_pf_5rados_20InvalidArgumentError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
3653 PyObject *__pyx_r = NULL((void*)0);
3654 __Pyx_RefNannyDeclarations
3655 PyObject *__pyx_t_1 = NULL((void*)0);
3656 PyObject *__pyx_t_2 = NULL((void*)0);
3657 PyObject *__pyx_t_3 = NULL((void*)0);
3658 PyObject *__pyx_t_4 = NULL((void*)0);
3659 Py_ssize_t __pyx_t_5;
3660 PyObject *__pyx_t_6 = NULL((void*)0);
3661 int __pyx_lineno = 0;
3662 const char *__pyx_filename = NULL((void*)0);
3663 int __pyx_clineno = 0;
3664 __Pyx_RefNannySetupContext("__init__", 0);
3665
3666 /* "rados.pyx":355
3667 * class InvalidArgumentError(Error):
3668 * def __init__(self, message, errno=None):
3669 * super(InvalidArgumentError, self).__init__( # <<<<<<<<<<<<<<
3670 * "RADOS invalid argument (%s)" % message, errno)
3671 *
3672 */
3673 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_InvalidArgumentError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__3673; goto __pyx_L1_error;}
3674 __Pyx_GOTREF(__pyx_t_2);
3675 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__3675; goto __pyx_L1_error;}
3676 __Pyx_GOTREF(__pyx_t_3);
3677 __Pyx_GIVEREF(__pyx_t_2);
3678 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
3679 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
3680 __Pyx_GIVEREF(__pyx_v_self);
3681 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
3682 __pyx_t_2 = 0;
3683 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__3683; goto __pyx_L1_error;}
3684 __Pyx_GOTREF(__pyx_t_2);
3685 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
3686 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__3686; goto __pyx_L1_error;}
3687 __Pyx_GOTREF(__pyx_t_3);
3688 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
3689
3690 /* "rados.pyx":356
3691 * def __init__(self, message, errno=None):
3692 * super(InvalidArgumentError, self).__init__(
3693 * "RADOS invalid argument (%s)" % message, errno) # <<<<<<<<<<<<<<
3694 *
3695 *
3696 */
3697 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_invalid_argument_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_invalid_argument_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__3697; goto __pyx_L1_error;}
3698 __Pyx_GOTREF(__pyx_t_2);
3699 __pyx_t_4 = NULL((void*)0);
3700 __pyx_t_5 = 0;
3701 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
3702 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
3703 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
3704 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
3705 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
3706 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
3707 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
3708 __pyx_t_5 = 1;
3709 }
3710 }
3711 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__3711; goto __pyx_L1_error;}
3712 __Pyx_GOTREF(__pyx_t_6);
3713 if (__pyx_t_4) {
3714 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
3715 }
3716 __Pyx_GIVEREF(__pyx_t_2);
3717 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
3718 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
3719 __Pyx_GIVEREF(__pyx_v_errno);
3720 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
3721 __pyx_t_2 = 0;
3722 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__3722; goto __pyx_L1_error;}
3723 __Pyx_GOTREF(__pyx_t_1);
3724 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
3725 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
3726 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
3727
3728 /* "rados.pyx":354
3729 *
3730 * class InvalidArgumentError(Error):
3731 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
3732 * super(InvalidArgumentError, self).__init__(
3733 * "RADOS invalid argument (%s)" % message, errno)
3734 */
3735
3736 /* function exit code */
3737 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
3738 goto __pyx_L0;
3739 __pyx_L1_error:;
3740 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
3741 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
3742 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
3743 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
3744 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
3745 __Pyx_AddTraceback("rados.InvalidArgumentError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3746 __pyx_r = NULL((void*)0);
3747 __pyx_L0:;
3748 __Pyx_XGIVEREF(__pyx_r);
3749 __Pyx_RefNannyFinishContext();
3750 return __pyx_r;
3751}
3752
3753/* "rados.pyx":365
3754 * class InterruptedOrTimeoutError(OSError):
3755 * """ `InterruptedOrTimeoutError` class, derived from `OSError` """
3756 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
3757 * super(InterruptedOrTimeoutError, self).__init__(
3758 * "RADOS interrupted or timeout (%s)" % message, errno)
3759 */
3760
3761/* Python wrapper */
3762static PyObject *__pyx_pw_5rados_25InterruptedOrTimeoutError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3763static char __pyx_doc_5rados_25InterruptedOrTimeoutError___init__[] = "InterruptedOrTimeoutError.__init__(self, message, errno=None)";
3764static PyMethodDef __pyx_mdef_5rados_25InterruptedOrTimeoutError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_25InterruptedOrTimeoutError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_25InterruptedOrTimeoutError___init__};
3765static PyObject *__pyx_pw_5rados_25InterruptedOrTimeoutError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3766 PyObject *__pyx_v_self = 0;
3767 PyObject *__pyx_v_message = 0;
3768 PyObject *__pyx_v_errno = 0;
3769 int __pyx_lineno = 0;
3770 const char *__pyx_filename = NULL((void*)0);
3771 int __pyx_clineno = 0;
3772 PyObject *__pyx_r = 0;
3773 __Pyx_RefNannyDeclarations
3774 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
3775 {
3776 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
3777 PyObject* values[3] = {0,0,0};
3778 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
3779 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
3780 Py_ssize_t kw_args;
3781 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
3782 switch (pos_args) {
3783 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3784 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3785 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3786 case 0: break;
3787 default: goto __pyx_L5_argtuple_error;
3788 }
3789 kw_args = PyDict_Size(__pyx_kwds);
3790 switch (pos_args) {
3791 case 0:
3792 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
3793 else goto __pyx_L5_argtuple_error;
3794 case 1:
3795 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
3796 else {
3797 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__3797; goto __pyx_L3_error;}
3798 }
3799 case 2:
3800 if (kw_args > 0) {
3801 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
3802 if (value) { values[2] = value; kw_args--; }
3803 }
3804 }
3805 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
3806 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__3806; goto __pyx_L3_error;}
3807 }
3808 } else {
3809 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
3810 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3811 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3812 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3813 break;
3814 default: goto __pyx_L5_argtuple_error;
3815 }
3816 }
3817 __pyx_v_self = values[0];
3818 __pyx_v_message = values[1];
3819 __pyx_v_errno = values[2];
3820 }
3821 goto __pyx_L4_argument_unpacking_done;
3822 __pyx_L5_argtuple_error:;
3823 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__3823; goto __pyx_L3_error;}
3824 __pyx_L3_error:;
3825 __Pyx_AddTraceback("rados.InterruptedOrTimeoutError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3826 __Pyx_RefNannyFinishContext();
3827 return NULL((void*)0);
3828 __pyx_L4_argument_unpacking_done:;
3829 __pyx_r = __pyx_pf_5rados_25InterruptedOrTimeoutError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
3830
3831 /* function exit code */
3832 __Pyx_RefNannyFinishContext();
3833 return __pyx_r;
3834}
3835
3836static PyObject *__pyx_pf_5rados_25InterruptedOrTimeoutError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
3837 PyObject *__pyx_r = NULL((void*)0);
3838 __Pyx_RefNannyDeclarations
3839 PyObject *__pyx_t_1 = NULL((void*)0);
3840 PyObject *__pyx_t_2 = NULL((void*)0);
3841 PyObject *__pyx_t_3 = NULL((void*)0);
3842 PyObject *__pyx_t_4 = NULL((void*)0);
3843 Py_ssize_t __pyx_t_5;
3844 PyObject *__pyx_t_6 = NULL((void*)0);
3845 int __pyx_lineno = 0;
3846 const char *__pyx_filename = NULL((void*)0);
3847 int __pyx_clineno = 0;
3848 __Pyx_RefNannySetupContext("__init__", 0);
3849
3850 /* "rados.pyx":366
3851 * """ `InterruptedOrTimeoutError` class, derived from `OSError` """
3852 * def __init__(self, message, errno=None):
3853 * super(InterruptedOrTimeoutError, self).__init__( # <<<<<<<<<<<<<<
3854 * "RADOS interrupted or timeout (%s)" % message, errno)
3855 *
3856 */
3857 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_InterruptedOrTimeoutError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__3857; goto __pyx_L1_error;}
3858 __Pyx_GOTREF(__pyx_t_2);
3859 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__3859; goto __pyx_L1_error;}
3860 __Pyx_GOTREF(__pyx_t_3);
3861 __Pyx_GIVEREF(__pyx_t_2);
3862 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
3863 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
3864 __Pyx_GIVEREF(__pyx_v_self);
3865 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
3866 __pyx_t_2 = 0;
3867 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__3867; goto __pyx_L1_error;}
3868 __Pyx_GOTREF(__pyx_t_2);
3869 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
3870 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__3870; goto __pyx_L1_error;}
3871 __Pyx_GOTREF(__pyx_t_3);
3872 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
3873
3874 /* "rados.pyx":367
3875 * def __init__(self, message, errno=None):
3876 * super(InterruptedOrTimeoutError, self).__init__(
3877 * "RADOS interrupted or timeout (%s)" % message, errno) # <<<<<<<<<<<<<<
3878 *
3879 *
3880 */
3881 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_interrupted_or_timeout_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_interrupted_or_timeout_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__3881; goto __pyx_L1_error;}
3882 __Pyx_GOTREF(__pyx_t_2);
3883 __pyx_t_4 = NULL((void*)0);
3884 __pyx_t_5 = 0;
3885 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
3886 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
3887 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
3888 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
3889 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
3890 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
3891 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
3892 __pyx_t_5 = 1;
3893 }
3894 }
3895 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__3895; goto __pyx_L1_error;}
3896 __Pyx_GOTREF(__pyx_t_6);
3897 if (__pyx_t_4) {
3898 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
3899 }
3900 __Pyx_GIVEREF(__pyx_t_2);
3901 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
3902 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
3903 __Pyx_GIVEREF(__pyx_v_errno);
3904 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
3905 __pyx_t_2 = 0;
3906 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__3906; goto __pyx_L1_error;}
3907 __Pyx_GOTREF(__pyx_t_1);
3908 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
3909 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
3910 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
3911
3912 /* "rados.pyx":365
3913 * class InterruptedOrTimeoutError(OSError):
3914 * """ `InterruptedOrTimeoutError` class, derived from `OSError` """
3915 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
3916 * super(InterruptedOrTimeoutError, self).__init__(
3917 * "RADOS interrupted or timeout (%s)" % message, errno)
3918 */
3919
3920 /* function exit code */
3921 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
3922 goto __pyx_L0;
3923 __pyx_L1_error:;
3924 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
3925 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
3926 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
3927 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
3928 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
3929 __Pyx_AddTraceback("rados.InterruptedOrTimeoutError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
3930 __pyx_r = NULL((void*)0);
3931 __pyx_L0:;
3932 __Pyx_XGIVEREF(__pyx_r);
3933 __Pyx_RefNannyFinishContext();
3934 return __pyx_r;
3935}
3936
3937/* "rados.pyx":372
3938 * class PermissionError(OSError):
3939 * """ `PermissionError` class, derived from `OSError` """
3940 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
3941 * super(PermissionError, self).__init__(
3942 * "RADOS permission error (%s)" % message, errno)
3943 */
3944
3945/* Python wrapper */
3946static PyObject *__pyx_pw_5rados_15PermissionError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
3947static char __pyx_doc_5rados_15PermissionError___init__[] = "PermissionError.__init__(self, message, errno=None)";
3948static PyMethodDef __pyx_mdef_5rados_15PermissionError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_15PermissionError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_15PermissionError___init__};
3949static PyObject *__pyx_pw_5rados_15PermissionError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
3950 PyObject *__pyx_v_self = 0;
3951 PyObject *__pyx_v_message = 0;
3952 PyObject *__pyx_v_errno = 0;
3953 int __pyx_lineno = 0;
3954 const char *__pyx_filename = NULL((void*)0);
3955 int __pyx_clineno = 0;
3956 PyObject *__pyx_r = 0;
3957 __Pyx_RefNannyDeclarations
3958 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
3959 {
3960 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
3961 PyObject* values[3] = {0,0,0};
3962 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
3963 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
3964 Py_ssize_t kw_args;
3965 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
3966 switch (pos_args) {
3967 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3968 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3969 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3970 case 0: break;
3971 default: goto __pyx_L5_argtuple_error;
3972 }
3973 kw_args = PyDict_Size(__pyx_kwds);
3974 switch (pos_args) {
3975 case 0:
3976 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
3977 else goto __pyx_L5_argtuple_error;
3978 case 1:
3979 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
3980 else {
3981 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__3981; goto __pyx_L3_error;}
3982 }
3983 case 2:
3984 if (kw_args > 0) {
3985 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
3986 if (value) { values[2] = value; kw_args--; }
3987 }
3988 }
3989 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
3990 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__3990; goto __pyx_L3_error;}
3991 }
3992 } else {
3993 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
3994 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
3995 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
3996 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
3997 break;
3998 default: goto __pyx_L5_argtuple_error;
3999 }
4000 }
4001 __pyx_v_self = values[0];
4002 __pyx_v_message = values[1];
4003 __pyx_v_errno = values[2];
4004 }
4005 goto __pyx_L4_argument_unpacking_done;
4006 __pyx_L5_argtuple_error:;
4007 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__4007; goto __pyx_L3_error;}
4008 __pyx_L3_error:;
4009 __Pyx_AddTraceback("rados.PermissionError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4010 __Pyx_RefNannyFinishContext();
4011 return NULL((void*)0);
4012 __pyx_L4_argument_unpacking_done:;
4013 __pyx_r = __pyx_pf_5rados_15PermissionError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
4014
4015 /* function exit code */
4016 __Pyx_RefNannyFinishContext();
4017 return __pyx_r;
4018}
4019
4020static PyObject *__pyx_pf_5rados_15PermissionError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
4021 PyObject *__pyx_r = NULL((void*)0);
4022 __Pyx_RefNannyDeclarations
4023 PyObject *__pyx_t_1 = NULL((void*)0);
4024 PyObject *__pyx_t_2 = NULL((void*)0);
4025 PyObject *__pyx_t_3 = NULL((void*)0);
4026 PyObject *__pyx_t_4 = NULL((void*)0);
4027 Py_ssize_t __pyx_t_5;
4028 PyObject *__pyx_t_6 = NULL((void*)0);
4029 int __pyx_lineno = 0;
4030 const char *__pyx_filename = NULL((void*)0);
4031 int __pyx_clineno = 0;
4032 __Pyx_RefNannySetupContext("__init__", 0);
4033
4034 /* "rados.pyx":373
4035 * """ `PermissionError` class, derived from `OSError` """
4036 * def __init__(self, message, errno=None):
4037 * super(PermissionError, self).__init__( # <<<<<<<<<<<<<<
4038 * "RADOS permission error (%s)" % message, errno)
4039 *
4040 */
4041 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_PermissionError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__4041; goto __pyx_L1_error;}
4042 __Pyx_GOTREF(__pyx_t_2);
4043 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__4043; goto __pyx_L1_error;}
4044 __Pyx_GOTREF(__pyx_t_3);
4045 __Pyx_GIVEREF(__pyx_t_2);
4046 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
4047 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
4048 __Pyx_GIVEREF(__pyx_v_self);
4049 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
4050 __pyx_t_2 = 0;
4051 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__4051; goto __pyx_L1_error;}
4052 __Pyx_GOTREF(__pyx_t_2);
4053 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4054 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__4054; goto __pyx_L1_error;}
4055 __Pyx_GOTREF(__pyx_t_3);
4056 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
4057
4058 /* "rados.pyx":374
4059 * def __init__(self, message, errno=None):
4060 * super(PermissionError, self).__init__(
4061 * "RADOS permission error (%s)" % message, errno) # <<<<<<<<<<<<<<
4062 *
4063 *
4064 */
4065 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_permission_error_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_permission_error_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__4065; goto __pyx_L1_error;}
4066 __Pyx_GOTREF(__pyx_t_2);
4067 __pyx_t_4 = NULL((void*)0);
4068 __pyx_t_5 = 0;
4069 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
4070 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
4071 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
4072 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
4073 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
4074 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
4075 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
4076 __pyx_t_5 = 1;
4077 }
4078 }
4079 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__4079; goto __pyx_L1_error;}
4080 __Pyx_GOTREF(__pyx_t_6);
4081 if (__pyx_t_4) {
4082 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
4083 }
4084 __Pyx_GIVEREF(__pyx_t_2);
4085 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
4086 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
4087 __Pyx_GIVEREF(__pyx_v_errno);
4088 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
4089 __pyx_t_2 = 0;
4090 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__4090; goto __pyx_L1_error;}
4091 __Pyx_GOTREF(__pyx_t_1);
4092 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
4093 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4094 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
4095
4096 /* "rados.pyx":372
4097 * class PermissionError(OSError):
4098 * """ `PermissionError` class, derived from `OSError` """
4099 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4100 * super(PermissionError, self).__init__(
4101 * "RADOS permission error (%s)" % message, errno)
4102 */
4103
4104 /* function exit code */
4105 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
4106 goto __pyx_L0;
4107 __pyx_L1_error:;
4108 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
4109 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
4110 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
4111 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
4112 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
4113 __Pyx_AddTraceback("rados.PermissionError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4114 __pyx_r = NULL((void*)0);
4115 __pyx_L0:;
4116 __Pyx_XGIVEREF(__pyx_r);
4117 __Pyx_RefNannyFinishContext();
4118 return __pyx_r;
4119}
4120
4121/* "rados.pyx":379
4122 * class PermissionDeniedError(OSError):
4123 * """ deal with EACCES related. """
4124 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4125 * super(PermissionDeniedError, self).__init__(
4126 * "RADOS permission denied (%s)" % message, errno)
4127 */
4128
4129/* Python wrapper */
4130static PyObject *__pyx_pw_5rados_21PermissionDeniedError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4131static char __pyx_doc_5rados_21PermissionDeniedError___init__[] = "PermissionDeniedError.__init__(self, message, errno=None)";
4132static PyMethodDef __pyx_mdef_5rados_21PermissionDeniedError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_21PermissionDeniedError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_21PermissionDeniedError___init__};
4133static PyObject *__pyx_pw_5rados_21PermissionDeniedError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4134 PyObject *__pyx_v_self = 0;
4135 PyObject *__pyx_v_message = 0;
4136 PyObject *__pyx_v_errno = 0;
4137 int __pyx_lineno = 0;
4138 const char *__pyx_filename = NULL((void*)0);
4139 int __pyx_clineno = 0;
4140 PyObject *__pyx_r = 0;
4141 __Pyx_RefNannyDeclarations
4142 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
4143 {
4144 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
4145 PyObject* values[3] = {0,0,0};
4146 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
4147 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
4148 Py_ssize_t kw_args;
4149 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
4150 switch (pos_args) {
4151 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4152 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4153 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4154 case 0: break;
4155 default: goto __pyx_L5_argtuple_error;
4156 }
4157 kw_args = PyDict_Size(__pyx_kwds);
4158 switch (pos_args) {
4159 case 0:
4160 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
4161 else goto __pyx_L5_argtuple_error;
4162 case 1:
4163 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
4164 else {
4165 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__4165; goto __pyx_L3_error;}
4166 }
4167 case 2:
4168 if (kw_args > 0) {
4169 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
4170 if (value) { values[2] = value; kw_args--; }
4171 }
4172 }
4173 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
4174 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__4174; goto __pyx_L3_error;}
4175 }
4176 } else {
4177 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
4178 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4179 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4180 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4181 break;
4182 default: goto __pyx_L5_argtuple_error;
4183 }
4184 }
4185 __pyx_v_self = values[0];
4186 __pyx_v_message = values[1];
4187 __pyx_v_errno = values[2];
4188 }
4189 goto __pyx_L4_argument_unpacking_done;
4190 __pyx_L5_argtuple_error:;
4191 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__4191; goto __pyx_L3_error;}
4192 __pyx_L3_error:;
4193 __Pyx_AddTraceback("rados.PermissionDeniedError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4194 __Pyx_RefNannyFinishContext();
4195 return NULL((void*)0);
4196 __pyx_L4_argument_unpacking_done:;
4197 __pyx_r = __pyx_pf_5rados_21PermissionDeniedError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
4198
4199 /* function exit code */
4200 __Pyx_RefNannyFinishContext();
4201 return __pyx_r;
4202}
4203
4204static PyObject *__pyx_pf_5rados_21PermissionDeniedError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
4205 PyObject *__pyx_r = NULL((void*)0);
4206 __Pyx_RefNannyDeclarations
4207 PyObject *__pyx_t_1 = NULL((void*)0);
4208 PyObject *__pyx_t_2 = NULL((void*)0);
4209 PyObject *__pyx_t_3 = NULL((void*)0);
4210 PyObject *__pyx_t_4 = NULL((void*)0);
4211 Py_ssize_t __pyx_t_5;
4212 PyObject *__pyx_t_6 = NULL((void*)0);
4213 int __pyx_lineno = 0;
4214 const char *__pyx_filename = NULL((void*)0);
4215 int __pyx_clineno = 0;
4216 __Pyx_RefNannySetupContext("__init__", 0);
4217
4218 /* "rados.pyx":380
4219 * """ deal with EACCES related. """
4220 * def __init__(self, message, errno=None):
4221 * super(PermissionDeniedError, self).__init__( # <<<<<<<<<<<<<<
4222 * "RADOS permission denied (%s)" % message, errno)
4223 *
4224 */
4225 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_PermissionDeniedError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__4225; goto __pyx_L1_error;}
4226 __Pyx_GOTREF(__pyx_t_2);
4227 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__4227; goto __pyx_L1_error;}
4228 __Pyx_GOTREF(__pyx_t_3);
4229 __Pyx_GIVEREF(__pyx_t_2);
4230 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
4231 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
4232 __Pyx_GIVEREF(__pyx_v_self);
4233 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
4234 __pyx_t_2 = 0;
4235 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__4235; goto __pyx_L1_error;}
4236 __Pyx_GOTREF(__pyx_t_2);
4237 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4238 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__4238; goto __pyx_L1_error;}
4239 __Pyx_GOTREF(__pyx_t_3);
4240 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
4241
4242 /* "rados.pyx":381
4243 * def __init__(self, message, errno=None):
4244 * super(PermissionDeniedError, self).__init__(
4245 * "RADOS permission denied (%s)" % message, errno) # <<<<<<<<<<<<<<
4246 *
4247 *
4248 */
4249 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_permission_denied_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_permission_denied_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__4249; goto __pyx_L1_error;}
4250 __Pyx_GOTREF(__pyx_t_2);
4251 __pyx_t_4 = NULL((void*)0);
4252 __pyx_t_5 = 0;
4253 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
4254 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
4255 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
4256 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
4257 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
4258 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
4259 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
4260 __pyx_t_5 = 1;
4261 }
4262 }
4263 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__4263; goto __pyx_L1_error;}
4264 __Pyx_GOTREF(__pyx_t_6);
4265 if (__pyx_t_4) {
4266 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
4267 }
4268 __Pyx_GIVEREF(__pyx_t_2);
4269 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
4270 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
4271 __Pyx_GIVEREF(__pyx_v_errno);
4272 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
4273 __pyx_t_2 = 0;
4274 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__4274; goto __pyx_L1_error;}
4275 __Pyx_GOTREF(__pyx_t_1);
4276 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
4277 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4278 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
4279
4280 /* "rados.pyx":379
4281 * class PermissionDeniedError(OSError):
4282 * """ deal with EACCES related. """
4283 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4284 * super(PermissionDeniedError, self).__init__(
4285 * "RADOS permission denied (%s)" % message, errno)
4286 */
4287
4288 /* function exit code */
4289 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
4290 goto __pyx_L0;
4291 __pyx_L1_error:;
4292 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
4293 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
4294 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
4295 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
4296 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
4297 __Pyx_AddTraceback("rados.PermissionDeniedError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4298 __pyx_r = NULL((void*)0);
4299 __pyx_L0:;
4300 __Pyx_XGIVEREF(__pyx_r);
4301 __Pyx_RefNannyFinishContext();
4302 return __pyx_r;
4303}
4304
4305/* "rados.pyx":386
4306 * class ObjectNotFound(OSError):
4307 * """ `ObjectNotFound` class, derived from `OSError` """
4308 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4309 * super(ObjectNotFound, self).__init__(
4310 * "RADOS object not found (%s)" % message, errno)
4311 */
4312
4313/* Python wrapper */
4314static PyObject *__pyx_pw_5rados_14ObjectNotFound_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4315static char __pyx_doc_5rados_14ObjectNotFound___init__[] = "ObjectNotFound.__init__(self, message, errno=None)";
4316static PyMethodDef __pyx_mdef_5rados_14ObjectNotFound_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_14ObjectNotFound_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_14ObjectNotFound___init__};
4317static PyObject *__pyx_pw_5rados_14ObjectNotFound_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4318 PyObject *__pyx_v_self = 0;
4319 PyObject *__pyx_v_message = 0;
4320 PyObject *__pyx_v_errno = 0;
4321 int __pyx_lineno = 0;
4322 const char *__pyx_filename = NULL((void*)0);
4323 int __pyx_clineno = 0;
4324 PyObject *__pyx_r = 0;
4325 __Pyx_RefNannyDeclarations
4326 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
4327 {
4328 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
4329 PyObject* values[3] = {0,0,0};
4330 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
4331 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
4332 Py_ssize_t kw_args;
4333 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
4334 switch (pos_args) {
4335 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4336 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4337 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4338 case 0: break;
4339 default: goto __pyx_L5_argtuple_error;
4340 }
4341 kw_args = PyDict_Size(__pyx_kwds);
4342 switch (pos_args) {
4343 case 0:
4344 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
4345 else goto __pyx_L5_argtuple_error;
4346 case 1:
4347 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
4348 else {
4349 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__4349; goto __pyx_L3_error;}
4350 }
4351 case 2:
4352 if (kw_args > 0) {
4353 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
4354 if (value) { values[2] = value; kw_args--; }
4355 }
4356 }
4357 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
4358 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__4358; goto __pyx_L3_error;}
4359 }
4360 } else {
4361 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
4362 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4363 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4364 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4365 break;
4366 default: goto __pyx_L5_argtuple_error;
4367 }
4368 }
4369 __pyx_v_self = values[0];
4370 __pyx_v_message = values[1];
4371 __pyx_v_errno = values[2];
4372 }
4373 goto __pyx_L4_argument_unpacking_done;
4374 __pyx_L5_argtuple_error:;
4375 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__4375; goto __pyx_L3_error;}
4376 __pyx_L3_error:;
4377 __Pyx_AddTraceback("rados.ObjectNotFound.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4378 __Pyx_RefNannyFinishContext();
4379 return NULL((void*)0);
4380 __pyx_L4_argument_unpacking_done:;
4381 __pyx_r = __pyx_pf_5rados_14ObjectNotFound___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
4382
4383 /* function exit code */
4384 __Pyx_RefNannyFinishContext();
4385 return __pyx_r;
4386}
4387
4388static PyObject *__pyx_pf_5rados_14ObjectNotFound___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
4389 PyObject *__pyx_r = NULL((void*)0);
4390 __Pyx_RefNannyDeclarations
4391 PyObject *__pyx_t_1 = NULL((void*)0);
4392 PyObject *__pyx_t_2 = NULL((void*)0);
4393 PyObject *__pyx_t_3 = NULL((void*)0);
4394 PyObject *__pyx_t_4 = NULL((void*)0);
4395 Py_ssize_t __pyx_t_5;
4396 PyObject *__pyx_t_6 = NULL((void*)0);
4397 int __pyx_lineno = 0;
4398 const char *__pyx_filename = NULL((void*)0);
4399 int __pyx_clineno = 0;
4400 __Pyx_RefNannySetupContext("__init__", 0);
4401
4402 /* "rados.pyx":387
4403 * """ `ObjectNotFound` class, derived from `OSError` """
4404 * def __init__(self, message, errno=None):
4405 * super(ObjectNotFound, self).__init__( # <<<<<<<<<<<<<<
4406 * "RADOS object not found (%s)" % message, errno)
4407 *
4408 */
4409 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectNotFound); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__4409; goto __pyx_L1_error;}
4410 __Pyx_GOTREF(__pyx_t_2);
4411 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__4411; goto __pyx_L1_error;}
4412 __Pyx_GOTREF(__pyx_t_3);
4413 __Pyx_GIVEREF(__pyx_t_2);
4414 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
4415 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
4416 __Pyx_GIVEREF(__pyx_v_self);
4417 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
4418 __pyx_t_2 = 0;
4419 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__4419; goto __pyx_L1_error;}
4420 __Pyx_GOTREF(__pyx_t_2);
4421 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4422 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__4422; goto __pyx_L1_error;}
4423 __Pyx_GOTREF(__pyx_t_3);
4424 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
4425
4426 /* "rados.pyx":388
4427 * def __init__(self, message, errno=None):
4428 * super(ObjectNotFound, self).__init__(
4429 * "RADOS object not found (%s)" % message, errno) # <<<<<<<<<<<<<<
4430 *
4431 *
4432 */
4433 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_object_not_found_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_object_not_found_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__4433; goto __pyx_L1_error;}
4434 __Pyx_GOTREF(__pyx_t_2);
4435 __pyx_t_4 = NULL((void*)0);
4436 __pyx_t_5 = 0;
4437 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
4438 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
4439 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
4440 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
4441 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
4442 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
4443 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
4444 __pyx_t_5 = 1;
4445 }
4446 }
4447 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__4447; goto __pyx_L1_error;}
4448 __Pyx_GOTREF(__pyx_t_6);
4449 if (__pyx_t_4) {
4450 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
4451 }
4452 __Pyx_GIVEREF(__pyx_t_2);
4453 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
4454 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
4455 __Pyx_GIVEREF(__pyx_v_errno);
4456 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
4457 __pyx_t_2 = 0;
4458 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__4458; goto __pyx_L1_error;}
4459 __Pyx_GOTREF(__pyx_t_1);
4460 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
4461 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4462 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
4463
4464 /* "rados.pyx":386
4465 * class ObjectNotFound(OSError):
4466 * """ `ObjectNotFound` class, derived from `OSError` """
4467 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4468 * super(ObjectNotFound, self).__init__(
4469 * "RADOS object not found (%s)" % message, errno)
4470 */
4471
4472 /* function exit code */
4473 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
4474 goto __pyx_L0;
4475 __pyx_L1_error:;
4476 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
4477 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
4478 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
4479 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
4480 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
4481 __Pyx_AddTraceback("rados.ObjectNotFound.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4482 __pyx_r = NULL((void*)0);
4483 __pyx_L0:;
4484 __Pyx_XGIVEREF(__pyx_r);
4485 __Pyx_RefNannyFinishContext();
4486 return __pyx_r;
4487}
4488
4489/* "rados.pyx":393
4490 * class NoData(OSError):
4491 * """ `NoData` class, derived from `OSError` """
4492 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4493 * super(NoData, self).__init__(
4494 * "RADOS no data (%s)" % message, errno)
4495 */
4496
4497/* Python wrapper */
4498static PyObject *__pyx_pw_5rados_6NoData_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4499static char __pyx_doc_5rados_6NoData___init__[] = "NoData.__init__(self, message, errno=None)";
4500static PyMethodDef __pyx_mdef_5rados_6NoData_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_6NoData_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6NoData___init__};
4501static PyObject *__pyx_pw_5rados_6NoData_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4502 PyObject *__pyx_v_self = 0;
4503 PyObject *__pyx_v_message = 0;
4504 PyObject *__pyx_v_errno = 0;
4505 int __pyx_lineno = 0;
4506 const char *__pyx_filename = NULL((void*)0);
4507 int __pyx_clineno = 0;
4508 PyObject *__pyx_r = 0;
4509 __Pyx_RefNannyDeclarations
4510 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
4511 {
4512 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
4513 PyObject* values[3] = {0,0,0};
4514 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
4515 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
4516 Py_ssize_t kw_args;
4517 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
4518 switch (pos_args) {
4519 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4520 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4521 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4522 case 0: break;
4523 default: goto __pyx_L5_argtuple_error;
4524 }
4525 kw_args = PyDict_Size(__pyx_kwds);
4526 switch (pos_args) {
4527 case 0:
4528 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
4529 else goto __pyx_L5_argtuple_error;
4530 case 1:
4531 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
4532 else {
4533 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__4533; goto __pyx_L3_error;}
4534 }
4535 case 2:
4536 if (kw_args > 0) {
4537 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
4538 if (value) { values[2] = value; kw_args--; }
4539 }
4540 }
4541 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
4542 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__4542; goto __pyx_L3_error;}
4543 }
4544 } else {
4545 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
4546 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4547 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4548 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4549 break;
4550 default: goto __pyx_L5_argtuple_error;
4551 }
4552 }
4553 __pyx_v_self = values[0];
4554 __pyx_v_message = values[1];
4555 __pyx_v_errno = values[2];
4556 }
4557 goto __pyx_L4_argument_unpacking_done;
4558 __pyx_L5_argtuple_error:;
4559 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__4559; goto __pyx_L3_error;}
4560 __pyx_L3_error:;
4561 __Pyx_AddTraceback("rados.NoData.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4562 __Pyx_RefNannyFinishContext();
4563 return NULL((void*)0);
4564 __pyx_L4_argument_unpacking_done:;
4565 __pyx_r = __pyx_pf_5rados_6NoData___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
4566
4567 /* function exit code */
4568 __Pyx_RefNannyFinishContext();
4569 return __pyx_r;
4570}
4571
4572static PyObject *__pyx_pf_5rados_6NoData___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
4573 PyObject *__pyx_r = NULL((void*)0);
4574 __Pyx_RefNannyDeclarations
4575 PyObject *__pyx_t_1 = NULL((void*)0);
4576 PyObject *__pyx_t_2 = NULL((void*)0);
4577 PyObject *__pyx_t_3 = NULL((void*)0);
4578 PyObject *__pyx_t_4 = NULL((void*)0);
4579 Py_ssize_t __pyx_t_5;
4580 PyObject *__pyx_t_6 = NULL((void*)0);
4581 int __pyx_lineno = 0;
4582 const char *__pyx_filename = NULL((void*)0);
4583 int __pyx_clineno = 0;
4584 __Pyx_RefNannySetupContext("__init__", 0);
4585
4586 /* "rados.pyx":394
4587 * """ `NoData` class, derived from `OSError` """
4588 * def __init__(self, message, errno=None):
4589 * super(NoData, self).__init__( # <<<<<<<<<<<<<<
4590 * "RADOS no data (%s)" % message, errno)
4591 *
4592 */
4593 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_NoData); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__4593; goto __pyx_L1_error;}
4594 __Pyx_GOTREF(__pyx_t_2);
4595 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__4595; goto __pyx_L1_error;}
4596 __Pyx_GOTREF(__pyx_t_3);
4597 __Pyx_GIVEREF(__pyx_t_2);
4598 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
4599 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
4600 __Pyx_GIVEREF(__pyx_v_self);
4601 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
4602 __pyx_t_2 = 0;
4603 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__4603; goto __pyx_L1_error;}
4604 __Pyx_GOTREF(__pyx_t_2);
4605 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4606 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__4606; goto __pyx_L1_error;}
4607 __Pyx_GOTREF(__pyx_t_3);
4608 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
4609
4610 /* "rados.pyx":395
4611 * def __init__(self, message, errno=None):
4612 * super(NoData, self).__init__(
4613 * "RADOS no data (%s)" % message, errno) # <<<<<<<<<<<<<<
4614 *
4615 *
4616 */
4617 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_no_data_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_no_data_s, __pyx_v_message); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__4617; goto __pyx_L1_error;}
4618 __Pyx_GOTREF(__pyx_t_2);
4619 __pyx_t_4 = NULL((void*)0);
4620 __pyx_t_5 = 0;
4621 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
4622 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
4623 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
4624 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
4625 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
4626 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
4627 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
4628 __pyx_t_5 = 1;
4629 }
4630 }
4631 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__4631; goto __pyx_L1_error;}
4632 __Pyx_GOTREF(__pyx_t_6);
4633 if (__pyx_t_4) {
4634 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
4635 }
4636 __Pyx_GIVEREF(__pyx_t_2);
4637 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
4638 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
4639 __Pyx_GIVEREF(__pyx_v_errno);
4640 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
4641 __pyx_t_2 = 0;
4642 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__4642; goto __pyx_L1_error;}
4643 __Pyx_GOTREF(__pyx_t_1);
4644 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
4645 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4646 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
4647
4648 /* "rados.pyx":393
4649 * class NoData(OSError):
4650 * """ `NoData` class, derived from `OSError` """
4651 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4652 * super(NoData, self).__init__(
4653 * "RADOS no data (%s)" % message, errno)
4654 */
4655
4656 /* function exit code */
4657 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
4658 goto __pyx_L0;
4659 __pyx_L1_error:;
4660 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
4661 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
4662 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
4663 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
4664 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
4665 __Pyx_AddTraceback("rados.NoData.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4666 __pyx_r = NULL((void*)0);
4667 __pyx_L0:;
4668 __Pyx_XGIVEREF(__pyx_r);
4669 __Pyx_RefNannyFinishContext();
4670 return __pyx_r;
4671}
4672
4673/* "rados.pyx":400
4674 * class ObjectExists(OSError):
4675 * """ `ObjectExists` class, derived from `OSError` """
4676 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4677 * super(ObjectExists, self).__init__(
4678 * "RADOS object exists (%s)" % message, errno)
4679 */
4680
4681/* Python wrapper */
4682static PyObject *__pyx_pw_5rados_12ObjectExists_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4683static char __pyx_doc_5rados_12ObjectExists___init__[] = "ObjectExists.__init__(self, message, errno=None)";
4684static PyMethodDef __pyx_mdef_5rados_12ObjectExists_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_12ObjectExists_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_12ObjectExists___init__};
4685static PyObject *__pyx_pw_5rados_12ObjectExists_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4686 PyObject *__pyx_v_self = 0;
4687 PyObject *__pyx_v_message = 0;
4688 PyObject *__pyx_v_errno = 0;
4689 int __pyx_lineno = 0;
4690 const char *__pyx_filename = NULL((void*)0);
4691 int __pyx_clineno = 0;
4692 PyObject *__pyx_r = 0;
4693 __Pyx_RefNannyDeclarations
4694 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
4695 {
4696 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
4697 PyObject* values[3] = {0,0,0};
4698 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
4699 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
4700 Py_ssize_t kw_args;
4701 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
4702 switch (pos_args) {
4703 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4704 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4705 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4706 case 0: break;
4707 default: goto __pyx_L5_argtuple_error;
4708 }
4709 kw_args = PyDict_Size(__pyx_kwds);
4710 switch (pos_args) {
4711 case 0:
4712 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
4713 else goto __pyx_L5_argtuple_error;
4714 case 1:
4715 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
4716 else {
4717 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__4717; goto __pyx_L3_error;}
4718 }
4719 case 2:
4720 if (kw_args > 0) {
4721 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
4722 if (value) { values[2] = value; kw_args--; }
4723 }
4724 }
4725 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
4726 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__4726; goto __pyx_L3_error;}
4727 }
4728 } else {
4729 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
4730 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4731 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4732 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4733 break;
4734 default: goto __pyx_L5_argtuple_error;
4735 }
4736 }
4737 __pyx_v_self = values[0];
4738 __pyx_v_message = values[1];
4739 __pyx_v_errno = values[2];
4740 }
4741 goto __pyx_L4_argument_unpacking_done;
4742 __pyx_L5_argtuple_error:;
4743 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__4743; goto __pyx_L3_error;}
4744 __pyx_L3_error:;
4745 __Pyx_AddTraceback("rados.ObjectExists.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4746 __Pyx_RefNannyFinishContext();
4747 return NULL((void*)0);
4748 __pyx_L4_argument_unpacking_done:;
4749 __pyx_r = __pyx_pf_5rados_12ObjectExists___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
4750
4751 /* function exit code */
4752 __Pyx_RefNannyFinishContext();
4753 return __pyx_r;
4754}
4755
4756static PyObject *__pyx_pf_5rados_12ObjectExists___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
4757 PyObject *__pyx_r = NULL((void*)0);
4758 __Pyx_RefNannyDeclarations
4759 PyObject *__pyx_t_1 = NULL((void*)0);
4760 PyObject *__pyx_t_2 = NULL((void*)0);
4761 PyObject *__pyx_t_3 = NULL((void*)0);
4762 PyObject *__pyx_t_4 = NULL((void*)0);
4763 Py_ssize_t __pyx_t_5;
4764 PyObject *__pyx_t_6 = NULL((void*)0);
4765 int __pyx_lineno = 0;
4766 const char *__pyx_filename = NULL((void*)0);
4767 int __pyx_clineno = 0;
4768 __Pyx_RefNannySetupContext("__init__", 0);
4769
4770 /* "rados.pyx":401
4771 * """ `ObjectExists` class, derived from `OSError` """
4772 * def __init__(self, message, errno=None):
4773 * super(ObjectExists, self).__init__( # <<<<<<<<<<<<<<
4774 * "RADOS object exists (%s)" % message, errno)
4775 *
4776 */
4777 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectExists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__4777; goto __pyx_L1_error;}
4778 __Pyx_GOTREF(__pyx_t_2);
4779 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__4779; goto __pyx_L1_error;}
4780 __Pyx_GOTREF(__pyx_t_3);
4781 __Pyx_GIVEREF(__pyx_t_2);
4782 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
4783 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
4784 __Pyx_GIVEREF(__pyx_v_self);
4785 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
4786 __pyx_t_2 = 0;
4787 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__4787; goto __pyx_L1_error;}
4788 __Pyx_GOTREF(__pyx_t_2);
4789 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4790 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__4790; goto __pyx_L1_error;}
4791 __Pyx_GOTREF(__pyx_t_3);
4792 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
4793
4794 /* "rados.pyx":402
4795 * def __init__(self, message, errno=None):
4796 * super(ObjectExists, self).__init__(
4797 * "RADOS object exists (%s)" % message, errno) # <<<<<<<<<<<<<<
4798 *
4799 *
4800 */
4801 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_object_exists_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_object_exists_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__4801; goto __pyx_L1_error;}
4802 __Pyx_GOTREF(__pyx_t_2);
4803 __pyx_t_4 = NULL((void*)0);
4804 __pyx_t_5 = 0;
4805 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
4806 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
4807 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
4808 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
4809 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
4810 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
4811 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
4812 __pyx_t_5 = 1;
4813 }
4814 }
4815 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__4815; goto __pyx_L1_error;}
4816 __Pyx_GOTREF(__pyx_t_6);
4817 if (__pyx_t_4) {
4818 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
4819 }
4820 __Pyx_GIVEREF(__pyx_t_2);
4821 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
4822 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
4823 __Pyx_GIVEREF(__pyx_v_errno);
4824 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
4825 __pyx_t_2 = 0;
4826 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__4826; goto __pyx_L1_error;}
4827 __Pyx_GOTREF(__pyx_t_1);
4828 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
4829 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4830 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
4831
4832 /* "rados.pyx":400
4833 * class ObjectExists(OSError):
4834 * """ `ObjectExists` class, derived from `OSError` """
4835 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4836 * super(ObjectExists, self).__init__(
4837 * "RADOS object exists (%s)" % message, errno)
4838 */
4839
4840 /* function exit code */
4841 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
4842 goto __pyx_L0;
4843 __pyx_L1_error:;
4844 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
4845 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
4846 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
4847 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
4848 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
4849 __Pyx_AddTraceback("rados.ObjectExists.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4850 __pyx_r = NULL((void*)0);
4851 __pyx_L0:;
4852 __Pyx_XGIVEREF(__pyx_r);
4853 __Pyx_RefNannyFinishContext();
4854 return __pyx_r;
4855}
4856
4857/* "rados.pyx":407
4858 * class ObjectBusy(OSError):
4859 * """ `ObjectBusy` class, derived from `IOError` """
4860 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
4861 * super(ObjectBusy, self).__init__(
4862 * "RADOS object busy (%s)" % message, errno)
4863 */
4864
4865/* Python wrapper */
4866static PyObject *__pyx_pw_5rados_10ObjectBusy_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4867static char __pyx_doc_5rados_10ObjectBusy___init__[] = "ObjectBusy.__init__(self, message, errno=None)";
4868static PyMethodDef __pyx_mdef_5rados_10ObjectBusy_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_10ObjectBusy_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_10ObjectBusy___init__};
4869static PyObject *__pyx_pw_5rados_10ObjectBusy_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4870 PyObject *__pyx_v_self = 0;
4871 PyObject *__pyx_v_message = 0;
4872 PyObject *__pyx_v_errno = 0;
4873 int __pyx_lineno = 0;
4874 const char *__pyx_filename = NULL((void*)0);
4875 int __pyx_clineno = 0;
4876 PyObject *__pyx_r = 0;
4877 __Pyx_RefNannyDeclarations
4878 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
4879 {
4880 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
4881 PyObject* values[3] = {0,0,0};
4882 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
4883 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
4884 Py_ssize_t kw_args;
4885 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
4886 switch (pos_args) {
4887 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4888 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4889 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4890 case 0: break;
4891 default: goto __pyx_L5_argtuple_error;
4892 }
4893 kw_args = PyDict_Size(__pyx_kwds);
4894 switch (pos_args) {
4895 case 0:
4896 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
4897 else goto __pyx_L5_argtuple_error;
4898 case 1:
4899 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
4900 else {
4901 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__4901; goto __pyx_L3_error;}
4902 }
4903 case 2:
4904 if (kw_args > 0) {
4905 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
4906 if (value) { values[2] = value; kw_args--; }
4907 }
4908 }
4909 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
4910 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__4910; goto __pyx_L3_error;}
4911 }
4912 } else {
4913 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
4914 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
4915 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
4916 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
4917 break;
4918 default: goto __pyx_L5_argtuple_error;
4919 }
4920 }
4921 __pyx_v_self = values[0];
4922 __pyx_v_message = values[1];
4923 __pyx_v_errno = values[2];
4924 }
4925 goto __pyx_L4_argument_unpacking_done;
4926 __pyx_L5_argtuple_error:;
4927 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__4927; goto __pyx_L3_error;}
4928 __pyx_L3_error:;
4929 __Pyx_AddTraceback("rados.ObjectBusy.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4930 __Pyx_RefNannyFinishContext();
4931 return NULL((void*)0);
4932 __pyx_L4_argument_unpacking_done:;
4933 __pyx_r = __pyx_pf_5rados_10ObjectBusy___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
4934
4935 /* function exit code */
4936 __Pyx_RefNannyFinishContext();
4937 return __pyx_r;
4938}
4939
4940static PyObject *__pyx_pf_5rados_10ObjectBusy___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
4941 PyObject *__pyx_r = NULL((void*)0);
4942 __Pyx_RefNannyDeclarations
4943 PyObject *__pyx_t_1 = NULL((void*)0);
4944 PyObject *__pyx_t_2 = NULL((void*)0);
4945 PyObject *__pyx_t_3 = NULL((void*)0);
4946 PyObject *__pyx_t_4 = NULL((void*)0);
4947 Py_ssize_t __pyx_t_5;
4948 PyObject *__pyx_t_6 = NULL((void*)0);
4949 int __pyx_lineno = 0;
4950 const char *__pyx_filename = NULL((void*)0);
4951 int __pyx_clineno = 0;
4952 __Pyx_RefNannySetupContext("__init__", 0);
4953
4954 /* "rados.pyx":408
4955 * """ `ObjectBusy` class, derived from `IOError` """
4956 * def __init__(self, message, errno=None):
4957 * super(ObjectBusy, self).__init__( # <<<<<<<<<<<<<<
4958 * "RADOS object busy (%s)" % message, errno)
4959 *
4960 */
4961 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectBusy); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__4961; goto __pyx_L1_error;}
4962 __Pyx_GOTREF(__pyx_t_2);
4963 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__4963; goto __pyx_L1_error;}
4964 __Pyx_GOTREF(__pyx_t_3);
4965 __Pyx_GIVEREF(__pyx_t_2);
4966 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
4967 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
4968 __Pyx_GIVEREF(__pyx_v_self);
4969 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
4970 __pyx_t_2 = 0;
4971 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__4971; goto __pyx_L1_error;}
4972 __Pyx_GOTREF(__pyx_t_2);
4973 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
4974 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__4974; goto __pyx_L1_error;}
4975 __Pyx_GOTREF(__pyx_t_3);
4976 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
4977
4978 /* "rados.pyx":409
4979 * def __init__(self, message, errno=None):
4980 * super(ObjectBusy, self).__init__(
4981 * "RADOS object busy (%s)" % message, errno) # <<<<<<<<<<<<<<
4982 *
4983 *
4984 */
4985 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_object_busy_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_object_busy_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__4985; goto __pyx_L1_error;}
4986 __Pyx_GOTREF(__pyx_t_2);
4987 __pyx_t_4 = NULL((void*)0);
4988 __pyx_t_5 = 0;
4989 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
4990 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
4991 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
4992 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
4993 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
4994 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
4995 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
4996 __pyx_t_5 = 1;
4997 }
4998 }
4999 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__4999; goto __pyx_L1_error;}
5000 __Pyx_GOTREF(__pyx_t_6);
5001 if (__pyx_t_4) {
5002 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
5003 }
5004 __Pyx_GIVEREF(__pyx_t_2);
5005 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
5006 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
5007 __Pyx_GIVEREF(__pyx_v_errno);
5008 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
5009 __pyx_t_2 = 0;
5010 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 408; __pyx_clineno = __LINE__5010; goto __pyx_L1_error;}
5011 __Pyx_GOTREF(__pyx_t_1);
5012 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
5013 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5014 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
5015
5016 /* "rados.pyx":407
5017 * class ObjectBusy(OSError):
5018 * """ `ObjectBusy` class, derived from `IOError` """
5019 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5020 * super(ObjectBusy, self).__init__(
5021 * "RADOS object busy (%s)" % message, errno)
5022 */
5023
5024 /* function exit code */
5025 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
5026 goto __pyx_L0;
5027 __pyx_L1_error:;
5028 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
5029 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
5030 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
5031 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
5032 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
5033 __Pyx_AddTraceback("rados.ObjectBusy.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5034 __pyx_r = NULL((void*)0);
5035 __pyx_L0:;
5036 __Pyx_XGIVEREF(__pyx_r);
5037 __Pyx_RefNannyFinishContext();
5038 return __pyx_r;
5039}
5040
5041/* "rados.pyx":414
5042 * class IOError(OSError):
5043 * """ `ObjectBusy` class, derived from `OSError` """
5044 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5045 * super(IOError, self).__init__(
5046 * "RADOS I/O error (%s)" % message, errno)
5047 */
5048
5049/* Python wrapper */
5050static PyObject *__pyx_pw_5rados_7IOError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5051static char __pyx_doc_5rados_7IOError___init__[] = "IOError.__init__(self, message, errno=None)";
5052static PyMethodDef __pyx_mdef_5rados_7IOError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_7IOError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_7IOError___init__};
5053static PyObject *__pyx_pw_5rados_7IOError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5054 PyObject *__pyx_v_self = 0;
5055 PyObject *__pyx_v_message = 0;
5056 PyObject *__pyx_v_errno = 0;
5057 int __pyx_lineno = 0;
5058 const char *__pyx_filename = NULL((void*)0);
5059 int __pyx_clineno = 0;
5060 PyObject *__pyx_r = 0;
5061 __Pyx_RefNannyDeclarations
5062 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5063 {
5064 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
5065 PyObject* values[3] = {0,0,0};
5066 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
5067 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
5068 Py_ssize_t kw_args;
5069 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
5070 switch (pos_args) {
5071 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5072 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5073 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5074 case 0: break;
5075 default: goto __pyx_L5_argtuple_error;
5076 }
5077 kw_args = PyDict_Size(__pyx_kwds);
5078 switch (pos_args) {
5079 case 0:
5080 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
5081 else goto __pyx_L5_argtuple_error;
5082 case 1:
5083 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
5084 else {
5085 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__5085; goto __pyx_L3_error;}
5086 }
5087 case 2:
5088 if (kw_args > 0) {
5089 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
5090 if (value) { values[2] = value; kw_args--; }
5091 }
5092 }
5093 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
5094 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__5094; goto __pyx_L3_error;}
5095 }
5096 } else {
5097 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
5098 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5099 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5100 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5101 break;
5102 default: goto __pyx_L5_argtuple_error;
5103 }
5104 }
5105 __pyx_v_self = values[0];
5106 __pyx_v_message = values[1];
5107 __pyx_v_errno = values[2];
5108 }
5109 goto __pyx_L4_argument_unpacking_done;
5110 __pyx_L5_argtuple_error:;
5111 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__5111; goto __pyx_L3_error;}
5112 __pyx_L3_error:;
5113 __Pyx_AddTraceback("rados.IOError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5114 __Pyx_RefNannyFinishContext();
5115 return NULL((void*)0);
5116 __pyx_L4_argument_unpacking_done:;
5117 __pyx_r = __pyx_pf_5rados_7IOError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
5118
5119 /* function exit code */
5120 __Pyx_RefNannyFinishContext();
5121 return __pyx_r;
5122}
5123
5124static PyObject *__pyx_pf_5rados_7IOError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
5125 PyObject *__pyx_r = NULL((void*)0);
5126 __Pyx_RefNannyDeclarations
5127 PyObject *__pyx_t_1 = NULL((void*)0);
5128 PyObject *__pyx_t_2 = NULL((void*)0);
5129 PyObject *__pyx_t_3 = NULL((void*)0);
5130 PyObject *__pyx_t_4 = NULL((void*)0);
5131 Py_ssize_t __pyx_t_5;
5132 PyObject *__pyx_t_6 = NULL((void*)0);
5133 int __pyx_lineno = 0;
5134 const char *__pyx_filename = NULL((void*)0);
5135 int __pyx_clineno = 0;
5136 __Pyx_RefNannySetupContext("__init__", 0);
5137
5138 /* "rados.pyx":415
5139 * """ `ObjectBusy` class, derived from `OSError` """
5140 * def __init__(self, message, errno=None):
5141 * super(IOError, self).__init__( # <<<<<<<<<<<<<<
5142 * "RADOS I/O error (%s)" % message, errno)
5143 *
5144 */
5145 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_IOError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__5145; goto __pyx_L1_error;}
5146 __Pyx_GOTREF(__pyx_t_2);
5147 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__5147; goto __pyx_L1_error;}
5148 __Pyx_GOTREF(__pyx_t_3);
5149 __Pyx_GIVEREF(__pyx_t_2);
5150 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
5151 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
5152 __Pyx_GIVEREF(__pyx_v_self);
5153 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
5154 __pyx_t_2 = 0;
5155 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__5155; goto __pyx_L1_error;}
5156 __Pyx_GOTREF(__pyx_t_2);
5157 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5158 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__5158; goto __pyx_L1_error;}
5159 __Pyx_GOTREF(__pyx_t_3);
5160 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
5161
5162 /* "rados.pyx":416
5163 * def __init__(self, message, errno=None):
5164 * super(IOError, self).__init__(
5165 * "RADOS I/O error (%s)" % message, errno) # <<<<<<<<<<<<<<
5166 *
5167 *
5168 */
5169 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_I_O_error_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_I_O_error_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__5169; goto __pyx_L1_error;}
5170 __Pyx_GOTREF(__pyx_t_2);
5171 __pyx_t_4 = NULL((void*)0);
5172 __pyx_t_5 = 0;
5173 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
5174 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
5175 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
5176 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
5177 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
5178 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
5179 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
5180 __pyx_t_5 = 1;
5181 }
5182 }
5183 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__5183; goto __pyx_L1_error;}
5184 __Pyx_GOTREF(__pyx_t_6);
5185 if (__pyx_t_4) {
5186 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
5187 }
5188 __Pyx_GIVEREF(__pyx_t_2);
5189 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
5190 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
5191 __Pyx_GIVEREF(__pyx_v_errno);
5192 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
5193 __pyx_t_2 = 0;
5194 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__5194; goto __pyx_L1_error;}
5195 __Pyx_GOTREF(__pyx_t_1);
5196 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
5197 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5198 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
5199
5200 /* "rados.pyx":414
5201 * class IOError(OSError):
5202 * """ `ObjectBusy` class, derived from `OSError` """
5203 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5204 * super(IOError, self).__init__(
5205 * "RADOS I/O error (%s)" % message, errno)
5206 */
5207
5208 /* function exit code */
5209 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
5210 goto __pyx_L0;
5211 __pyx_L1_error:;
5212 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
5213 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
5214 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
5215 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
5216 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
5217 __Pyx_AddTraceback("rados.IOError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5218 __pyx_r = NULL((void*)0);
5219 __pyx_L0:;
5220 __Pyx_XGIVEREF(__pyx_r);
5221 __Pyx_RefNannyFinishContext();
5222 return __pyx_r;
5223}
5224
5225/* "rados.pyx":421
5226 * class NoSpace(OSError):
5227 * """ `NoSpace` class, derived from `OSError` """
5228 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5229 * super(NoSpace, self).__init__(
5230 * "RADOS no space (%s)" % message, errno)
5231 */
5232
5233/* Python wrapper */
5234static PyObject *__pyx_pw_5rados_7NoSpace_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5235static char __pyx_doc_5rados_7NoSpace___init__[] = "NoSpace.__init__(self, message, errno=None)";
5236static PyMethodDef __pyx_mdef_5rados_7NoSpace_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_7NoSpace_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_7NoSpace___init__};
5237static PyObject *__pyx_pw_5rados_7NoSpace_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5238 PyObject *__pyx_v_self = 0;
5239 PyObject *__pyx_v_message = 0;
5240 PyObject *__pyx_v_errno = 0;
5241 int __pyx_lineno = 0;
5242 const char *__pyx_filename = NULL((void*)0);
5243 int __pyx_clineno = 0;
5244 PyObject *__pyx_r = 0;
5245 __Pyx_RefNannyDeclarations
5246 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5247 {
5248 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
5249 PyObject* values[3] = {0,0,0};
5250 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
5251 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
5252 Py_ssize_t kw_args;
5253 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
5254 switch (pos_args) {
5255 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5256 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5257 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5258 case 0: break;
5259 default: goto __pyx_L5_argtuple_error;
5260 }
5261 kw_args = PyDict_Size(__pyx_kwds);
5262 switch (pos_args) {
5263 case 0:
5264 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
5265 else goto __pyx_L5_argtuple_error;
5266 case 1:
5267 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
5268 else {
5269 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__5269; goto __pyx_L3_error;}
5270 }
5271 case 2:
5272 if (kw_args > 0) {
5273 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
5274 if (value) { values[2] = value; kw_args--; }
5275 }
5276 }
5277 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
5278 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__5278; goto __pyx_L3_error;}
5279 }
5280 } else {
5281 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
5282 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5283 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5284 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5285 break;
5286 default: goto __pyx_L5_argtuple_error;
5287 }
5288 }
5289 __pyx_v_self = values[0];
5290 __pyx_v_message = values[1];
5291 __pyx_v_errno = values[2];
5292 }
5293 goto __pyx_L4_argument_unpacking_done;
5294 __pyx_L5_argtuple_error:;
5295 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__5295; goto __pyx_L3_error;}
5296 __pyx_L3_error:;
5297 __Pyx_AddTraceback("rados.NoSpace.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5298 __Pyx_RefNannyFinishContext();
5299 return NULL((void*)0);
5300 __pyx_L4_argument_unpacking_done:;
5301 __pyx_r = __pyx_pf_5rados_7NoSpace___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
5302
5303 /* function exit code */
5304 __Pyx_RefNannyFinishContext();
5305 return __pyx_r;
5306}
5307
5308static PyObject *__pyx_pf_5rados_7NoSpace___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
5309 PyObject *__pyx_r = NULL((void*)0);
5310 __Pyx_RefNannyDeclarations
5311 PyObject *__pyx_t_1 = NULL((void*)0);
5312 PyObject *__pyx_t_2 = NULL((void*)0);
5313 PyObject *__pyx_t_3 = NULL((void*)0);
5314 PyObject *__pyx_t_4 = NULL((void*)0);
5315 Py_ssize_t __pyx_t_5;
5316 PyObject *__pyx_t_6 = NULL((void*)0);
5317 int __pyx_lineno = 0;
5318 const char *__pyx_filename = NULL((void*)0);
5319 int __pyx_clineno = 0;
5320 __Pyx_RefNannySetupContext("__init__", 0);
5321
5322 /* "rados.pyx":422
5323 * """ `NoSpace` class, derived from `OSError` """
5324 * def __init__(self, message, errno=None):
5325 * super(NoSpace, self).__init__( # <<<<<<<<<<<<<<
5326 * "RADOS no space (%s)" % message, errno)
5327 *
5328 */
5329 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_NoSpace); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__5329; goto __pyx_L1_error;}
5330 __Pyx_GOTREF(__pyx_t_2);
5331 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__5331; goto __pyx_L1_error;}
5332 __Pyx_GOTREF(__pyx_t_3);
5333 __Pyx_GIVEREF(__pyx_t_2);
5334 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
5335 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
5336 __Pyx_GIVEREF(__pyx_v_self);
5337 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
5338 __pyx_t_2 = 0;
5339 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__5339; goto __pyx_L1_error;}
5340 __Pyx_GOTREF(__pyx_t_2);
5341 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5342 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__5342; goto __pyx_L1_error;}
5343 __Pyx_GOTREF(__pyx_t_3);
5344 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
5345
5346 /* "rados.pyx":423
5347 * def __init__(self, message, errno=None):
5348 * super(NoSpace, self).__init__(
5349 * "RADOS no space (%s)" % message, errno) # <<<<<<<<<<<<<<
5350 *
5351 *
5352 */
5353 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_no_space_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_no_space_s, __pyx_v_message); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__5353; goto __pyx_L1_error;}
5354 __Pyx_GOTREF(__pyx_t_2);
5355 __pyx_t_4 = NULL((void*)0);
5356 __pyx_t_5 = 0;
5357 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
5358 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
5359 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
5360 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
5361 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
5362 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
5363 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
5364 __pyx_t_5 = 1;
5365 }
5366 }
5367 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__5367; goto __pyx_L1_error;}
5368 __Pyx_GOTREF(__pyx_t_6);
5369 if (__pyx_t_4) {
5370 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
5371 }
5372 __Pyx_GIVEREF(__pyx_t_2);
5373 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
5374 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
5375 __Pyx_GIVEREF(__pyx_v_errno);
5376 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
5377 __pyx_t_2 = 0;
5378 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__5378; goto __pyx_L1_error;}
5379 __Pyx_GOTREF(__pyx_t_1);
5380 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
5381 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5382 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
5383
5384 /* "rados.pyx":421
5385 * class NoSpace(OSError):
5386 * """ `NoSpace` class, derived from `OSError` """
5387 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5388 * super(NoSpace, self).__init__(
5389 * "RADOS no space (%s)" % message, errno)
5390 */
5391
5392 /* function exit code */
5393 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
5394 goto __pyx_L0;
5395 __pyx_L1_error:;
5396 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
5397 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
5398 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
5399 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
5400 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
5401 __Pyx_AddTraceback("rados.NoSpace.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5402 __pyx_r = NULL((void*)0);
5403 __pyx_L0:;
5404 __Pyx_XGIVEREF(__pyx_r);
5405 __Pyx_RefNannyFinishContext();
5406 return __pyx_r;
5407}
5408
5409/* "rados.pyx":428
5410 * class RadosStateError(Error):
5411 * """ `RadosStateError` class, derived from `Error` """
5412 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5413 * super(RadosStateError, self).__init__(
5414 * "RADOS rados state (%s)" % message, errno)
5415 */
5416
5417/* Python wrapper */
5418static PyObject *__pyx_pw_5rados_15RadosStateError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5419static char __pyx_doc_5rados_15RadosStateError___init__[] = "RadosStateError.__init__(self, message, errno=None)";
5420static PyMethodDef __pyx_mdef_5rados_15RadosStateError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_15RadosStateError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_15RadosStateError___init__};
5421static PyObject *__pyx_pw_5rados_15RadosStateError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5422 PyObject *__pyx_v_self = 0;
5423 PyObject *__pyx_v_message = 0;
5424 PyObject *__pyx_v_errno = 0;
5425 int __pyx_lineno = 0;
5426 const char *__pyx_filename = NULL((void*)0);
5427 int __pyx_clineno = 0;
5428 PyObject *__pyx_r = 0;
5429 __Pyx_RefNannyDeclarations
5430 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5431 {
5432 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
5433 PyObject* values[3] = {0,0,0};
5434 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
5435 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
5436 Py_ssize_t kw_args;
5437 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
5438 switch (pos_args) {
5439 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5440 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5441 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5442 case 0: break;
5443 default: goto __pyx_L5_argtuple_error;
5444 }
5445 kw_args = PyDict_Size(__pyx_kwds);
5446 switch (pos_args) {
5447 case 0:
5448 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
5449 else goto __pyx_L5_argtuple_error;
5450 case 1:
5451 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
5452 else {
5453 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__5453; goto __pyx_L3_error;}
5454 }
5455 case 2:
5456 if (kw_args > 0) {
5457 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
5458 if (value) { values[2] = value; kw_args--; }
5459 }
5460 }
5461 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
5462 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__5462; goto __pyx_L3_error;}
5463 }
5464 } else {
5465 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
5466 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5467 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5468 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5469 break;
5470 default: goto __pyx_L5_argtuple_error;
5471 }
5472 }
5473 __pyx_v_self = values[0];
5474 __pyx_v_message = values[1];
5475 __pyx_v_errno = values[2];
5476 }
5477 goto __pyx_L4_argument_unpacking_done;
5478 __pyx_L5_argtuple_error:;
5479 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__5479; goto __pyx_L3_error;}
5480 __pyx_L3_error:;
5481 __Pyx_AddTraceback("rados.RadosStateError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5482 __Pyx_RefNannyFinishContext();
5483 return NULL((void*)0);
5484 __pyx_L4_argument_unpacking_done:;
5485 __pyx_r = __pyx_pf_5rados_15RadosStateError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
5486
5487 /* function exit code */
5488 __Pyx_RefNannyFinishContext();
5489 return __pyx_r;
5490}
5491
5492static PyObject *__pyx_pf_5rados_15RadosStateError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
5493 PyObject *__pyx_r = NULL((void*)0);
5494 __Pyx_RefNannyDeclarations
5495 PyObject *__pyx_t_1 = NULL((void*)0);
5496 PyObject *__pyx_t_2 = NULL((void*)0);
5497 PyObject *__pyx_t_3 = NULL((void*)0);
5498 PyObject *__pyx_t_4 = NULL((void*)0);
5499 Py_ssize_t __pyx_t_5;
5500 PyObject *__pyx_t_6 = NULL((void*)0);
5501 int __pyx_lineno = 0;
5502 const char *__pyx_filename = NULL((void*)0);
5503 int __pyx_clineno = 0;
5504 __Pyx_RefNannySetupContext("__init__", 0);
5505
5506 /* "rados.pyx":429
5507 * """ `RadosStateError` class, derived from `Error` """
5508 * def __init__(self, message, errno=None):
5509 * super(RadosStateError, self).__init__( # <<<<<<<<<<<<<<
5510 * "RADOS rados state (%s)" % message, errno)
5511 *
5512 */
5513 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_RadosStateError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__5513; goto __pyx_L1_error;}
5514 __Pyx_GOTREF(__pyx_t_2);
5515 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__5515; goto __pyx_L1_error;}
5516 __Pyx_GOTREF(__pyx_t_3);
5517 __Pyx_GIVEREF(__pyx_t_2);
5518 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
5519 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
5520 __Pyx_GIVEREF(__pyx_v_self);
5521 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
5522 __pyx_t_2 = 0;
5523 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__5523; goto __pyx_L1_error;}
5524 __Pyx_GOTREF(__pyx_t_2);
5525 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5526 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__5526; goto __pyx_L1_error;}
5527 __Pyx_GOTREF(__pyx_t_3);
5528 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
5529
5530 /* "rados.pyx":430
5531 * def __init__(self, message, errno=None):
5532 * super(RadosStateError, self).__init__(
5533 * "RADOS rados state (%s)" % message, errno) # <<<<<<<<<<<<<<
5534 *
5535 *
5536 */
5537 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_rados_state_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_rados_state_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__5537; goto __pyx_L1_error;}
5538 __Pyx_GOTREF(__pyx_t_2);
5539 __pyx_t_4 = NULL((void*)0);
5540 __pyx_t_5 = 0;
5541 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
5542 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
5543 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
5544 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
5545 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
5546 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
5547 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
5548 __pyx_t_5 = 1;
5549 }
5550 }
5551 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__5551; goto __pyx_L1_error;}
5552 __Pyx_GOTREF(__pyx_t_6);
5553 if (__pyx_t_4) {
5554 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
5555 }
5556 __Pyx_GIVEREF(__pyx_t_2);
5557 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
5558 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
5559 __Pyx_GIVEREF(__pyx_v_errno);
5560 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
5561 __pyx_t_2 = 0;
5562 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__5562; goto __pyx_L1_error;}
5563 __Pyx_GOTREF(__pyx_t_1);
5564 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
5565 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5566 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
5567
5568 /* "rados.pyx":428
5569 * class RadosStateError(Error):
5570 * """ `RadosStateError` class, derived from `Error` """
5571 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5572 * super(RadosStateError, self).__init__(
5573 * "RADOS rados state (%s)" % message, errno)
5574 */
5575
5576 /* function exit code */
5577 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
5578 goto __pyx_L0;
5579 __pyx_L1_error:;
5580 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
5581 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
5582 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
5583 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
5584 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
5585 __Pyx_AddTraceback("rados.RadosStateError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5586 __pyx_r = NULL((void*)0);
5587 __pyx_L0:;
5588 __Pyx_XGIVEREF(__pyx_r);
5589 __Pyx_RefNannyFinishContext();
5590 return __pyx_r;
5591}
5592
5593/* "rados.pyx":435
5594 * class IoctxStateError(Error):
5595 * """ `IoctxStateError` class, derived from `Error` """
5596 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5597 * super(IoctxStateError, self).__init__(
5598 * "RADOS Ioctx state error (%s)" % message, errno)
5599 */
5600
5601/* Python wrapper */
5602static PyObject *__pyx_pw_5rados_15IoctxStateError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5603static char __pyx_doc_5rados_15IoctxStateError___init__[] = "IoctxStateError.__init__(self, message, errno=None)";
5604static PyMethodDef __pyx_mdef_5rados_15IoctxStateError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_15IoctxStateError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_15IoctxStateError___init__};
5605static PyObject *__pyx_pw_5rados_15IoctxStateError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5606 PyObject *__pyx_v_self = 0;
5607 PyObject *__pyx_v_message = 0;
5608 PyObject *__pyx_v_errno = 0;
5609 int __pyx_lineno = 0;
5610 const char *__pyx_filename = NULL((void*)0);
5611 int __pyx_clineno = 0;
5612 PyObject *__pyx_r = 0;
5613 __Pyx_RefNannyDeclarations
5614 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5615 {
5616 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
5617 PyObject* values[3] = {0,0,0};
5618 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
5619 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
5620 Py_ssize_t kw_args;
5621 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
5622 switch (pos_args) {
5623 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5624 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5625 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5626 case 0: break;
5627 default: goto __pyx_L5_argtuple_error;
5628 }
5629 kw_args = PyDict_Size(__pyx_kwds);
5630 switch (pos_args) {
5631 case 0:
5632 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
5633 else goto __pyx_L5_argtuple_error;
5634 case 1:
5635 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
5636 else {
5637 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__5637; goto __pyx_L3_error;}
5638 }
5639 case 2:
5640 if (kw_args > 0) {
5641 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
5642 if (value) { values[2] = value; kw_args--; }
5643 }
5644 }
5645 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
5646 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__5646; goto __pyx_L3_error;}
5647 }
5648 } else {
5649 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
5650 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5651 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5652 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5653 break;
5654 default: goto __pyx_L5_argtuple_error;
5655 }
5656 }
5657 __pyx_v_self = values[0];
5658 __pyx_v_message = values[1];
5659 __pyx_v_errno = values[2];
5660 }
5661 goto __pyx_L4_argument_unpacking_done;
5662 __pyx_L5_argtuple_error:;
5663 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__5663; goto __pyx_L3_error;}
5664 __pyx_L3_error:;
5665 __Pyx_AddTraceback("rados.IoctxStateError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5666 __Pyx_RefNannyFinishContext();
5667 return NULL((void*)0);
5668 __pyx_L4_argument_unpacking_done:;
5669 __pyx_r = __pyx_pf_5rados_15IoctxStateError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
5670
5671 /* function exit code */
5672 __Pyx_RefNannyFinishContext();
5673 return __pyx_r;
5674}
5675
5676static PyObject *__pyx_pf_5rados_15IoctxStateError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
5677 PyObject *__pyx_r = NULL((void*)0);
5678 __Pyx_RefNannyDeclarations
5679 PyObject *__pyx_t_1 = NULL((void*)0);
5680 PyObject *__pyx_t_2 = NULL((void*)0);
5681 PyObject *__pyx_t_3 = NULL((void*)0);
5682 PyObject *__pyx_t_4 = NULL((void*)0);
5683 Py_ssize_t __pyx_t_5;
5684 PyObject *__pyx_t_6 = NULL((void*)0);
5685 int __pyx_lineno = 0;
5686 const char *__pyx_filename = NULL((void*)0);
5687 int __pyx_clineno = 0;
5688 __Pyx_RefNannySetupContext("__init__", 0);
5689
5690 /* "rados.pyx":436
5691 * """ `IoctxStateError` class, derived from `Error` """
5692 * def __init__(self, message, errno=None):
5693 * super(IoctxStateError, self).__init__( # <<<<<<<<<<<<<<
5694 * "RADOS Ioctx state error (%s)" % message, errno)
5695 *
5696 */
5697 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_IoctxStateError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__5697; goto __pyx_L1_error;}
5698 __Pyx_GOTREF(__pyx_t_2);
5699 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__5699; goto __pyx_L1_error;}
5700 __Pyx_GOTREF(__pyx_t_3);
5701 __Pyx_GIVEREF(__pyx_t_2);
5702 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
5703 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
5704 __Pyx_GIVEREF(__pyx_v_self);
5705 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
5706 __pyx_t_2 = 0;
5707 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__5707; goto __pyx_L1_error;}
5708 __Pyx_GOTREF(__pyx_t_2);
5709 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5710 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__5710; goto __pyx_L1_error;}
5711 __Pyx_GOTREF(__pyx_t_3);
5712 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
5713
5714 /* "rados.pyx":437
5715 * def __init__(self, message, errno=None):
5716 * super(IoctxStateError, self).__init__(
5717 * "RADOS Ioctx state error (%s)" % message, errno) # <<<<<<<<<<<<<<
5718 *
5719 *
5720 */
5721 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_Ioctx_state_error_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_Ioctx_state_error_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__5721; goto __pyx_L1_error;}
5722 __Pyx_GOTREF(__pyx_t_2);
5723 __pyx_t_4 = NULL((void*)0);
5724 __pyx_t_5 = 0;
5725 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
5726 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
5727 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
5728 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
5729 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
5730 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
5731 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
5732 __pyx_t_5 = 1;
5733 }
5734 }
5735 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__5735; goto __pyx_L1_error;}
5736 __Pyx_GOTREF(__pyx_t_6);
5737 if (__pyx_t_4) {
5738 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
5739 }
5740 __Pyx_GIVEREF(__pyx_t_2);
5741 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
5742 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
5743 __Pyx_GIVEREF(__pyx_v_errno);
5744 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
5745 __pyx_t_2 = 0;
5746 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__5746; goto __pyx_L1_error;}
5747 __Pyx_GOTREF(__pyx_t_1);
5748 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
5749 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5750 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
5751
5752 /* "rados.pyx":435
5753 * class IoctxStateError(Error):
5754 * """ `IoctxStateError` class, derived from `Error` """
5755 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5756 * super(IoctxStateError, self).__init__(
5757 * "RADOS Ioctx state error (%s)" % message, errno)
5758 */
5759
5760 /* function exit code */
5761 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
5762 goto __pyx_L0;
5763 __pyx_L1_error:;
5764 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
5765 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
5766 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
5767 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
5768 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
5769 __Pyx_AddTraceback("rados.IoctxStateError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5770 __pyx_r = NULL((void*)0);
5771 __pyx_L0:;
5772 __Pyx_XGIVEREF(__pyx_r);
5773 __Pyx_RefNannyFinishContext();
5774 return __pyx_r;
5775}
5776
5777/* "rados.pyx":442
5778 * class ObjectStateError(Error):
5779 * """ `ObjectStateError` class, derived from `Error` """
5780 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5781 * super(ObjectStateError, self).__init__(
5782 * "RADOS object state error (%s)" % message, errno)
5783 */
5784
5785/* Python wrapper */
5786static PyObject *__pyx_pw_5rados_16ObjectStateError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5787static char __pyx_doc_5rados_16ObjectStateError___init__[] = "ObjectStateError.__init__(self, message, errno=None)";
5788static PyMethodDef __pyx_mdef_5rados_16ObjectStateError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_16ObjectStateError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_16ObjectStateError___init__};
5789static PyObject *__pyx_pw_5rados_16ObjectStateError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5790 PyObject *__pyx_v_self = 0;
5791 PyObject *__pyx_v_message = 0;
5792 PyObject *__pyx_v_errno = 0;
5793 int __pyx_lineno = 0;
5794 const char *__pyx_filename = NULL((void*)0);
5795 int __pyx_clineno = 0;
5796 PyObject *__pyx_r = 0;
5797 __Pyx_RefNannyDeclarations
5798 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5799 {
5800 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
5801 PyObject* values[3] = {0,0,0};
5802 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
5803 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
5804 Py_ssize_t kw_args;
5805 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
5806 switch (pos_args) {
5807 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5808 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5809 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5810 case 0: break;
5811 default: goto __pyx_L5_argtuple_error;
5812 }
5813 kw_args = PyDict_Size(__pyx_kwds);
5814 switch (pos_args) {
5815 case 0:
5816 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
5817 else goto __pyx_L5_argtuple_error;
5818 case 1:
5819 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
5820 else {
5821 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__5821; goto __pyx_L3_error;}
5822 }
5823 case 2:
5824 if (kw_args > 0) {
5825 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
5826 if (value) { values[2] = value; kw_args--; }
5827 }
5828 }
5829 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
5830 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__5830; goto __pyx_L3_error;}
5831 }
5832 } else {
5833 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
5834 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5835 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5836 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5837 break;
5838 default: goto __pyx_L5_argtuple_error;
5839 }
5840 }
5841 __pyx_v_self = values[0];
5842 __pyx_v_message = values[1];
5843 __pyx_v_errno = values[2];
5844 }
5845 goto __pyx_L4_argument_unpacking_done;
5846 __pyx_L5_argtuple_error:;
5847 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__5847; goto __pyx_L3_error;}
5848 __pyx_L3_error:;
5849 __Pyx_AddTraceback("rados.ObjectStateError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5850 __Pyx_RefNannyFinishContext();
5851 return NULL((void*)0);
5852 __pyx_L4_argument_unpacking_done:;
5853 __pyx_r = __pyx_pf_5rados_16ObjectStateError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
5854
5855 /* function exit code */
5856 __Pyx_RefNannyFinishContext();
5857 return __pyx_r;
5858}
5859
5860static PyObject *__pyx_pf_5rados_16ObjectStateError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
5861 PyObject *__pyx_r = NULL((void*)0);
5862 __Pyx_RefNannyDeclarations
5863 PyObject *__pyx_t_1 = NULL((void*)0);
5864 PyObject *__pyx_t_2 = NULL((void*)0);
5865 PyObject *__pyx_t_3 = NULL((void*)0);
5866 PyObject *__pyx_t_4 = NULL((void*)0);
5867 Py_ssize_t __pyx_t_5;
5868 PyObject *__pyx_t_6 = NULL((void*)0);
5869 int __pyx_lineno = 0;
5870 const char *__pyx_filename = NULL((void*)0);
5871 int __pyx_clineno = 0;
5872 __Pyx_RefNannySetupContext("__init__", 0);
5873
5874 /* "rados.pyx":443
5875 * """ `ObjectStateError` class, derived from `Error` """
5876 * def __init__(self, message, errno=None):
5877 * super(ObjectStateError, self).__init__( # <<<<<<<<<<<<<<
5878 * "RADOS object state error (%s)" % message, errno)
5879 *
5880 */
5881 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectStateError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__5881; goto __pyx_L1_error;}
5882 __Pyx_GOTREF(__pyx_t_2);
5883 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__5883; goto __pyx_L1_error;}
5884 __Pyx_GOTREF(__pyx_t_3);
5885 __Pyx_GIVEREF(__pyx_t_2);
5886 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
5887 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
5888 __Pyx_GIVEREF(__pyx_v_self);
5889 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
5890 __pyx_t_2 = 0;
5891 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__5891; goto __pyx_L1_error;}
5892 __Pyx_GOTREF(__pyx_t_2);
5893 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5894 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__5894; goto __pyx_L1_error;}
5895 __Pyx_GOTREF(__pyx_t_3);
5896 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
5897
5898 /* "rados.pyx":444
5899 * def __init__(self, message, errno=None):
5900 * super(ObjectStateError, self).__init__(
5901 * "RADOS object state error (%s)" % message, errno) # <<<<<<<<<<<<<<
5902 *
5903 *
5904 */
5905 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_object_state_error_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_object_state_error_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__5905; goto __pyx_L1_error;}
5906 __Pyx_GOTREF(__pyx_t_2);
5907 __pyx_t_4 = NULL((void*)0);
5908 __pyx_t_5 = 0;
5909 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
5910 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
5911 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
5912 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
5913 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
5914 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
5915 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
5916 __pyx_t_5 = 1;
5917 }
5918 }
5919 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__5919; goto __pyx_L1_error;}
5920 __Pyx_GOTREF(__pyx_t_6);
5921 if (__pyx_t_4) {
5922 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
5923 }
5924 __Pyx_GIVEREF(__pyx_t_2);
5925 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
5926 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
5927 __Pyx_GIVEREF(__pyx_v_errno);
5928 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
5929 __pyx_t_2 = 0;
5930 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__5930; goto __pyx_L1_error;}
5931 __Pyx_GOTREF(__pyx_t_1);
5932 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
5933 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
5934 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
5935
5936 /* "rados.pyx":442
5937 * class ObjectStateError(Error):
5938 * """ `ObjectStateError` class, derived from `Error` """
5939 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5940 * super(ObjectStateError, self).__init__(
5941 * "RADOS object state error (%s)" % message, errno)
5942 */
5943
5944 /* function exit code */
5945 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
5946 goto __pyx_L0;
5947 __pyx_L1_error:;
5948 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
5949 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
5950 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
5951 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
5952 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
5953 __Pyx_AddTraceback("rados.ObjectStateError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5954 __pyx_r = NULL((void*)0);
5955 __pyx_L0:;
5956 __Pyx_XGIVEREF(__pyx_r);
5957 __Pyx_RefNannyFinishContext();
5958 return __pyx_r;
5959}
5960
5961/* "rados.pyx":449
5962 * class LogicError(Error):
5963 * """ `` class, derived from `Error` """
5964 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
5965 * super(LogicError, self).__init__(
5966 * "RADOS logic error (%s)" % message, errno)
5967 */
5968
5969/* Python wrapper */
5970static PyObject *__pyx_pw_5rados_10LogicError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
5971static char __pyx_doc_5rados_10LogicError___init__[] = "LogicError.__init__(self, message, errno=None)";
5972static PyMethodDef __pyx_mdef_5rados_10LogicError_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_10LogicError_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_10LogicError___init__};
5973static PyObject *__pyx_pw_5rados_10LogicError_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
5974 PyObject *__pyx_v_self = 0;
5975 PyObject *__pyx_v_message = 0;
5976 PyObject *__pyx_v_errno = 0;
5977 int __pyx_lineno = 0;
5978 const char *__pyx_filename = NULL((void*)0);
5979 int __pyx_clineno = 0;
5980 PyObject *__pyx_r = 0;
5981 __Pyx_RefNannyDeclarations
5982 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
5983 {
5984 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
5985 PyObject* values[3] = {0,0,0};
5986 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
5987 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
5988 Py_ssize_t kw_args;
5989 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
5990 switch (pos_args) {
5991 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
5992 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
5993 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
5994 case 0: break;
5995 default: goto __pyx_L5_argtuple_error;
5996 }
5997 kw_args = PyDict_Size(__pyx_kwds);
5998 switch (pos_args) {
5999 case 0:
6000 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
6001 else goto __pyx_L5_argtuple_error;
6002 case 1:
6003 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
6004 else {
6005 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__6005; goto __pyx_L3_error;}
6006 }
6007 case 2:
6008 if (kw_args > 0) {
6009 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
6010 if (value) { values[2] = value; kw_args--; }
6011 }
6012 }
6013 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
6014 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__6014; goto __pyx_L3_error;}
6015 }
6016 } else {
6017 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
6018 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
6019 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6020 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6021 break;
6022 default: goto __pyx_L5_argtuple_error;
6023 }
6024 }
6025 __pyx_v_self = values[0];
6026 __pyx_v_message = values[1];
6027 __pyx_v_errno = values[2];
6028 }
6029 goto __pyx_L4_argument_unpacking_done;
6030 __pyx_L5_argtuple_error:;
6031 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__6031; goto __pyx_L3_error;}
6032 __pyx_L3_error:;
6033 __Pyx_AddTraceback("rados.LogicError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6034 __Pyx_RefNannyFinishContext();
6035 return NULL((void*)0);
6036 __pyx_L4_argument_unpacking_done:;
6037 __pyx_r = __pyx_pf_5rados_10LogicError___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
6038
6039 /* function exit code */
6040 __Pyx_RefNannyFinishContext();
6041 return __pyx_r;
6042}
6043
6044static PyObject *__pyx_pf_5rados_10LogicError___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
6045 PyObject *__pyx_r = NULL((void*)0);
6046 __Pyx_RefNannyDeclarations
6047 PyObject *__pyx_t_1 = NULL((void*)0);
6048 PyObject *__pyx_t_2 = NULL((void*)0);
6049 PyObject *__pyx_t_3 = NULL((void*)0);
6050 PyObject *__pyx_t_4 = NULL((void*)0);
6051 Py_ssize_t __pyx_t_5;
6052 PyObject *__pyx_t_6 = NULL((void*)0);
6053 int __pyx_lineno = 0;
6054 const char *__pyx_filename = NULL((void*)0);
6055 int __pyx_clineno = 0;
6056 __Pyx_RefNannySetupContext("__init__", 0);
6057
6058 /* "rados.pyx":450
6059 * """ `` class, derived from `Error` """
6060 * def __init__(self, message, errno=None):
6061 * super(LogicError, self).__init__( # <<<<<<<<<<<<<<
6062 * "RADOS logic error (%s)" % message, errno)
6063 *
6064 */
6065 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__6065; goto __pyx_L1_error;}
6066 __Pyx_GOTREF(__pyx_t_2);
6067 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__6067; goto __pyx_L1_error;}
6068 __Pyx_GOTREF(__pyx_t_3);
6069 __Pyx_GIVEREF(__pyx_t_2);
6070 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
6071 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
6072 __Pyx_GIVEREF(__pyx_v_self);
6073 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
6074 __pyx_t_2 = 0;
6075 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__6075; goto __pyx_L1_error;}
6076 __Pyx_GOTREF(__pyx_t_2);
6077 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6078 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__6078; goto __pyx_L1_error;}
6079 __Pyx_GOTREF(__pyx_t_3);
6080 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
6081
6082 /* "rados.pyx":451
6083 * def __init__(self, message, errno=None):
6084 * super(LogicError, self).__init__(
6085 * "RADOS logic error (%s)" % message, errno) # <<<<<<<<<<<<<<
6086 *
6087 *
6088 */
6089 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_logic_error_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_logic_error_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 451; __pyx_clineno = __LINE__6089; goto __pyx_L1_error;}
6090 __Pyx_GOTREF(__pyx_t_2);
6091 __pyx_t_4 = NULL((void*)0);
6092 __pyx_t_5 = 0;
6093 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
6094 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
6095 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
6096 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
6097 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
6098 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
6099 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
6100 __pyx_t_5 = 1;
6101 }
6102 }
6103 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__6103; goto __pyx_L1_error;}
6104 __Pyx_GOTREF(__pyx_t_6);
6105 if (__pyx_t_4) {
6106 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
6107 }
6108 __Pyx_GIVEREF(__pyx_t_2);
6109 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
6110 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
6111 __Pyx_GIVEREF(__pyx_v_errno);
6112 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
6113 __pyx_t_2 = 0;
6114 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__6114; goto __pyx_L1_error;}
6115 __Pyx_GOTREF(__pyx_t_1);
6116 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
6117 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6118 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
6119
6120 /* "rados.pyx":449
6121 * class LogicError(Error):
6122 * """ `` class, derived from `Error` """
6123 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
6124 * super(LogicError, self).__init__(
6125 * "RADOS logic error (%s)" % message, errno)
6126 */
6127
6128 /* function exit code */
6129 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
6130 goto __pyx_L0;
6131 __pyx_L1_error:;
6132 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
6133 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
6134 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
6135 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
6136 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
6137 __Pyx_AddTraceback("rados.LogicError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6138 __pyx_r = NULL((void*)0);
6139 __pyx_L0:;
6140 __Pyx_XGIVEREF(__pyx_r);
6141 __Pyx_RefNannyFinishContext();
6142 return __pyx_r;
6143}
6144
6145/* "rados.pyx":456
6146 * class TimedOut(OSError):
6147 * """ `TimedOut` class, derived from `OSError` """
6148 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
6149 * super(TimedOut, self).__init__(
6150 * "RADOS timed out (%s)" % message, errno)
6151 */
6152
6153/* Python wrapper */
6154static PyObject *__pyx_pw_5rados_8TimedOut_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6155static char __pyx_doc_5rados_8TimedOut___init__[] = "TimedOut.__init__(self, message, errno=None)";
6156static PyMethodDef __pyx_mdef_5rados_8TimedOut_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_8TimedOut_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_8TimedOut___init__};
6157static PyObject *__pyx_pw_5rados_8TimedOut_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6158 PyObject *__pyx_v_self = 0;
6159 PyObject *__pyx_v_message = 0;
6160 PyObject *__pyx_v_errno = 0;
6161 int __pyx_lineno = 0;
6162 const char *__pyx_filename = NULL((void*)0);
6163 int __pyx_clineno = 0;
6164 PyObject *__pyx_r = 0;
6165 __Pyx_RefNannyDeclarations
6166 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
6167 {
6168 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
6169 PyObject* values[3] = {0,0,0};
6170 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
6171 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
6172 Py_ssize_t kw_args;
6173 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
6174 switch (pos_args) {
6175 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
6176 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6177 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6178 case 0: break;
6179 default: goto __pyx_L5_argtuple_error;
6180 }
6181 kw_args = PyDict_Size(__pyx_kwds);
6182 switch (pos_args) {
6183 case 0:
6184 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
6185 else goto __pyx_L5_argtuple_error;
6186 case 1:
6187 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
6188 else {
6189 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__6189; goto __pyx_L3_error;}
6190 }
6191 case 2:
6192 if (kw_args > 0) {
6193 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
6194 if (value) { values[2] = value; kw_args--; }
6195 }
6196 }
6197 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
6198 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__6198; goto __pyx_L3_error;}
6199 }
6200 } else {
6201 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
6202 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
6203 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6204 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6205 break;
6206 default: goto __pyx_L5_argtuple_error;
6207 }
6208 }
6209 __pyx_v_self = values[0];
6210 __pyx_v_message = values[1];
6211 __pyx_v_errno = values[2];
6212 }
6213 goto __pyx_L4_argument_unpacking_done;
6214 __pyx_L5_argtuple_error:;
6215 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__6215; goto __pyx_L3_error;}
6216 __pyx_L3_error:;
6217 __Pyx_AddTraceback("rados.TimedOut.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6218 __Pyx_RefNannyFinishContext();
6219 return NULL((void*)0);
6220 __pyx_L4_argument_unpacking_done:;
6221 __pyx_r = __pyx_pf_5rados_8TimedOut___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
6222
6223 /* function exit code */
6224 __Pyx_RefNannyFinishContext();
6225 return __pyx_r;
6226}
6227
6228static PyObject *__pyx_pf_5rados_8TimedOut___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
6229 PyObject *__pyx_r = NULL((void*)0);
6230 __Pyx_RefNannyDeclarations
6231 PyObject *__pyx_t_1 = NULL((void*)0);
6232 PyObject *__pyx_t_2 = NULL((void*)0);
6233 PyObject *__pyx_t_3 = NULL((void*)0);
6234 PyObject *__pyx_t_4 = NULL((void*)0);
6235 Py_ssize_t __pyx_t_5;
6236 PyObject *__pyx_t_6 = NULL((void*)0);
6237 int __pyx_lineno = 0;
6238 const char *__pyx_filename = NULL((void*)0);
6239 int __pyx_clineno = 0;
6240 __Pyx_RefNannySetupContext("__init__", 0);
6241
6242 /* "rados.pyx":457
6243 * """ `TimedOut` class, derived from `OSError` """
6244 * def __init__(self, message, errno=None):
6245 * super(TimedOut, self).__init__( # <<<<<<<<<<<<<<
6246 * "RADOS timed out (%s)" % message, errno)
6247 *
6248 */
6249 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_TimedOut); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__6249; goto __pyx_L1_error;}
6250 __Pyx_GOTREF(__pyx_t_2);
6251 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__6251; goto __pyx_L1_error;}
6252 __Pyx_GOTREF(__pyx_t_3);
6253 __Pyx_GIVEREF(__pyx_t_2);
6254 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
6255 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
6256 __Pyx_GIVEREF(__pyx_v_self);
6257 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
6258 __pyx_t_2 = 0;
6259 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__6259; goto __pyx_L1_error;}
6260 __Pyx_GOTREF(__pyx_t_2);
6261 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6262 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__6262; goto __pyx_L1_error;}
6263 __Pyx_GOTREF(__pyx_t_3);
6264 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
6265
6266 /* "rados.pyx":458
6267 * def __init__(self, message, errno=None):
6268 * super(TimedOut, self).__init__(
6269 * "RADOS timed out (%s)" % message, errno) # <<<<<<<<<<<<<<
6270 *
6271 *
6272 */
6273 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_timed_out_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_timed_out_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 458; __pyx_clineno = __LINE__6273; goto __pyx_L1_error;}
6274 __Pyx_GOTREF(__pyx_t_2);
6275 __pyx_t_4 = NULL((void*)0);
6276 __pyx_t_5 = 0;
6277 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
6278 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
6279 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
6280 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
6281 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
6282 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
6283 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
6284 __pyx_t_5 = 1;
6285 }
6286 }
6287 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__6287; goto __pyx_L1_error;}
6288 __Pyx_GOTREF(__pyx_t_6);
6289 if (__pyx_t_4) {
6290 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
6291 }
6292 __Pyx_GIVEREF(__pyx_t_2);
6293 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
6294 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
6295 __Pyx_GIVEREF(__pyx_v_errno);
6296 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
6297 __pyx_t_2 = 0;
6298 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__6298; goto __pyx_L1_error;}
6299 __Pyx_GOTREF(__pyx_t_1);
6300 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
6301 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6302 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
6303
6304 /* "rados.pyx":456
6305 * class TimedOut(OSError):
6306 * """ `TimedOut` class, derived from `OSError` """
6307 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
6308 * super(TimedOut, self).__init__(
6309 * "RADOS timed out (%s)" % message, errno)
6310 */
6311
6312 /* function exit code */
6313 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
6314 goto __pyx_L0;
6315 __pyx_L1_error:;
6316 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
6317 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
6318 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
6319 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
6320 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
6321 __Pyx_AddTraceback("rados.TimedOut.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6322 __pyx_r = NULL((void*)0);
6323 __pyx_L0:;
6324 __Pyx_XGIVEREF(__pyx_r);
6325 __Pyx_RefNannyFinishContext();
6326 return __pyx_r;
6327}
6328
6329/* "rados.pyx":463
6330 * class InProgress(Error):
6331 * """ `InProgress` class, derived from `Error` """
6332 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
6333 * super(InProgress, self).__init__(
6334 * "RADOS in progress error (%s)" % message, errno)
6335 */
6336
6337/* Python wrapper */
6338static PyObject *__pyx_pw_5rados_10InProgress_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6339static char __pyx_doc_5rados_10InProgress___init__[] = "InProgress.__init__(self, message, errno=None)";
6340static PyMethodDef __pyx_mdef_5rados_10InProgress_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_10InProgress_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_10InProgress___init__};
6341static PyObject *__pyx_pw_5rados_10InProgress_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6342 PyObject *__pyx_v_self = 0;
6343 PyObject *__pyx_v_message = 0;
6344 PyObject *__pyx_v_errno = 0;
6345 int __pyx_lineno = 0;
6346 const char *__pyx_filename = NULL((void*)0);
6347 int __pyx_clineno = 0;
6348 PyObject *__pyx_r = 0;
6349 __Pyx_RefNannyDeclarations
6350 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
6351 {
6352 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
6353 PyObject* values[3] = {0,0,0};
6354 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
6355 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
6356 Py_ssize_t kw_args;
6357 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
6358 switch (pos_args) {
6359 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
6360 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6361 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6362 case 0: break;
6363 default: goto __pyx_L5_argtuple_error;
6364 }
6365 kw_args = PyDict_Size(__pyx_kwds);
6366 switch (pos_args) {
6367 case 0:
6368 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
6369 else goto __pyx_L5_argtuple_error;
6370 case 1:
6371 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
6372 else {
6373 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__6373; goto __pyx_L3_error;}
6374 }
6375 case 2:
6376 if (kw_args > 0) {
6377 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
6378 if (value) { values[2] = value; kw_args--; }
6379 }
6380 }
6381 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
6382 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__6382; goto __pyx_L3_error;}
6383 }
6384 } else {
6385 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
6386 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
6387 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6388 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6389 break;
6390 default: goto __pyx_L5_argtuple_error;
6391 }
6392 }
6393 __pyx_v_self = values[0];
6394 __pyx_v_message = values[1];
6395 __pyx_v_errno = values[2];
6396 }
6397 goto __pyx_L4_argument_unpacking_done;
6398 __pyx_L5_argtuple_error:;
6399 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__6399; goto __pyx_L3_error;}
6400 __pyx_L3_error:;
6401 __Pyx_AddTraceback("rados.InProgress.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6402 __Pyx_RefNannyFinishContext();
6403 return NULL((void*)0);
6404 __pyx_L4_argument_unpacking_done:;
6405 __pyx_r = __pyx_pf_5rados_10InProgress___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
6406
6407 /* function exit code */
6408 __Pyx_RefNannyFinishContext();
6409 return __pyx_r;
6410}
6411
6412static PyObject *__pyx_pf_5rados_10InProgress___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
6413 PyObject *__pyx_r = NULL((void*)0);
6414 __Pyx_RefNannyDeclarations
6415 PyObject *__pyx_t_1 = NULL((void*)0);
6416 PyObject *__pyx_t_2 = NULL((void*)0);
6417 PyObject *__pyx_t_3 = NULL((void*)0);
6418 PyObject *__pyx_t_4 = NULL((void*)0);
6419 Py_ssize_t __pyx_t_5;
6420 PyObject *__pyx_t_6 = NULL((void*)0);
6421 int __pyx_lineno = 0;
6422 const char *__pyx_filename = NULL((void*)0);
6423 int __pyx_clineno = 0;
6424 __Pyx_RefNannySetupContext("__init__", 0);
6425
6426 /* "rados.pyx":464
6427 * """ `InProgress` class, derived from `Error` """
6428 * def __init__(self, message, errno=None):
6429 * super(InProgress, self).__init__( # <<<<<<<<<<<<<<
6430 * "RADOS in progress error (%s)" % message, errno)
6431 *
6432 */
6433 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_InProgress); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__6433; goto __pyx_L1_error;}
6434 __Pyx_GOTREF(__pyx_t_2);
6435 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__6435; goto __pyx_L1_error;}
6436 __Pyx_GOTREF(__pyx_t_3);
6437 __Pyx_GIVEREF(__pyx_t_2);
6438 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
6439 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
6440 __Pyx_GIVEREF(__pyx_v_self);
6441 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
6442 __pyx_t_2 = 0;
6443 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__6443; goto __pyx_L1_error;}
6444 __Pyx_GOTREF(__pyx_t_2);
6445 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6446 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__6446; goto __pyx_L1_error;}
6447 __Pyx_GOTREF(__pyx_t_3);
6448 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
6449
6450 /* "rados.pyx":465
6451 * def __init__(self, message, errno=None):
6452 * super(InProgress, self).__init__(
6453 * "RADOS in progress error (%s)" % message, errno) # <<<<<<<<<<<<<<
6454 *
6455 *
6456 */
6457 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_in_progress_error_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_in_progress_error_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__6457; goto __pyx_L1_error;}
6458 __Pyx_GOTREF(__pyx_t_2);
6459 __pyx_t_4 = NULL((void*)0);
6460 __pyx_t_5 = 0;
6461 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
6462 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
6463 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
6464 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
6465 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
6466 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
6467 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
6468 __pyx_t_5 = 1;
6469 }
6470 }
6471 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__6471; goto __pyx_L1_error;}
6472 __Pyx_GOTREF(__pyx_t_6);
6473 if (__pyx_t_4) {
6474 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
6475 }
6476 __Pyx_GIVEREF(__pyx_t_2);
6477 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
6478 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
6479 __Pyx_GIVEREF(__pyx_v_errno);
6480 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
6481 __pyx_t_2 = 0;
6482 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__6482; goto __pyx_L1_error;}
6483 __Pyx_GOTREF(__pyx_t_1);
6484 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
6485 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6486 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
6487
6488 /* "rados.pyx":463
6489 * class InProgress(Error):
6490 * """ `InProgress` class, derived from `Error` """
6491 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
6492 * super(InProgress, self).__init__(
6493 * "RADOS in progress error (%s)" % message, errno)
6494 */
6495
6496 /* function exit code */
6497 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
6498 goto __pyx_L0;
6499 __pyx_L1_error:;
6500 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
6501 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
6502 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
6503 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
6504 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
6505 __Pyx_AddTraceback("rados.InProgress.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6506 __pyx_r = NULL((void*)0);
6507 __pyx_L0:;
6508 __Pyx_XGIVEREF(__pyx_r);
6509 __Pyx_RefNannyFinishContext();
6510 return __pyx_r;
6511}
6512
6513/* "rados.pyx":470
6514 * class IsConnected(Error):
6515 * """ `IsConnected` class, derived from `Error` """
6516 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
6517 * super(IsConnected, self).__init__(
6518 * "RADOS is connected error (%s)" % message, errno)
6519 */
6520
6521/* Python wrapper */
6522static PyObject *__pyx_pw_5rados_11IsConnected_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6523static char __pyx_doc_5rados_11IsConnected___init__[] = "IsConnected.__init__(self, message, errno=None)";
6524static PyMethodDef __pyx_mdef_5rados_11IsConnected_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_11IsConnected_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_11IsConnected___init__};
6525static PyObject *__pyx_pw_5rados_11IsConnected_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6526 PyObject *__pyx_v_self = 0;
6527 PyObject *__pyx_v_message = 0;
6528 PyObject *__pyx_v_errno = 0;
6529 int __pyx_lineno = 0;
6530 const char *__pyx_filename = NULL((void*)0);
6531 int __pyx_clineno = 0;
6532 PyObject *__pyx_r = 0;
6533 __Pyx_RefNannyDeclarations
6534 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
6535 {
6536 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_message,&__pyx_n_s_errno,0};
6537 PyObject* values[3] = {0,0,0};
6538 values[2] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
6539 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
6540 Py_ssize_t kw_args;
6541 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
6542 switch (pos_args) {
6543 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
6544 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6545 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6546 case 0: break;
6547 default: goto __pyx_L5_argtuple_error;
6548 }
6549 kw_args = PyDict_Size(__pyx_kwds);
6550 switch (pos_args) {
6551 case 0:
6552 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
6553 else goto __pyx_L5_argtuple_error;
6554 case 1:
6555 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_message
)) != 0), 1)
) kw_args--;
6556 else {
6557 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__6557; goto __pyx_L3_error;}
6558 }
6559 case 2:
6560 if (kw_args > 0) {
6561 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_errno);
6562 if (value) { values[2] = value; kw_args--; }
6563 }
6564 }
6565 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
6566 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__6566; goto __pyx_L3_error;}
6567 }
6568 } else {
6569 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
6570 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
6571 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6572 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6573 break;
6574 default: goto __pyx_L5_argtuple_error;
6575 }
6576 }
6577 __pyx_v_self = values[0];
6578 __pyx_v_message = values[1];
6579 __pyx_v_errno = values[2];
6580 }
6581 goto __pyx_L4_argument_unpacking_done;
6582 __pyx_L5_argtuple_error:;
6583 __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__6583; goto __pyx_L3_error;}
6584 __pyx_L3_error:;
6585 __Pyx_AddTraceback("rados.IsConnected.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6586 __Pyx_RefNannyFinishContext();
6587 return NULL((void*)0);
6588 __pyx_L4_argument_unpacking_done:;
6589 __pyx_r = __pyx_pf_5rados_11IsConnected___init__(__pyx_self, __pyx_v_self, __pyx_v_message, __pyx_v_errno);
6590
6591 /* function exit code */
6592 __Pyx_RefNannyFinishContext();
6593 return __pyx_r;
6594}
6595
6596static PyObject *__pyx_pf_5rados_11IsConnected___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_message, PyObject *__pyx_v_errno) {
6597 PyObject *__pyx_r = NULL((void*)0);
6598 __Pyx_RefNannyDeclarations
6599 PyObject *__pyx_t_1 = NULL((void*)0);
6600 PyObject *__pyx_t_2 = NULL((void*)0);
6601 PyObject *__pyx_t_3 = NULL((void*)0);
6602 PyObject *__pyx_t_4 = NULL((void*)0);
6603 Py_ssize_t __pyx_t_5;
6604 PyObject *__pyx_t_6 = NULL((void*)0);
6605 int __pyx_lineno = 0;
6606 const char *__pyx_filename = NULL((void*)0);
6607 int __pyx_clineno = 0;
6608 __Pyx_RefNannySetupContext("__init__", 0);
6609
6610 /* "rados.pyx":471
6611 * """ `IsConnected` class, derived from `Error` """
6612 * def __init__(self, message, errno=None):
6613 * super(IsConnected, self).__init__( # <<<<<<<<<<<<<<
6614 * "RADOS is connected error (%s)" % message, errno)
6615 *
6616 */
6617 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_IsConnected); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__6617; goto __pyx_L1_error;}
6618 __Pyx_GOTREF(__pyx_t_2);
6619 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__6619; goto __pyx_L1_error;}
6620 __Pyx_GOTREF(__pyx_t_3);
6621 __Pyx_GIVEREF(__pyx_t_2);
6622 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
6623 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
6624 __Pyx_GIVEREF(__pyx_v_self);
6625 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
)
;
6626 __pyx_t_2 = 0;
6627 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__6627; goto __pyx_L1_error;}
6628 __Pyx_GOTREF(__pyx_t_2);
6629 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6630 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__6630; goto __pyx_L1_error;}
6631 __Pyx_GOTREF(__pyx_t_3);
6632 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
6633
6634 /* "rados.pyx":472
6635 * def __init__(self, message, errno=None):
6636 * super(IsConnected, self).__init__(
6637 * "RADOS is connected error (%s)" % message, errno) # <<<<<<<<<<<<<<
6638 *
6639 *
6640 */
6641 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_RADOS_is_connected_error_s, __pyx_v_message)PyString_Format(__pyx_kp_s_RADOS_is_connected_error_s, __pyx_v_message
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__6641; goto __pyx_L1_error;}
6642 __Pyx_GOTREF(__pyx_t_2);
6643 __pyx_t_4 = NULL((void*)0);
6644 __pyx_t_5 = 0;
6645 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
6646 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
6647 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
6648 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
6649 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
6650 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
6651 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
6652 __pyx_t_5 = 1;
6653 }
6654 }
6655 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__6655; goto __pyx_L1_error;}
6656 __Pyx_GOTREF(__pyx_t_6);
6657 if (__pyx_t_4) {
6658 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
6659 }
6660 __Pyx_GIVEREF(__pyx_t_2);
6661 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
6662 __Pyx_INCREF(__pyx_v_errno)( ((PyObject*)(__pyx_v_errno))->ob_refcnt++);
6663 __Pyx_GIVEREF(__pyx_v_errno);
6664 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_errno)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_errno
)
;
6665 __pyx_t_2 = 0;
6666 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__6666; goto __pyx_L1_error;}
6667 __Pyx_GOTREF(__pyx_t_1);
6668 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
6669 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
6670 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
6671
6672 /* "rados.pyx":470
6673 * class IsConnected(Error):
6674 * """ `IsConnected` class, derived from `Error` """
6675 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
6676 * super(IsConnected, self).__init__(
6677 * "RADOS is connected error (%s)" % message, errno)
6678 */
6679
6680 /* function exit code */
6681 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
6682 goto __pyx_L0;
6683 __pyx_L1_error:;
6684 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
6685 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
6686 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
6687 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
6688 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
6689 __Pyx_AddTraceback("rados.IsConnected.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6690 __pyx_r = NULL((void*)0);
6691 __pyx_L0:;
6692 __Pyx_XGIVEREF(__pyx_r);
6693 __Pyx_RefNannyFinishContext();
6694 return __pyx_r;
6695}
6696
6697/* "rados.pyx":509
6698 *
6699 *
6700 * cdef make_ex(ret, msg): # <<<<<<<<<<<<<<
6701 * """
6702 * Translate a librados return code into an exception.
6703 */
6704
6705static PyObject *__pyx_f_5rados_make_ex(PyObject *__pyx_v_ret, PyObject *__pyx_v_msg) {
6706 PyObject *__pyx_r = NULL((void*)0);
6707 __Pyx_RefNannyDeclarations
6708 PyObject *__pyx_t_1 = NULL((void*)0);
6709 int __pyx_t_2;
6710 int __pyx_t_3;
6711 PyObject *__pyx_t_4 = NULL((void*)0);
6712 PyObject *__pyx_t_5 = NULL((void*)0);
6713 PyObject *__pyx_t_6 = NULL((void*)0);
6714 int __pyx_lineno = 0;
6715 const char *__pyx_filename = NULL((void*)0);
6716 int __pyx_clineno = 0;
6717 __Pyx_RefNannySetupContext("make_ex", 0);
6718 __Pyx_INCREF(__pyx_v_ret)( ((PyObject*)(__pyx_v_ret))->ob_refcnt++);
6719
6720 /* "rados.pyx":519
6721 * :returns: a subclass of :class:`Error`
6722 * """
6723 * ret = abs(ret) # <<<<<<<<<<<<<<
6724 * if ret in errno_to_exception:
6725 * return errno_to_exception[ret](msg, errno=ret)
6726 */
6727 __pyx_t_1 = PyNumber_Absolute(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__6727; goto __pyx_L1_error;}
6728 __Pyx_GOTREF(__pyx_t_1);
6729 __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_ret; __pyx_v_ret = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
6730 __pyx_t_1 = 0;
6731
6732 /* "rados.pyx":520
6733 * """
6734 * ret = abs(ret)
6735 * if ret in errno_to_exception: # <<<<<<<<<<<<<<
6736 * return errno_to_exception[ret](msg, errno=ret)
6737 * else:
6738 */
6739 __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_ret, __pyx_v_5rados_errno_to_exception, Py_EQ2)); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__6739; goto __pyx_L1_error;}
6740 __pyx_t_3 = (__pyx_t_2 != 0);
6741 if (__pyx_t_3) {
6742
6743 /* "rados.pyx":521
6744 * ret = abs(ret)
6745 * if ret in errno_to_exception:
6746 * return errno_to_exception[ret](msg, errno=ret) # <<<<<<<<<<<<<<
6747 * else:
6748 * return OSError(msg, errno=ret)
6749 */
6750 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
6751 __pyx_t_1 = PyObject_GetItem(__pyx_v_5rados_errno_to_exception, __pyx_v_ret); if (unlikely(__pyx_t_1 == NULL)__builtin_expect(!!(__pyx_t_1 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__6751; goto __pyx_L1_error;};
6752 __Pyx_GOTREF(__pyx_t_1);
6753 __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__6753; goto __pyx_L1_error;}
6754 __Pyx_GOTREF(__pyx_t_4);
6755 __Pyx_INCREF(__pyx_v_msg)( ((PyObject*)(__pyx_v_msg))->ob_refcnt++);
6756 __Pyx_GIVEREF(__pyx_v_msg);
6757 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_msg)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_v_msg);
6758 __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__6758; goto __pyx_L1_error;}
6759 __Pyx_GOTREF(__pyx_t_5);
6760 if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_errno, __pyx_v_ret) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__6760; goto __pyx_L1_error;}
6761 __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__6761; goto __pyx_L1_error;}
6762 __Pyx_GOTREF(__pyx_t_6);
6763 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
6764 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
6765 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
6766 __pyx_r = __pyx_t_6;
6767 __pyx_t_6 = 0;
6768 goto __pyx_L0;
6769
6770 /* "rados.pyx":520
6771 * """
6772 * ret = abs(ret)
6773 * if ret in errno_to_exception: # <<<<<<<<<<<<<<
6774 * return errno_to_exception[ret](msg, errno=ret)
6775 * else:
6776 */
6777 }
6778
6779 /* "rados.pyx":523
6780 * return errno_to_exception[ret](msg, errno=ret)
6781 * else:
6782 * return OSError(msg, errno=ret) # <<<<<<<<<<<<<<
6783 *
6784 *
6785 */
6786 /*else*/ {
6787 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
6788 __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__6788; goto __pyx_L1_error;}
6789 __Pyx_GOTREF(__pyx_t_6);
6790 __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__6790; goto __pyx_L1_error;}
6791 __Pyx_GOTREF(__pyx_t_5);
6792 __Pyx_INCREF(__pyx_v_msg)( ((PyObject*)(__pyx_v_msg))->ob_refcnt++);
6793 __Pyx_GIVEREF(__pyx_v_msg);
6794 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_msg)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_v_msg);
6795 __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__6795; goto __pyx_L1_error;}
6796 __Pyx_GOTREF(__pyx_t_4);
6797 if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_errno, __pyx_v_ret) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__6797; goto __pyx_L1_error;}
6798 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__6798; goto __pyx_L1_error;}
6799 __Pyx_GOTREF(__pyx_t_1);
6800 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
6801 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
6802 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
6803 __pyx_r = __pyx_t_1;
6804 __pyx_t_1 = 0;
6805 goto __pyx_L0;
6806 }
6807
6808 /* "rados.pyx":509
6809 *
6810 *
6811 * cdef make_ex(ret, msg): # <<<<<<<<<<<<<<
6812 * """
6813 * Translate a librados return code into an exception.
6814 */
6815
6816 /* function exit code */
6817 __pyx_L1_error:;
6818 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
6819 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
6820 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
6821 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
6822 __Pyx_AddTraceback("rados.make_ex", __pyx_clineno, __pyx_lineno, __pyx_filename);
6823 __pyx_r = 0;
6824 __pyx_L0:;
6825 __Pyx_XDECREF(__pyx_v_ret)do { if ((__pyx_v_ret) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_ret))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_ret)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_ret)))); } while (0); } while (0)
;
6826 __Pyx_XGIVEREF(__pyx_r);
6827 __Pyx_RefNannyFinishContext();
6828 return __pyx_r;
6829}
6830
6831/* "rados.pyx":528
6832 * # helper to specify an optional argument, where in addition to `cls`, `None`
6833 * # is also acceptable
6834 * def opt(cls): # <<<<<<<<<<<<<<
6835 * return (cls, None)
6836 *
6837 */
6838
6839/* Python wrapper */
6840static PyObject *__pyx_pw_5rados_1opt(PyObject *__pyx_self, PyObject *__pyx_v_cls); /*proto*/
6841static char __pyx_doc_5rados_opt[] = "opt(cls)";
6842static PyMethodDef __pyx_mdef_5rados_1opt = {"opt", (PyCFunction)__pyx_pw_5rados_1opt, METH_O0x0008, __pyx_doc_5rados_opt};
6843static PyObject *__pyx_pw_5rados_1opt(PyObject *__pyx_self, PyObject *__pyx_v_cls) {
6844 PyObject *__pyx_r = 0;
6845 __Pyx_RefNannyDeclarations
6846 __Pyx_RefNannySetupContext("opt (wrapper)", 0);
6847 __pyx_r = __pyx_pf_5rados_opt(__pyx_self, ((PyObject *)__pyx_v_cls));
6848
6849 /* function exit code */
6850 __Pyx_RefNannyFinishContext();
6851 return __pyx_r;
6852}
6853
6854static PyObject *__pyx_pf_5rados_opt(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_cls) {
6855 PyObject *__pyx_r = NULL((void*)0);
6856 __Pyx_RefNannyDeclarations
6857 PyObject *__pyx_t_1 = NULL((void*)0);
6858 int __pyx_lineno = 0;
6859 const char *__pyx_filename = NULL((void*)0);
6860 int __pyx_clineno = 0;
6861 __Pyx_RefNannySetupContext("opt", 0);
6862
6863 /* "rados.pyx":529
6864 * # is also acceptable
6865 * def opt(cls):
6866 * return (cls, None) # <<<<<<<<<<<<<<
6867 *
6868 *
6869 */
6870 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
6871 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__6871; goto __pyx_L1_error;}
6872 __Pyx_GOTREF(__pyx_t_1);
6873 __Pyx_INCREF(__pyx_v_cls)( ((PyObject*)(__pyx_v_cls))->ob_refcnt++);
6874 __Pyx_GIVEREF(__pyx_v_cls);
6875 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_cls)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_v_cls);
6876 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
6877 __Pyx_GIVEREF(Py_None);
6878 PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = (&_Py_NoneStruct
))
;
6879 __pyx_r = __pyx_t_1;
6880 __pyx_t_1 = 0;
6881 goto __pyx_L0;
6882
6883 /* "rados.pyx":528
6884 * # helper to specify an optional argument, where in addition to `cls`, `None`
6885 * # is also acceptable
6886 * def opt(cls): # <<<<<<<<<<<<<<
6887 * return (cls, None)
6888 *
6889 */
6890
6891 /* function exit code */
6892 __pyx_L1_error:;
6893 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
6894 __Pyx_AddTraceback("rados.opt", __pyx_clineno, __pyx_lineno, __pyx_filename);
6895 __pyx_r = NULL((void*)0);
6896 __pyx_L0:;
6897 __Pyx_XGIVEREF(__pyx_r);
6898 __Pyx_RefNannyFinishContext();
6899 return __pyx_r;
6900}
6901
6902/* "rados.pyx":534
6903 * # validate argument types of an instance method
6904 * # kwargs is an un-ordered dict, so use args instead
6905 * def requires(*types): # <<<<<<<<<<<<<<
6906 * def is_type_of(v, t):
6907 * if t is None:
6908 */
6909
6910/* Python wrapper */
6911static PyObject *__pyx_pw_5rados_3requires(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6912static char __pyx_doc_5rados_2requires[] = "requires(*types)";
6913static PyMethodDef __pyx_mdef_5rados_3requires = {"requires", (PyCFunction)__pyx_pw_5rados_3requires, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_2requires};
6914static PyObject *__pyx_pw_5rados_3requires(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6915 PyObject *__pyx_v_types = 0;
6916 PyObject *__pyx_r = 0;
6917 __Pyx_RefNannyDeclarations
6918 __Pyx_RefNannySetupContext("requires (wrapper)", 0);
6919 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0) && unlikely(PyDict_Size(__pyx_kwds) > 0)__builtin_expect(!!(PyDict_Size(__pyx_kwds) > 0), 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "requires", 0))__builtin_expect(!!(!__Pyx_CheckKeywordStrings(__pyx_kwds, "requires"
, 0)), 0)
) return NULL((void*)0);
6920 __Pyx_INCREF(__pyx_args)( ((PyObject*)(__pyx_args))->ob_refcnt++);
6921 __pyx_v_types = __pyx_args;
6922 __pyx_r = __pyx_pf_5rados_2requires(__pyx_self, __pyx_v_types);
6923
6924 /* function exit code */
6925 __Pyx_XDECREF(__pyx_v_types)do { if ((__pyx_v_types) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_types))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_types)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_types)))); } while (0); }
while (0)
;
6926 __Pyx_RefNannyFinishContext();
6927 return __pyx_r;
6928}
6929
6930/* "rados.pyx":535
6931 * # kwargs is an un-ordered dict, so use args instead
6932 * def requires(*types):
6933 * def is_type_of(v, t): # <<<<<<<<<<<<<<
6934 * if t is None:
6935 * return v is None
6936 */
6937
6938/* Python wrapper */
6939static PyObject *__pyx_pw_5rados_8requires_1is_type_of(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6940static PyMethodDef __pyx_mdef_5rados_8requires_1is_type_of = {"is_type_of", (PyCFunction)__pyx_pw_5rados_8requires_1is_type_of, METH_VARARGS0x0001|METH_KEYWORDS0x0002, 0};
6941static PyObject *__pyx_pw_5rados_8requires_1is_type_of(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6942 PyObject *__pyx_v_v = 0;
6943 PyObject *__pyx_v_t = 0;
6944 int __pyx_lineno = 0;
6945 const char *__pyx_filename = NULL((void*)0);
6946 int __pyx_clineno = 0;
6947 PyObject *__pyx_r = 0;
6948 __Pyx_RefNannyDeclarations
6949 __Pyx_RefNannySetupContext("is_type_of (wrapper)", 0);
6950 {
6951 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_v,&__pyx_n_s_t,0};
6952 PyObject* values[2] = {0,0};
6953 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
6954 Py_ssize_t kw_args;
6955 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
6956 switch (pos_args) {
6957 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6958 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6959 case 0: break;
6960 default: goto __pyx_L5_argtuple_error;
6961 }
6962 kw_args = PyDict_Size(__pyx_kwds);
6963 switch (pos_args) {
6964 case 0:
6965 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_v)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_v
)) != 0), 1)
) kw_args--;
6966 else goto __pyx_L5_argtuple_error;
6967 case 1:
6968 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_t)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_t
)) != 0), 1)
) kw_args--;
6969 else {
6970 __Pyx_RaiseArgtupleInvalid("is_type_of", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__6970; goto __pyx_L3_error;}
6971 }
6972 }
6973 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
6974 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "is_type_of") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "is_type_of") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__6974; goto __pyx_L3_error;}
6975 }
6976 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
6977 goto __pyx_L5_argtuple_error;
6978 } else {
6979 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
6980 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
6981 }
6982 __pyx_v_v = values[0];
6983 __pyx_v_t = values[1];
6984 }
6985 goto __pyx_L4_argument_unpacking_done;
6986 __pyx_L5_argtuple_error:;
6987 __Pyx_RaiseArgtupleInvalid("is_type_of", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__6987; goto __pyx_L3_error;}
6988 __pyx_L3_error:;
6989 __Pyx_AddTraceback("rados.requires.is_type_of", __pyx_clineno, __pyx_lineno, __pyx_filename);
6990 __Pyx_RefNannyFinishContext();
6991 return NULL((void*)0);
6992 __pyx_L4_argument_unpacking_done:;
6993 __pyx_r = __pyx_pf_5rados_8requires_is_type_of(__pyx_self, __pyx_v_v, __pyx_v_t);
6994
6995 /* function exit code */
6996 __Pyx_RefNannyFinishContext();
6997 return __pyx_r;
6998}
6999
7000static PyObject *__pyx_pf_5rados_8requires_is_type_of(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_v, PyObject *__pyx_v_t) {
7001 PyObject *__pyx_r = NULL((void*)0);
7002 __Pyx_RefNannyDeclarations
7003 int __pyx_t_1;
7004 int __pyx_t_2;
7005 PyObject *__pyx_t_3 = NULL((void*)0);
7006 int __pyx_lineno = 0;
7007 const char *__pyx_filename = NULL((void*)0);
7008 int __pyx_clineno = 0;
7009 __Pyx_RefNannySetupContext("is_type_of", 0);
7010
7011 /* "rados.pyx":536
7012 * def requires(*types):
7013 * def is_type_of(v, t):
7014 * if t is None: # <<<<<<<<<<<<<<
7015 * return v is None
7016 * else:
7017 */
7018 __pyx_t_1 = (__pyx_v_t == Py_None(&_Py_NoneStruct));
7019 __pyx_t_2 = (__pyx_t_1 != 0);
7020 if (__pyx_t_2) {
7021
7022 /* "rados.pyx":537
7023 * def is_type_of(v, t):
7024 * if t is None:
7025 * return v is None # <<<<<<<<<<<<<<
7026 * else:
7027 * return isinstance(v, t)
7028 */
7029 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
7030 __pyx_t_2 = (__pyx_v_v == Py_None(&_Py_NoneStruct));
7031 __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2)((__pyx_t_2) ? (( ((PyObject*)(((PyObject *) &_Py_TrueStruct
)))->ob_refcnt++), ((PyObject *) &_Py_TrueStruct)) : (
( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++), ((PyObject *) &_Py_ZeroStruct)))
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__7031; goto __pyx_L1_error;}
7032 __Pyx_GOTREF(__pyx_t_3);
7033 __pyx_r = __pyx_t_3;
7034 __pyx_t_3 = 0;
7035 goto __pyx_L0;
7036
7037 /* "rados.pyx":536
7038 * def requires(*types):
7039 * def is_type_of(v, t):
7040 * if t is None: # <<<<<<<<<<<<<<
7041 * return v is None
7042 * else:
7043 */
7044 }
7045
7046 /* "rados.pyx":539
7047 * return v is None
7048 * else:
7049 * return isinstance(v, t) # <<<<<<<<<<<<<<
7050 *
7051 * def check_type(val, arg_name, arg_type):
7052 */
7053 /*else*/ {
7054 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
7055 __pyx_t_2 = PyObject_IsInstance(__pyx_v_v, __pyx_v_t); if (unlikely(__pyx_t_2 == -1)__builtin_expect(!!(__pyx_t_2 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__7055; goto __pyx_L1_error;}
7056 __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2)((__pyx_t_2) ? (( ((PyObject*)(((PyObject *) &_Py_TrueStruct
)))->ob_refcnt++), ((PyObject *) &_Py_TrueStruct)) : (
( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++), ((PyObject *) &_Py_ZeroStruct)))
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__7056; goto __pyx_L1_error;}
7057 __Pyx_GOTREF(__pyx_t_3);
7058 __pyx_r = __pyx_t_3;
7059 __pyx_t_3 = 0;
7060 goto __pyx_L0;
7061 }
7062
7063 /* "rados.pyx":535
7064 * # kwargs is an un-ordered dict, so use args instead
7065 * def requires(*types):
7066 * def is_type_of(v, t): # <<<<<<<<<<<<<<
7067 * if t is None:
7068 * return v is None
7069 */
7070
7071 /* function exit code */
7072 __pyx_L1_error:;
7073 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
7074 __Pyx_AddTraceback("rados.requires.is_type_of", __pyx_clineno, __pyx_lineno, __pyx_filename);
7075 __pyx_r = NULL((void*)0);
7076 __pyx_L0:;
7077 __Pyx_XGIVEREF(__pyx_r);
7078 __Pyx_RefNannyFinishContext();
7079 return __pyx_r;
7080}
7081
7082/* "rados.pyx":541
7083 * return isinstance(v, t)
7084 *
7085 * def check_type(val, arg_name, arg_type): # <<<<<<<<<<<<<<
7086 * if isinstance(arg_type, tuple):
7087 * if any(is_type_of(val, t) for t in arg_type):
7088 */
7089
7090/* Python wrapper */
7091static PyObject *__pyx_pw_5rados_8requires_3check_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
7092static PyMethodDef __pyx_mdef_5rados_8requires_3check_type = {"check_type", (PyCFunction)__pyx_pw_5rados_8requires_3check_type, METH_VARARGS0x0001|METH_KEYWORDS0x0002, 0};
7093static PyObject *__pyx_pw_5rados_8requires_3check_type(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7094 PyObject *__pyx_v_val = 0;
7095 PyObject *__pyx_v_arg_name = 0;
7096 PyObject *__pyx_v_arg_type = 0;
7097 int __pyx_lineno = 0;
7098 const char *__pyx_filename = NULL((void*)0);
7099 int __pyx_clineno = 0;
7100 PyObject *__pyx_r = 0;
7101 __Pyx_RefNannyDeclarations
7102 __Pyx_RefNannySetupContext("check_type (wrapper)", 0);
7103 {
7104 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_val,&__pyx_n_s_arg_name,&__pyx_n_s_arg_type,0};
7105 PyObject* values[3] = {0,0,0};
7106 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
7107 Py_ssize_t kw_args;
7108 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
7109 switch (pos_args) {
7110 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
7111 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
7112 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
7113 case 0: break;
7114 default: goto __pyx_L5_argtuple_error;
7115 }
7116 kw_args = PyDict_Size(__pyx_kwds);
7117 switch (pos_args) {
7118 case 0:
7119 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val
)) != 0), 1)
) kw_args--;
7120 else goto __pyx_L5_argtuple_error;
7121 case 1:
7122 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg_name
)) != 0), 1)
) kw_args--;
7123 else {
7124 __Pyx_RaiseArgtupleInvalid("check_type", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__7124; goto __pyx_L3_error;}
7125 }
7126 case 2:
7127 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg_type)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg_type
)) != 0), 1)
) kw_args--;
7128 else {
7129 __Pyx_RaiseArgtupleInvalid("check_type", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__7129; goto __pyx_L3_error;}
7130 }
7131 }
7132 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
7133 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "check_type") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "check_type") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__7133; goto __pyx_L3_error;}
7134 }
7135 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
7136 goto __pyx_L5_argtuple_error;
7137 } else {
7138 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
7139 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
7140 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
7141 }
7142 __pyx_v_val = values[0];
7143 __pyx_v_arg_name = values[1];
7144 __pyx_v_arg_type = values[2];
7145 }
7146 goto __pyx_L4_argument_unpacking_done;
7147 __pyx_L5_argtuple_error:;
7148 __Pyx_RaiseArgtupleInvalid("check_type", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__7148; goto __pyx_L3_error;}
7149 __pyx_L3_error:;
7150 __Pyx_AddTraceback("rados.requires.check_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
7151 __Pyx_RefNannyFinishContext();
7152 return NULL((void*)0);
7153 __pyx_L4_argument_unpacking_done:;
7154 __pyx_r = __pyx_pf_5rados_8requires_2check_type(__pyx_self, __pyx_v_val, __pyx_v_arg_name, __pyx_v_arg_type);
7155
7156 /* function exit code */
7157 __Pyx_RefNannyFinishContext();
7158 return __pyx_r;
7159}
7160static PyObject *__pyx_gb_5rados_8requires_10check_type_2generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
7161
7162/* "rados.pyx":543
7163 * def check_type(val, arg_name, arg_type):
7164 * if isinstance(arg_type, tuple):
7165 * if any(is_type_of(val, t) for t in arg_type): # <<<<<<<<<<<<<<
7166 * return
7167 * type_names = ' or '.join('None' if t is None else t.__name__
7168 */
7169
7170static PyObject *__pyx_pf_5rados_8requires_10check_type_genexpr(PyObject *__pyx_self) {
7171 struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *__pyx_cur_scope;
7172 PyObject *__pyx_r = NULL((void*)0);
7173 __Pyx_RefNannyDeclarations
7174 int __pyx_lineno = 0;
7175 const char *__pyx_filename = NULL((void*)0);
7176 int __pyx_clineno = 0;
7177 __Pyx_RefNannySetupContext("genexpr", 0);
7178 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *)__pyx_tp_new_5rados___pyx_scope_struct_2_genexpr(__pyx_ptype_5rados___pyx_scope_struct_2_genexpr, __pyx_empty_tuple, NULL((void*)0));
7179 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
7180 __Pyx_RefNannyFinishContext();
7181 return NULL((void*)0);
7182 }
7183 __Pyx_GOTREF(__pyx_cur_scope);
7184 __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *) __pyx_self;
7185 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope))( ((PyObject*)(((PyObject *)__pyx_cur_scope->__pyx_outer_scope
)))->ob_refcnt++)
;
7186 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
7187 {
7188 __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_5rados_8requires_10check_type_2generator, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_requires_locals_check_type_local)__Pyx__Coroutine_New(__pyx_GeneratorType, (__pyx_coroutine_body_t
) __pyx_gb_5rados_8requires_10check_type_2generator, (PyObject
*) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_requires_locals_check_type_local
)
; if (unlikely(!gen)__builtin_expect(!!(!gen), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7188; goto __pyx_L1_error;}
7189 __Pyx_DECREF(__pyx_cur_scope)do { if ( --((PyObject*)(__pyx_cur_scope))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(__pyx_cur_scope)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_cur_scope
)))); } while (0)
;
7190 __Pyx_RefNannyFinishContext();
7191 return (PyObject *) gen;
7192 }
7193
7194 /* function exit code */
7195 __pyx_L1_error:;
7196 __Pyx_AddTraceback("rados.requires.check_type.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
7197 __pyx_r = NULL((void*)0);
7198 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
7199 __Pyx_XGIVEREF(__pyx_r);
7200 __Pyx_RefNannyFinishContext();
7201 return __pyx_r;
7202}
7203
7204static PyObject *__pyx_gb_5rados_8requires_10check_type_2generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */
7205{
7206 struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *__pyx_cur_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *)__pyx_generator->closure);
7207 PyObject *__pyx_r = NULL((void*)0);
7208 PyObject *__pyx_t_1 = NULL((void*)0);
7209 Py_ssize_t __pyx_t_2;
7210 PyObject *(*__pyx_t_3)(PyObject *);
7211 PyObject *__pyx_t_4 = NULL((void*)0);
7212 PyObject *__pyx_t_5 = NULL((void*)0);
7213 int __pyx_t_6;
7214 int __pyx_lineno = 0;
7215 const char *__pyx_filename = NULL((void*)0);
7216 int __pyx_clineno = 0;
7217 __Pyx_RefNannyDeclarations
7218 __Pyx_RefNannySetupContext("None", 0);
7219 switch (__pyx_generator->resume_label) {
7220 case 0: goto __pyx_L3_first_run;
7221 default: /* CPython raises the right error here */
7222 __Pyx_RefNannyFinishContext();
7223 return NULL((void*)0);
7224 }
7225 __pyx_L3_first_run:;
7226 if (unlikely(!__pyx_sent_value)__builtin_expect(!!(!__pyx_sent_value), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7226; goto __pyx_L1_error;}
7227 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_arg_type), 0)
) { __Pyx_RaiseClosureNameError("arg_type"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7227; goto __pyx_L1_error;} }
7228 if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type))__builtin_expect(!!(((((PyObject*)(__pyx_cur_scope->__pyx_outer_scope
->__pyx_v_arg_type))->ob_type) == &PyList_Type)), 1
)
|| PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type)((((PyObject*)(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type
))->ob_type) == &PyTuple_Type)
) {
7229 __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type; __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_2 = 0;
7230 __pyx_t_3 = NULL((void*)0);
7231 } else {
7232 __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7232; goto __pyx_L1_error;}
7233 __Pyx_GOTREF(__pyx_t_1);
7234 __pyx_t_3 = Py_TYPE(__pyx_t_1)(((PyObject*)(__pyx_t_1))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7234; goto __pyx_L1_error;}
7235 }
7236 for (;;) {
7237 if (likely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 1)) {
7238 if (likely(PyList_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyList_Type)), 1)
) {
7239 if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
7240 #if CYTHON_COMPILING_IN_CPYTHON1
7241 __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2)(((PyListObject *)(__pyx_t_1))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7241; goto __pyx_L1_error;}
7242 #else
7243 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7243; goto __pyx_L1_error;}
7244 __Pyx_GOTREF(__pyx_t_4);
7245 #endif
7246 } else {
7247 if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
7248 #if CYTHON_COMPILING_IN_CPYTHON1
7249 __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7249; goto __pyx_L1_error;}
7250 #else
7251 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7251; goto __pyx_L1_error;}
7252 __Pyx_GOTREF(__pyx_t_4);
7253 #endif
7254 }
7255 } else {
7256 __pyx_t_4 = __pyx_t_3(__pyx_t_1);
7257 if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {
7258 PyObject* exc_type = PyErr_Occurred();
7259 if (exc_type) {
7260 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
7261 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7261; goto __pyx_L1_error;}
7262 }
7263 break;
7264 }
7265 __Pyx_GOTREF(__pyx_t_4);
7266 }
7267 __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
7268 __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_cur_scope->__pyx_v_t
; __pyx_cur_scope->__pyx_v_t = __pyx_t_4; do { if ((tmp) ==
((void*)0)) ; else do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0); } while (0)
;
7269 __Pyx_GIVEREF(__pyx_t_4);
7270 __pyx_t_4 = 0;
7271 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_val)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_val), 0)
) { __Pyx_RaiseClosureNameError("val"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7271; goto __pyx_L1_error;} }
7272 __pyx_t_4 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_val;
7273 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
7274 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_is_type_of)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_outer_scope->__pyx_v_is_type_of), 0)
) { __Pyx_RaiseClosureNameError("is_type_of"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7274; goto __pyx_L1_error;} }
7275 __pyx_t_5 = __pyx_pf_5rados_8requires_is_type_of(__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_is_type_of, __pyx_t_4, __pyx_cur_scope->__pyx_v_t); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7275; goto __pyx_L1_error;}
7276 __Pyx_GOTREF(__pyx_t_5);
7277 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
7278 __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)__builtin_expect(!!(__pyx_t_6 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7278; goto __pyx_L1_error;}
7279 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
7280 if (__pyx_t_6) {
7281 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
7282 __Pyx_INCREF(Py_True)( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->ob_refcnt
++)
;
7283 __pyx_r = Py_True((PyObject *) &_Py_TrueStruct);
7284 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7285 goto __pyx_L0;
7286 }
7287 }
7288 /*else*/ {
7289 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
7290 __Pyx_INCREF(Py_False)( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++)
;
7291 __pyx_r = Py_False((PyObject *) &_Py_ZeroStruct);
7292 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7293 goto __pyx_L0;
7294 }
7295 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7296
7297 /* function exit code */
7298 goto __pyx_L0;
7299 __pyx_L1_error:;
7300 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
7301 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
7302 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
7303 __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
7304 __pyx_L0:;
7305 __Pyx_XGIVEREF(__pyx_r);
7306 __pyx_generator->resume_label = -1;
7307 __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
7308 __Pyx_RefNannyFinishContext();
7309 return __pyx_r;
7310}
7311static PyObject *__pyx_gb_5rados_8requires_10check_type_5generator1(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
7312
7313/* "rados.pyx":545
7314 * if any(is_type_of(val, t) for t in arg_type):
7315 * return
7316 * type_names = ' or '.join('None' if t is None else t.__name__ # <<<<<<<<<<<<<<
7317 * for t in arg_type)
7318 * raise TypeError('%s must be %s' % (arg_name, type_names))
7319 */
7320
7321static PyObject *__pyx_pf_5rados_8requires_10check_type_3genexpr(PyObject *__pyx_self) {
7322 struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
7323 PyObject *__pyx_r = NULL((void*)0);
7324 __Pyx_RefNannyDeclarations
7325 int __pyx_lineno = 0;
7326 const char *__pyx_filename = NULL((void*)0);
7327 int __pyx_clineno = 0;
7328 __Pyx_RefNannySetupContext("genexpr", 0);
7329 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *)__pyx_tp_new_5rados___pyx_scope_struct_3_genexpr(__pyx_ptype_5rados___pyx_scope_struct_3_genexpr, __pyx_empty_tuple, NULL((void*)0));
7330 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
7331 __Pyx_RefNannyFinishContext();
7332 return NULL((void*)0);
7333 }
7334 __Pyx_GOTREF(__pyx_cur_scope);
7335 __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *) __pyx_self;
7336 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope))( ((PyObject*)(((PyObject *)__pyx_cur_scope->__pyx_outer_scope
)))->ob_refcnt++)
;
7337 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
7338 {
7339 __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_5rados_8requires_10check_type_5generator1, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_requires_locals_check_type_local)__Pyx__Coroutine_New(__pyx_GeneratorType, (__pyx_coroutine_body_t
) __pyx_gb_5rados_8requires_10check_type_5generator1, (PyObject
*) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_requires_locals_check_type_local
)
; if (unlikely(!gen)__builtin_expect(!!(!gen), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__7339; goto __pyx_L1_error;}
7340 __Pyx_DECREF(__pyx_cur_scope)do { if ( --((PyObject*)(__pyx_cur_scope))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(__pyx_cur_scope)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_cur_scope
)))); } while (0)
;
7341 __Pyx_RefNannyFinishContext();
7342 return (PyObject *) gen;
7343 }
7344
7345 /* function exit code */
7346 __pyx_L1_error:;
7347 __Pyx_AddTraceback("rados.requires.check_type.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
7348 __pyx_r = NULL((void*)0);
7349 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
7350 __Pyx_XGIVEREF(__pyx_r);
7351 __Pyx_RefNannyFinishContext();
7352 return __pyx_r;
7353}
7354
7355static PyObject *__pyx_gb_5rados_8requires_10check_type_5generator1(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */
7356{
7357 struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *__pyx_cur_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *)__pyx_generator->closure);
7358 PyObject *__pyx_r = NULL((void*)0);
7359 PyObject *__pyx_t_1 = NULL((void*)0);
7360 Py_ssize_t __pyx_t_2;
7361 PyObject *(*__pyx_t_3)(PyObject *);
7362 PyObject *__pyx_t_4 = NULL((void*)0);
7363 int __pyx_t_5;
7364 PyObject *__pyx_t_6 = NULL((void*)0);
7365 int __pyx_lineno = 0;
7366 const char *__pyx_filename = NULL((void*)0);
7367 int __pyx_clineno = 0;
7368 __Pyx_RefNannyDeclarations
7369 __Pyx_RefNannySetupContext("None", 0);
7370 switch (__pyx_generator->resume_label) {
7371 case 0: goto __pyx_L3_first_run;
7372 case 1: goto __pyx_L6_resume_from_yield;
7373 default: /* CPython raises the right error here */
7374 __Pyx_RefNannyFinishContext();
7375 return NULL((void*)0);
7376 }
7377 __pyx_L3_first_run:;
7378 if (unlikely(!__pyx_sent_value)__builtin_expect(!!(!__pyx_sent_value), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__7378; goto __pyx_L1_error;}
7379
7380 /* "rados.pyx":546
7381 * return
7382 * type_names = ' or '.join('None' if t is None else t.__name__
7383 * for t in arg_type) # <<<<<<<<<<<<<<
7384 * raise TypeError('%s must be %s' % (arg_name, type_names))
7385 * else:
7386 */
7387 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_arg_type), 0)
) { __Pyx_RaiseClosureNameError("arg_type"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7387; goto __pyx_L1_error;} }
7388 if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type))__builtin_expect(!!(((((PyObject*)(__pyx_cur_scope->__pyx_outer_scope
->__pyx_v_arg_type))->ob_type) == &PyList_Type)), 1
)
|| PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type)((((PyObject*)(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type
))->ob_type) == &PyTuple_Type)
) {
7389 __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type; __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_2 = 0;
7390 __pyx_t_3 = NULL((void*)0);
7391 } else {
7392 __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_arg_type); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7392; goto __pyx_L1_error;}
7393 __Pyx_GOTREF(__pyx_t_1);
7394 __pyx_t_3 = Py_TYPE(__pyx_t_1)(((PyObject*)(__pyx_t_1))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7394; goto __pyx_L1_error;}
7395 }
7396 for (;;) {
7397 if (likely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 1)) {
7398 if (likely(PyList_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyList_Type)), 1)
) {
7399 if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
7400 #if CYTHON_COMPILING_IN_CPYTHON1
7401 __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2)(((PyListObject *)(__pyx_t_1))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7401; goto __pyx_L1_error;}
7402 #else
7403 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7403; goto __pyx_L1_error;}
7404 __Pyx_GOTREF(__pyx_t_4);
7405 #endif
7406 } else {
7407 if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
7408 #if CYTHON_COMPILING_IN_CPYTHON1
7409 __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7409; goto __pyx_L1_error;}
7410 #else
7411 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7411; goto __pyx_L1_error;}
7412 __Pyx_GOTREF(__pyx_t_4);
7413 #endif
7414 }
7415 } else {
7416 __pyx_t_4 = __pyx_t_3(__pyx_t_1);
7417 if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {
7418 PyObject* exc_type = PyErr_Occurred();
7419 if (exc_type) {
7420 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
7421 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 546; __pyx_clineno = __LINE__7421; goto __pyx_L1_error;}
7422 }
7423 break;
7424 }
7425 __Pyx_GOTREF(__pyx_t_4);
7426 }
7427 __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
7428 __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_cur_scope->__pyx_v_t
; __pyx_cur_scope->__pyx_v_t = __pyx_t_4; do { if ((tmp) ==
((void*)0)) ; else do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0); } while (0)
;
7429 __Pyx_GIVEREF(__pyx_t_4);
7430 __pyx_t_4 = 0;
7431
7432 /* "rados.pyx":545
7433 * if any(is_type_of(val, t) for t in arg_type):
7434 * return
7435 * type_names = ' or '.join('None' if t is None else t.__name__ # <<<<<<<<<<<<<<
7436 * for t in arg_type)
7437 * raise TypeError('%s must be %s' % (arg_name, type_names))
7438 */
7439 __pyx_t_5 = (__pyx_cur_scope->__pyx_v_t == Py_None(&_Py_NoneStruct));
7440 if ((__pyx_t_5 != 0)) {
7441 __Pyx_INCREF(__pyx_n_s_None)( ((PyObject*)(__pyx_n_s_None))->ob_refcnt++);
7442 __pyx_t_4 = __pyx_n_s_None;
7443 } else {
7444 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_t, __pyx_n_s_name); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__7444; goto __pyx_L1_error;}
7445 __Pyx_GOTREF(__pyx_t_6);
7446 __pyx_t_4 = __pyx_t_6;
7447 __pyx_t_6 = 0;
7448 }
7449 __pyx_r = __pyx_t_4;
7450 __pyx_t_4 = 0;
7451 __Pyx_XGIVEREF(__pyx_t_1);
7452 __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
7453 __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
7454 __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
7455 __Pyx_XGIVEREF(__pyx_r);
7456 __Pyx_RefNannyFinishContext();
7457 /* return from generator, yielding value */
7458 __pyx_generator->resume_label = 1;
7459 return __pyx_r;
7460 __pyx_L6_resume_from_yield:;
7461 __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
7462 __pyx_cur_scope->__pyx_t_0 = 0;
7463 __Pyx_XGOTREF(__pyx_t_1);
7464 __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
7465 __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
7466 if (unlikely(!__pyx_sent_value)__builtin_expect(!!(!__pyx_sent_value), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__7466; goto __pyx_L1_error;}
7467
7468 /* "rados.pyx":546
7469 * return
7470 * type_names = ' or '.join('None' if t is None else t.__name__
7471 * for t in arg_type) # <<<<<<<<<<<<<<
7472 * raise TypeError('%s must be %s' % (arg_name, type_names))
7473 * else:
7474 */
7475 }
7476 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7477
7478 /* "rados.pyx":545
7479 * if any(is_type_of(val, t) for t in arg_type):
7480 * return
7481 * type_names = ' or '.join('None' if t is None else t.__name__ # <<<<<<<<<<<<<<
7482 * for t in arg_type)
7483 * raise TypeError('%s must be %s' % (arg_name, type_names))
7484 */
7485
7486 /* function exit code */
7487 PyErr_SetNone(PyExc_StopIteration);
7488 goto __pyx_L0;
7489 __pyx_L1_error:;
7490 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
7491 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
7492 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
7493 __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
7494 __pyx_L0:;
7495 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
; __pyx_r = 0;
7496 __pyx_generator->resume_label = -1;
7497 __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
7498 __Pyx_RefNannyFinishContext();
7499 return __pyx_r;
7500}
7501
7502/* "rados.pyx":541
7503 * return isinstance(v, t)
7504 *
7505 * def check_type(val, arg_name, arg_type): # <<<<<<<<<<<<<<
7506 * if isinstance(arg_type, tuple):
7507 * if any(is_type_of(val, t) for t in arg_type):
7508 */
7509
7510static PyObject *__pyx_pf_5rados_8requires_2check_type(PyObject *__pyx_self, PyObject *__pyx_v_val, PyObject *__pyx_v_arg_name, PyObject *__pyx_v_arg_type) {
7511 struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *__pyx_cur_scope;
7512 PyObject *__pyx_v_type_names = NULL((void*)0);
7513 PyObject *__pyx_r = NULL((void*)0);
7514 __Pyx_RefNannyDeclarations
7515 PyObject *__pyx_t_1 = NULL((void*)0);
7516 int __pyx_t_2;
7517 int __pyx_t_3;
7518 PyObject *__pyx_t_4 = NULL((void*)0);
7519 PyObject *__pyx_t_5 = NULL((void*)0);
7520 int __pyx_lineno = 0;
7521 const char *__pyx_filename = NULL((void*)0);
7522 int __pyx_clineno = 0;
7523 __Pyx_RefNannySetupContext("check_type", 0);
7524 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *)__pyx_tp_new_5rados___pyx_scope_struct_1_check_type(__pyx_ptype_5rados___pyx_scope_struct_1_check_type, __pyx_empty_tuple, NULL((void*)0));
7525 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
7526 __Pyx_RefNannyFinishContext();
7527 return NULL((void*)0);
7528 }
7529 __Pyx_GOTREF(__pyx_cur_scope);
7530 __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct__requires *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
7531 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope))( ((PyObject*)(((PyObject *)__pyx_cur_scope->__pyx_outer_scope
)))->ob_refcnt++)
;
7532 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
7533 __pyx_cur_scope->__pyx_v_val = __pyx_v_val;
7534 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_val)( ((PyObject*)(__pyx_cur_scope->__pyx_v_val))->ob_refcnt
++)
;
7535 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_val);
7536 __pyx_cur_scope->__pyx_v_arg_type = __pyx_v_arg_type;
7537 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_arg_type)( ((PyObject*)(__pyx_cur_scope->__pyx_v_arg_type))->ob_refcnt
++)
;
7538 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_arg_type);
7539
7540 /* "rados.pyx":542
7541 *
7542 * def check_type(val, arg_name, arg_type):
7543 * if isinstance(arg_type, tuple): # <<<<<<<<<<<<<<
7544 * if any(is_type_of(val, t) for t in arg_type):
7545 * return
7546 */
7547 __pyx_t_1 = __pyx_cur_scope->__pyx_v_arg_type;
7548 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
7549 __pyx_t_2 = PyTuple_Check(__pyx_t_1)((((((PyObject*)(__pyx_t_1))->ob_type))->tp_flags &
((1L<<26))) != 0)
;
7550 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7551 __pyx_t_3 = (__pyx_t_2 != 0);
7552 if (__pyx_t_3) {
7553
7554 /* "rados.pyx":543
7555 * def check_type(val, arg_name, arg_type):
7556 * if isinstance(arg_type, tuple):
7557 * if any(is_type_of(val, t) for t in arg_type): # <<<<<<<<<<<<<<
7558 * return
7559 * type_names = ' or '.join('None' if t is None else t.__name__
7560 */
7561 __pyx_t_1 = __pyx_pf_5rados_8requires_10check_type_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7561; goto __pyx_L1_error;}
7562 __Pyx_GOTREF(__pyx_t_1);
7563 __pyx_t_4 = __Pyx_Generator_Next(__pyx_t_1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7563; goto __pyx_L1_error;}
7564 __Pyx_GOTREF(__pyx_t_4);
7565 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7566 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__7566; goto __pyx_L1_error;}
7567 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
7568 if (__pyx_t_3) {
7569
7570 /* "rados.pyx":544
7571 * if isinstance(arg_type, tuple):
7572 * if any(is_type_of(val, t) for t in arg_type):
7573 * return # <<<<<<<<<<<<<<
7574 * type_names = ' or '.join('None' if t is None else t.__name__
7575 * for t in arg_type)
7576 */
7577 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
7578 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
7579 goto __pyx_L0;
7580
7581 /* "rados.pyx":543
7582 * def check_type(val, arg_name, arg_type):
7583 * if isinstance(arg_type, tuple):
7584 * if any(is_type_of(val, t) for t in arg_type): # <<<<<<<<<<<<<<
7585 * return
7586 * type_names = ' or '.join('None' if t is None else t.__name__
7587 */
7588 }
7589
7590 /* "rados.pyx":545
7591 * if any(is_type_of(val, t) for t in arg_type):
7592 * return
7593 * type_names = ' or '.join('None' if t is None else t.__name__ # <<<<<<<<<<<<<<
7594 * for t in arg_type)
7595 * raise TypeError('%s must be %s' % (arg_name, type_names))
7596 */
7597 __pyx_t_4 = __pyx_pf_5rados_8requires_10check_type_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__7597; goto __pyx_L1_error;}
7598 __Pyx_GOTREF(__pyx_t_4);
7599 __pyx_t_1 = __Pyx_PyString_Join_PyString_Join(__pyx_kp_s_or, __pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__7599; goto __pyx_L1_error;}
7600 __Pyx_GOTREF(__pyx_t_1);
7601 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
7602 __pyx_v_type_names = ((PyObject*)__pyx_t_1);
7603 __pyx_t_1 = 0;
7604
7605 /* "rados.pyx":547
7606 * type_names = ' or '.join('None' if t is None else t.__name__
7607 * for t in arg_type)
7608 * raise TypeError('%s must be %s' % (arg_name, type_names)) # <<<<<<<<<<<<<<
7609 * else:
7610 * if is_type_of(val, arg_type):
7611 */
7612 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__7612; goto __pyx_L1_error;}
7613 __Pyx_GOTREF(__pyx_t_1);
7614 __Pyx_INCREF(__pyx_v_arg_name)( ((PyObject*)(__pyx_v_arg_name))->ob_refcnt++);
7615 __Pyx_GIVEREF(__pyx_v_arg_name);
7616 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_arg_name)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_v_arg_name
)
;
7617 __Pyx_INCREF(__pyx_v_type_names)( ((PyObject*)(__pyx_v_type_names))->ob_refcnt++);
7618 __Pyx_GIVEREF(__pyx_v_type_names);
7619 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_type_names)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_v_type_names
)
;
7620 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_s_must_be_s, __pyx_t_1)PyString_Format(__pyx_kp_s_s_must_be_s, __pyx_t_1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__7620; goto __pyx_L1_error;}
7621 __Pyx_GOTREF(__pyx_t_4);
7622 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7623 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__7623; goto __pyx_L1_error;}
7624 __Pyx_GOTREF(__pyx_t_1);
7625 __Pyx_GIVEREF(__pyx_t_4);
7626 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_4);
7627 __pyx_t_4 = 0;
7628 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__7628; goto __pyx_L1_error;}
7629 __Pyx_GOTREF(__pyx_t_4);
7630 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7631 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
7632 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
7633 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__7633; goto __pyx_L1_error;}
7634
7635 /* "rados.pyx":542
7636 *
7637 * def check_type(val, arg_name, arg_type):
7638 * if isinstance(arg_type, tuple): # <<<<<<<<<<<<<<
7639 * if any(is_type_of(val, t) for t in arg_type):
7640 * return
7641 */
7642 }
7643
7644 /* "rados.pyx":549
7645 * raise TypeError('%s must be %s' % (arg_name, type_names))
7646 * else:
7647 * if is_type_of(val, arg_type): # <<<<<<<<<<<<<<
7648 * return
7649 * assert(arg_type is not None)
7650 */
7651 /*else*/ {
7652 __pyx_t_4 = __pyx_cur_scope->__pyx_v_val;
7653 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
7654 __pyx_t_1 = __pyx_cur_scope->__pyx_v_arg_type;
7655 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
7656 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_is_type_of)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_is_type_of), 0)
) { __Pyx_RaiseClosureNameError("is_type_of"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__7656; goto __pyx_L1_error;} }
7657 __pyx_t_5 = __pyx_pf_5rados_8requires_is_type_of(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_is_type_of, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__7657; goto __pyx_L1_error;}
7658 __Pyx_GOTREF(__pyx_t_5);
7659 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
7660 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7661 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__7661; goto __pyx_L1_error;}
7662 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
7663 if (__pyx_t_3) {
7664
7665 /* "rados.pyx":550
7666 * else:
7667 * if is_type_of(val, arg_type):
7668 * return # <<<<<<<<<<<<<<
7669 * assert(arg_type is not None)
7670 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
7671 */
7672 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
7673 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
7674 goto __pyx_L0;
7675
7676 /* "rados.pyx":549
7677 * raise TypeError('%s must be %s' % (arg_name, type_names))
7678 * else:
7679 * if is_type_of(val, arg_type): # <<<<<<<<<<<<<<
7680 * return
7681 * assert(arg_type is not None)
7682 */
7683 }
7684
7685 /* "rados.pyx":551
7686 * if is_type_of(val, arg_type):
7687 * return
7688 * assert(arg_type is not None) # <<<<<<<<<<<<<<
7689 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
7690 *
7691 */
7692 #ifndef CYTHON_WITHOUT_ASSERTIONS
7693 if (unlikely(!Py_OptimizeFlag)__builtin_expect(!!(!Py_OptimizeFlag), 0)) {
7694 __pyx_t_3 = (__pyx_cur_scope->__pyx_v_arg_type != Py_None(&_Py_NoneStruct));
7695 if (unlikely(!(__pyx_t_3 != 0))__builtin_expect(!!(!(__pyx_t_3 != 0)), 0)) {
7696 PyErr_SetNone(PyExc_AssertionError);
7697 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 551; __pyx_clineno = __LINE__7697; goto __pyx_L1_error;}
7698 }
7699 }
7700 #endif
7701
7702 /* "rados.pyx":552
7703 * return
7704 * assert(arg_type is not None)
7705 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__)) # <<<<<<<<<<<<<<
7706 *
7707 * def wrapper(f):
7708 */
7709 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_arg_type, __pyx_n_s_name); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__7709; goto __pyx_L1_error;}
7710 __Pyx_GOTREF(__pyx_t_5);
7711 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__7711; goto __pyx_L1_error;}
7712 __Pyx_GOTREF(__pyx_t_1);
7713 __Pyx_INCREF(__pyx_v_arg_name)( ((PyObject*)(__pyx_v_arg_name))->ob_refcnt++);
7714 __Pyx_GIVEREF(__pyx_v_arg_name);
7715 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_arg_name)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_v_arg_name
)
;
7716 __Pyx_GIVEREF(__pyx_t_5);
7717 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_5);
7718 __pyx_t_5 = 0;
7719 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_s_must_be_s, __pyx_t_1)PyString_Format(__pyx_kp_s_s_must_be_s, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__7719; goto __pyx_L1_error;}
7720 __Pyx_GOTREF(__pyx_t_5);
7721 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7722 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__7722; goto __pyx_L1_error;}
7723 __Pyx_GOTREF(__pyx_t_1);
7724 __Pyx_GIVEREF(__pyx_t_5);
7725 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_5);
7726 __pyx_t_5 = 0;
7727 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__7727; goto __pyx_L1_error;}
7728 __Pyx_GOTREF(__pyx_t_5);
7729 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
7730 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
7731 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
7732 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__7732; goto __pyx_L1_error;}
7733 }
7734
7735 /* "rados.pyx":541
7736 * return isinstance(v, t)
7737 *
7738 * def check_type(val, arg_name, arg_type): # <<<<<<<<<<<<<<
7739 * if isinstance(arg_type, tuple):
7740 * if any(is_type_of(val, t) for t in arg_type):
7741 */
7742
7743 /* function exit code */
7744 __pyx_L1_error:;
7745 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
7746 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
7747 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
7748 __Pyx_AddTraceback("rados.requires.check_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
7749 __pyx_r = NULL((void*)0);
7750 __pyx_L0:;
7751 __Pyx_XDECREF(__pyx_v_type_names)do { if ((__pyx_v_type_names) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_type_names))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_type_names)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_type_names
)))); } while (0); } while (0)
;
7752 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
7753 __Pyx_XGIVEREF(__pyx_r);
7754 __Pyx_RefNannyFinishContext();
7755 return __pyx_r;
7756}
7757
7758/* "rados.pyx":554
7759 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
7760 *
7761 * def wrapper(f): # <<<<<<<<<<<<<<
7762 * # FIXME(sileht): this stop with
7763 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
7764 */
7765
7766/* Python wrapper */
7767static PyObject *__pyx_pw_5rados_8requires_5wrapper(PyObject *__pyx_self, PyObject *__pyx_v_f); /*proto*/
7768static PyMethodDef __pyx_mdef_5rados_8requires_5wrapper = {"wrapper", (PyCFunction)__pyx_pw_5rados_8requires_5wrapper, METH_O0x0008, 0};
7769static PyObject *__pyx_pw_5rados_8requires_5wrapper(PyObject *__pyx_self, PyObject *__pyx_v_f) {
7770 PyObject *__pyx_r = 0;
7771 __Pyx_RefNannyDeclarations
7772 __Pyx_RefNannySetupContext("wrapper (wrapper)", 0);
7773 __pyx_r = __pyx_pf_5rados_8requires_4wrapper(__pyx_self, ((PyObject *)__pyx_v_f));
7774
7775 /* function exit code */
7776 __Pyx_RefNannyFinishContext();
7777 return __pyx_r;
7778}
7779
7780/* "rados.pyx":558
7781 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
7782 * # @wraps(f)
7783 * def validate_func(*args, **kwargs): # <<<<<<<<<<<<<<
7784 * # ignore the `self` arg
7785 * pos_args = zip(args[1:], types)
7786 */
7787
7788/* Python wrapper */
7789static PyObject *__pyx_pw_5rados_8requires_7wrapper_1validate_func(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
7790static PyMethodDef __pyx_mdef_5rados_8requires_7wrapper_1validate_func = {"validate_func", (PyCFunction)__pyx_pw_5rados_8requires_7wrapper_1validate_func, METH_VARARGS0x0001|METH_KEYWORDS0x0002, 0};
7791static PyObject *__pyx_pw_5rados_8requires_7wrapper_1validate_func(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7792 PyObject *__pyx_v_args = 0;
7793 PyObject *__pyx_v_kwargs = 0;
7794 PyObject *__pyx_r = 0;
7795 __Pyx_RefNannyDeclarations
7796 __Pyx_RefNannySetupContext("validate_func (wrapper)", 0);
7797 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "validate_func", 1))__builtin_expect(!!(!__Pyx_CheckKeywordStrings(__pyx_kwds, "validate_func"
, 1)), 0)
) return NULL((void*)0);
7798 __pyx_v_kwargs = (__pyx_kwds) ? PyDict_Copy(__pyx_kwds) : PyDict_New(); if (unlikely(!__pyx_v_kwargs)__builtin_expect(!!(!__pyx_v_kwargs), 0)) return NULL((void*)0);
7799 __Pyx_GOTREF(__pyx_v_kwargs);
7800 __Pyx_INCREF(__pyx_args)( ((PyObject*)(__pyx_args))->ob_refcnt++);
7801 __pyx_v_args = __pyx_args;
7802 __pyx_r = __pyx_pf_5rados_8requires_7wrapper_validate_func(__pyx_self, __pyx_v_args, __pyx_v_kwargs);
7803
7804 /* function exit code */
7805 __Pyx_XDECREF(__pyx_v_args)do { if ((__pyx_v_args) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_args))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_args)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_args)))); } while (0); } while
(0)
;
7806 __Pyx_XDECREF(__pyx_v_kwargs)do { if ((__pyx_v_kwargs) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_kwargs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs)))); } while
(0); } while (0)
;
7807 __Pyx_RefNannyFinishContext();
7808 return __pyx_r;
7809}
7810static PyObject *__pyx_gb_5rados_8requires_7wrapper_13validate_func_2generator2(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
7811
7812/* "rados.pyx":561
7813 * # ignore the `self` arg
7814 * pos_args = zip(args[1:], types)
7815 * named_args = ((kwargs[name], (name, spec)) for name, spec in types # <<<<<<<<<<<<<<
7816 * if name in kwargs)
7817 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
7818 */
7819
7820static PyObject *__pyx_pf_5rados_8requires_7wrapper_13validate_func_genexpr(PyObject *__pyx_self) {
7821 struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
7822 PyObject *__pyx_r = NULL((void*)0);
7823 __Pyx_RefNannyDeclarations
7824 int __pyx_lineno = 0;
7825 const char *__pyx_filename = NULL((void*)0);
7826 int __pyx_clineno = 0;
7827 __Pyx_RefNannySetupContext("genexpr", 0);
7828 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *)__pyx_tp_new_5rados___pyx_scope_struct_6_genexpr(__pyx_ptype_5rados___pyx_scope_struct_6_genexpr, __pyx_empty_tuple, NULL((void*)0));
7829 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
7830 __Pyx_RefNannyFinishContext();
7831 return NULL((void*)0);
7832 }
7833 __Pyx_GOTREF(__pyx_cur_scope);
7834 __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *) __pyx_self;
7835 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope))( ((PyObject*)(((PyObject *)__pyx_cur_scope->__pyx_outer_scope
)))->ob_refcnt++)
;
7836 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
7837 {
7838 __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_5rados_8requires_7wrapper_13validate_func_2generator2, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_requires_locals_wrapper_locals_v)__Pyx__Coroutine_New(__pyx_GeneratorType, (__pyx_coroutine_body_t
) __pyx_gb_5rados_8requires_7wrapper_13validate_func_2generator2
, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_requires_locals_wrapper_locals_v
)
; if (unlikely(!gen)__builtin_expect(!!(!gen), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7838; goto __pyx_L1_error;}
7839 __Pyx_DECREF(__pyx_cur_scope)do { if ( --((PyObject*)(__pyx_cur_scope))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(__pyx_cur_scope)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_cur_scope
)))); } while (0)
;
7840 __Pyx_RefNannyFinishContext();
7841 return (PyObject *) gen;
7842 }
7843
7844 /* function exit code */
7845 __pyx_L1_error:;
7846 __Pyx_AddTraceback("rados.requires.wrapper.validate_func.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
7847 __pyx_r = NULL((void*)0);
7848 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
7849 __Pyx_XGIVEREF(__pyx_r);
7850 __Pyx_RefNannyFinishContext();
7851 return __pyx_r;
7852}
7853
7854static PyObject *__pyx_gb_5rados_8requires_7wrapper_13validate_func_2generator2(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */
7855{
7856 struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *__pyx_cur_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *)__pyx_generator->closure);
7857 PyObject *__pyx_r = NULL((void*)0);
7858 PyObject *__pyx_t_1 = NULL((void*)0);
7859 Py_ssize_t __pyx_t_2;
7860 PyObject *__pyx_t_3 = NULL((void*)0);
7861 PyObject *__pyx_t_4 = NULL((void*)0);
7862 PyObject *__pyx_t_5 = NULL((void*)0);
7863 PyObject *__pyx_t_6 = NULL((void*)0);
7864 PyObject *(*__pyx_t_7)(PyObject *);
7865 int __pyx_t_8;
7866 int __pyx_t_9;
7867 int __pyx_lineno = 0;
7868 const char *__pyx_filename = NULL((void*)0);
7869 int __pyx_clineno = 0;
7870 __Pyx_RefNannyDeclarations
7871 __Pyx_RefNannySetupContext("None", 0);
7872 switch (__pyx_generator->resume_label) {
7873 case 0: goto __pyx_L3_first_run;
7874 case 1: goto __pyx_L9_resume_from_yield;
7875 default: /* CPython raises the right error here */
7876 __Pyx_RefNannyFinishContext();
7877 return NULL((void*)0);
7878 }
7879 __pyx_L3_first_run:;
7880 if (unlikely(!__pyx_sent_value)__builtin_expect(!!(!__pyx_sent_value), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7880; goto __pyx_L1_error;}
7881
7882 /* "rados.pyx":562
7883 * pos_args = zip(args[1:], types)
7884 * named_args = ((kwargs[name], (name, spec)) for name, spec in types
7885 * if name in kwargs) # <<<<<<<<<<<<<<
7886 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
7887 * check_type(arg_val, arg_name, arg_type)
7888 */
7889 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types), 0
)
) { __Pyx_RaiseClosureNameError("types"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__7889; goto __pyx_L1_error;} }
7890 if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types == Py_None)__builtin_expect(!!(__pyx_cur_scope->__pyx_outer_scope->
__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types == (
&_Py_NoneStruct)), 0)
) {
7891 PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
7892 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__7892; goto __pyx_L1_error;}
7893 }
7894
7895 /* "rados.pyx":561
7896 * # ignore the `self` arg
7897 * pos_args = zip(args[1:], types)
7898 * named_args = ((kwargs[name], (name, spec)) for name, spec in types # <<<<<<<<<<<<<<
7899 * if name in kwargs)
7900 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
7901 */
7902 __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types; __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_2 = 0;
7903 for (;;) {
7904 if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
7905 #if CYTHON_COMPILING_IN_CPYTHON1
7906 __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7906; goto __pyx_L1_error;}
7907 #else
7908 __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7908; goto __pyx_L1_error;}
7909 __Pyx_GOTREF(__pyx_t_3);
7910 #endif
7911 if ((likely(PyTuple_CheckExact(__pyx_t_3))__builtin_expect(!!(((((PyObject*)(__pyx_t_3))->ob_type) ==
&PyTuple_Type)), 1)
) || (PyList_CheckExact(__pyx_t_3)((((PyObject*)(__pyx_t_3))->ob_type) == &PyList_Type))) {
7912 PyObject* sequence = __pyx_t_3;
7913 #if CYTHON_COMPILING_IN_CPYTHON1
7914 Py_ssize_t size = Py_SIZE(sequence)(((PyVarObject*)(sequence))->ob_size);
7915 #else
7916 Py_ssize_t size = PySequence_Size(sequence);
7917 #endif
7918 if (unlikely(size != 2)__builtin_expect(!!(size != 2), 0)) {
7919 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
7920 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
7921 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7921; goto __pyx_L1_error;}
7922 }
7923 #if CYTHON_COMPILING_IN_CPYTHON1
7924 if (likely(PyTuple_CheckExact(sequence))__builtin_expect(!!(((((PyObject*)(sequence))->ob_type) ==
&PyTuple_Type)), 1)
) {
7925 __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0)(((PyTupleObject *)(sequence))->ob_item[0]);
7926 __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1)(((PyTupleObject *)(sequence))->ob_item[1]);
7927 } else {
7928 __pyx_t_4 = PyList_GET_ITEM(sequence, 0)(((PyListObject *)(sequence))->ob_item[0]);
7929 __pyx_t_5 = PyList_GET_ITEM(sequence, 1)(((PyListObject *)(sequence))->ob_item[1]);
7930 }
7931 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
7932 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
7933 #else
7934 __pyx_t_4 = PySequence_ITEM(sequence, 0)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 0) )
; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7934; goto __pyx_L1_error;}
7935 __Pyx_GOTREF(__pyx_t_4);
7936 __pyx_t_5 = PySequence_ITEM(sequence, 1)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 1) )
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7936; goto __pyx_L1_error;}
7937 __Pyx_GOTREF(__pyx_t_5);
7938 #endif
7939 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
7940 } else {
7941 Py_ssize_t index = -1;
7942 __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7942; goto __pyx_L1_error;}
7943 __Pyx_GOTREF(__pyx_t_6);
7944 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
7945 __pyx_t_7 = Py_TYPE(__pyx_t_6)(((PyObject*)(__pyx_t_6))->ob_type)->tp_iternext;
7946 index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) goto __pyx_L6_unpacking_failed;
7947 __Pyx_GOTREF(__pyx_t_4);
7948 index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) goto __pyx_L6_unpacking_failed;
7949 __Pyx_GOTREF(__pyx_t_5);
7950 if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7950; goto __pyx_L1_error;}
7951 __pyx_t_7 = NULL((void*)0);
7952 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
7953 goto __pyx_L7_unpacking_done;
7954 __pyx_L6_unpacking_failed:;
7955 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
7956 __pyx_t_7 = NULL((void*)0);
7957 if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
7958 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7958; goto __pyx_L1_error;}
7959 __pyx_L7_unpacking_done:;
7960 }
7961 __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name);
7962 __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_name, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_cur_scope->__pyx_v_name
; __pyx_cur_scope->__pyx_v_name = __pyx_t_4; do { if ((tmp
) == ((void*)0)) ; else do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0); } while (0)
;
7963 __Pyx_GIVEREF(__pyx_t_4);
7964 __pyx_t_4 = 0;
7965 __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_spec);
7966 __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_spec, __pyx_t_5)do { PyObject *tmp = (PyObject *) __pyx_cur_scope->__pyx_v_spec
; __pyx_cur_scope->__pyx_v_spec = __pyx_t_5; do { if ((tmp
) == ((void*)0)) ; else do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0); } while (0)
;
7967 __Pyx_GIVEREF(__pyx_t_5);
7968 __pyx_t_5 = 0;
7969
7970 /* "rados.pyx":562
7971 * pos_args = zip(args[1:], types)
7972 * named_args = ((kwargs[name], (name, spec)) for name, spec in types
7973 * if name in kwargs) # <<<<<<<<<<<<<<
7974 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
7975 * check_type(arg_val, arg_name, arg_type)
7976 */
7977 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_kwargs)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_kwargs), 0)
) { __Pyx_RaiseClosureNameError("kwargs"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__7977; goto __pyx_L1_error;} }
7978 if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_kwargs == Py_None)__builtin_expect(!!(__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_kwargs == (&_Py_NoneStruct)), 0)
) {
7979 PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
7980 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__7980; goto __pyx_L1_error;}
7981 }
7982 __pyx_t_8 = (__Pyx_PyDict_ContainsTF(__pyx_cur_scope->__pyx_v_name, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_kwargs, Py_EQ2)); if (unlikely(__pyx_t_8 < 0)__builtin_expect(!!(__pyx_t_8 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__7982; goto __pyx_L1_error;}
7983 __pyx_t_9 = (__pyx_t_8 != 0);
7984 if (__pyx_t_9) {
7985
7986 /* "rados.pyx":561
7987 * # ignore the `self` arg
7988 * pos_args = zip(args[1:], types)
7989 * named_args = ((kwargs[name], (name, spec)) for name, spec in types # <<<<<<<<<<<<<<
7990 * if name in kwargs)
7991 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
7992 */
7993 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_kwargs)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_kwargs), 0)
) { __Pyx_RaiseClosureNameError("kwargs"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7993; goto __pyx_L1_error;} }
7994 if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_kwargs == Py_None)__builtin_expect(!!(__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_kwargs == (&_Py_NoneStruct)), 0)
) {
7995 PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
7996 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7996; goto __pyx_L1_error;}
7997 }
7998 __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_kwargs, __pyx_cur_scope->__pyx_v_name)PyObject_GetItem(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_kwargs
, __pyx_cur_scope->__pyx_v_name)
; if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__7998; goto __pyx_L1_error;};
7999 __Pyx_GOTREF(__pyx_t_3);
8000 __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__8000; goto __pyx_L1_error;}
8001 __Pyx_GOTREF(__pyx_t_5);
8002 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name)( ((PyObject*)(__pyx_cur_scope->__pyx_v_name))->ob_refcnt
++)
;
8003 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name);
8004 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_cur_scope->__pyx_v_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_cur_scope
->__pyx_v_name)
;
8005 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_spec)( ((PyObject*)(__pyx_cur_scope->__pyx_v_spec))->ob_refcnt
++)
;
8006 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_spec);
8007 PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_cur_scope->__pyx_v_spec)(((PyTupleObject *)(__pyx_t_5))->ob_item[1] = __pyx_cur_scope
->__pyx_v_spec)
;
8008 __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__8008; goto __pyx_L1_error;}
8009 __Pyx_GOTREF(__pyx_t_4);
8010 __Pyx_GIVEREF(__pyx_t_3);
8011 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_3);
8012 __Pyx_GIVEREF(__pyx_t_5);
8013 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_4))->ob_item[1] = __pyx_t_5);
8014 __pyx_t_3 = 0;
8015 __pyx_t_5 = 0;
8016 __pyx_r = __pyx_t_4;
8017 __pyx_t_4 = 0;
8018 __Pyx_XGIVEREF(__pyx_t_1);
8019 __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
8020 __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
8021 __Pyx_XGIVEREF(__pyx_r);
8022 __Pyx_RefNannyFinishContext();
8023 /* return from generator, yielding value */
8024 __pyx_generator->resume_label = 1;
8025 return __pyx_r;
8026 __pyx_L9_resume_from_yield:;
8027 __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
8028 __pyx_cur_scope->__pyx_t_0 = 0;
8029 __Pyx_XGOTREF(__pyx_t_1);
8030 __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
8031 if (unlikely(!__pyx_sent_value)__builtin_expect(!!(!__pyx_sent_value), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__8031; goto __pyx_L1_error;}
8032
8033 /* "rados.pyx":562
8034 * pos_args = zip(args[1:], types)
8035 * named_args = ((kwargs[name], (name, spec)) for name, spec in types
8036 * if name in kwargs) # <<<<<<<<<<<<<<
8037 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
8038 * check_type(arg_val, arg_name, arg_type)
8039 */
8040 }
8041
8042 /* "rados.pyx":561
8043 * # ignore the `self` arg
8044 * pos_args = zip(args[1:], types)
8045 * named_args = ((kwargs[name], (name, spec)) for name, spec in types # <<<<<<<<<<<<<<
8046 * if name in kwargs)
8047 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
8048 */
8049 }
8050 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
8051
8052 /* function exit code */
8053 PyErr_SetNone(PyExc_StopIteration);
8054 goto __pyx_L0;
8055 __pyx_L1_error:;
8056 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
8057 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
8058 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
8059 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
8060 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
8061 __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
8062 __pyx_L0:;
8063 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
; __pyx_r = 0;
8064 __pyx_generator->resume_label = -1;
8065 __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
8066 __Pyx_RefNannyFinishContext();
8067 return __pyx_r;
8068}
8069
8070/* "rados.pyx":558
8071 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
8072 * # @wraps(f)
8073 * def validate_func(*args, **kwargs): # <<<<<<<<<<<<<<
8074 * # ignore the `self` arg
8075 * pos_args = zip(args[1:], types)
8076 */
8077
8078static PyObject *__pyx_pf_5rados_8requires_7wrapper_validate_func(PyObject *__pyx_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
8079 struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *__pyx_cur_scope;
8080 PyObject *__pyx_v_pos_args = NULL((void*)0);
8081 PyObject *__pyx_v_named_args = NULL((void*)0);
8082 PyObject *__pyx_v_arg_val = NULL((void*)0);
8083 PyObject *__pyx_v_arg_name = NULL((void*)0);
8084 PyObject *__pyx_v_arg_type = NULL((void*)0);
8085 PyObject *__pyx_r = NULL((void*)0);
8086 __Pyx_RefNannyDeclarations
8087 PyObject *__pyx_t_1 = NULL((void*)0);
8088 PyObject *__pyx_t_2 = NULL((void*)0);
8089 PyObject *__pyx_t_3 = NULL((void*)0);
8090 Py_ssize_t __pyx_t_4;
8091 PyObject *__pyx_t_5 = NULL((void*)0);
8092 PyObject *(*__pyx_t_6)(PyObject *);
8093 PyObject *__pyx_t_7 = NULL((void*)0);
8094 PyObject *(*__pyx_t_8)(PyObject *);
8095 PyObject *__pyx_t_9 = NULL((void*)0);
8096 PyObject *__pyx_t_10 = NULL((void*)0);
8097 int __pyx_lineno = 0;
8098 const char *__pyx_filename = NULL((void*)0);
8099 int __pyx_clineno = 0;
8100 __Pyx_RefNannySetupContext("validate_func", 0);
8101 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *)__pyx_tp_new_5rados___pyx_scope_struct_5_validate_func(__pyx_ptype_5rados___pyx_scope_struct_5_validate_func, __pyx_empty_tuple, NULL((void*)0));
8102 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
8103 __Pyx_RefNannyFinishContext();
8104 return NULL((void*)0);
8105 }
8106 __Pyx_GOTREF(__pyx_cur_scope);
8107 __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
8108 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope))( ((PyObject*)(((PyObject *)__pyx_cur_scope->__pyx_outer_scope
)))->ob_refcnt++)
;
8109 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
8110 __pyx_cur_scope->__pyx_v_kwargs = __pyx_v_kwargs;
8111 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_kwargs)( ((PyObject*)(__pyx_cur_scope->__pyx_v_kwargs))->ob_refcnt
++)
;
8112 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_kwargs);
8113
8114 /* "rados.pyx":560
8115 * def validate_func(*args, **kwargs):
8116 * # ignore the `self` arg
8117 * pos_args = zip(args[1:], types) # <<<<<<<<<<<<<<
8118 * named_args = ((kwargs[name], (name, spec)) for name, spec in types
8119 * if name in kwargs)
8120 */
8121 __pyx_t_1 = __Pyx_PyTuple_GetSlice(__pyx_v_args, 1, PY_SSIZE_T_MAX((Py_ssize_t)(((size_t)-1)>>1))); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__8121; goto __pyx_L1_error;}
8122 __Pyx_GOTREF(__pyx_t_1);
8123 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_outer_scope->__pyx_v_types), 0)
) { __Pyx_RaiseClosureNameError("types"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__8123; goto __pyx_L1_error;} }
8124 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__8124; goto __pyx_L1_error;}
8125 __Pyx_GOTREF(__pyx_t_2);
8126 __Pyx_GIVEREF(__pyx_t_1);
8127 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_t_1);
8128 __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types)( ((PyObject*)(__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope
->__pyx_v_types))->ob_refcnt++)
;
8129 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types);
8130 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_cur_scope
->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_types
)
;
8131 __pyx_t_1 = 0;
8132 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__8132; goto __pyx_L1_error;}
8133 __Pyx_GOTREF(__pyx_t_1);
8134 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
8135 __pyx_v_pos_args = __pyx_t_1;
8136 __pyx_t_1 = 0;
8137
8138 /* "rados.pyx":561
8139 * # ignore the `self` arg
8140 * pos_args = zip(args[1:], types)
8141 * named_args = ((kwargs[name], (name, spec)) for name, spec in types # <<<<<<<<<<<<<<
8142 * if name in kwargs)
8143 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
8144 */
8145 __pyx_t_1 = __pyx_pf_5rados_8requires_7wrapper_13validate_func_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__8145; goto __pyx_L1_error;}
8146 __Pyx_GOTREF(__pyx_t_1);
8147 __pyx_v_named_args = __pyx_t_1;
8148 __pyx_t_1 = 0;
8149
8150 /* "rados.pyx":563
8151 * named_args = ((kwargs[name], (name, spec)) for name, spec in types
8152 * if name in kwargs)
8153 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args): # <<<<<<<<<<<<<<
8154 * check_type(arg_val, arg_name, arg_type)
8155 * return f(*args, **kwargs)
8156 */
8157 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_chain); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8157; goto __pyx_L1_error;}
8158 __Pyx_GOTREF(__pyx_t_2);
8159 __pyx_t_3 = NULL((void*)0);
8160 __pyx_t_4 = 0;
8161 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
8162 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
8163 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
8164 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
8165 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
8166 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
8167 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
8168 __pyx_t_4 = 1;
8169 }
8170 }
8171 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8171; goto __pyx_L1_error;}
8172 __Pyx_GOTREF(__pyx_t_5);
8173 if (__pyx_t_3) {
8174 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
8175 }
8176 __Pyx_INCREF(__pyx_v_pos_args)( ((PyObject*)(__pyx_v_pos_args))->ob_refcnt++);
8177 __Pyx_GIVEREF(__pyx_v_pos_args);
8178 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_pos_args)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_pos_args
)
;
8179 __Pyx_INCREF(__pyx_v_named_args)( ((PyObject*)(__pyx_v_named_args))->ob_refcnt++);
8180 __Pyx_GIVEREF(__pyx_v_named_args);
8181 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_named_args)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_v_named_args
)
;
8182 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8182; goto __pyx_L1_error;}
8183 __Pyx_GOTREF(__pyx_t_1);
8184 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
8185 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
8186 if (likely(PyList_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_1)((((PyObject*)(__pyx_t_1))->ob_type) == &PyTuple_Type)) {
8187 __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_4 = 0;
8188 __pyx_t_6 = NULL((void*)0);
8189 } else {
8190 __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8190; goto __pyx_L1_error;}
8191 __Pyx_GOTREF(__pyx_t_2);
8192 __pyx_t_6 = Py_TYPE(__pyx_t_2)(((PyObject*)(__pyx_t_2))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8192; goto __pyx_L1_error;}
8193 }
8194 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
8195 for (;;) {
8196 if (likely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 1)) {
8197 if (likely(PyList_CheckExact(__pyx_t_2))__builtin_expect(!!(((((PyObject*)(__pyx_t_2))->ob_type) ==
&PyList_Type)), 1)
) {
8198 if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
8199 #if CYTHON_COMPILING_IN_CPYTHON1
8200 __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4)(((PyListObject *)(__pyx_t_2))->ob_item[__pyx_t_4]); __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_4++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8200; goto __pyx_L1_error;}
8201 #else
8202 __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_4) )
; __pyx_t_4++; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8202; goto __pyx_L1_error;}
8203 __Pyx_GOTREF(__pyx_t_1);
8204 #endif
8205 } else {
8206 if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
8207 #if CYTHON_COMPILING_IN_CPYTHON1
8208 __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)(((PyTupleObject *)(__pyx_t_2))->ob_item[__pyx_t_4]); __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_4++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8208; goto __pyx_L1_error;}
8209 #else
8210 __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_4) )
; __pyx_t_4++; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8210; goto __pyx_L1_error;}
8211 __Pyx_GOTREF(__pyx_t_1);
8212 #endif
8213 }
8214 } else {
8215 __pyx_t_1 = __pyx_t_6(__pyx_t_2);
8216 if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {
8217 PyObject* exc_type = PyErr_Occurred();
8218 if (exc_type) {
8219 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
8220 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8220; goto __pyx_L1_error;}
8221 }
8222 break;
8223 }
8224 __Pyx_GOTREF(__pyx_t_1);
8225 }
8226 if ((likely(PyTuple_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyTuple_Type)), 1)
) || (PyList_CheckExact(__pyx_t_1)((((PyObject*)(__pyx_t_1))->ob_type) == &PyList_Type))) {
8227 PyObject* sequence = __pyx_t_1;
8228 #if CYTHON_COMPILING_IN_CPYTHON1
8229 Py_ssize_t size = Py_SIZE(sequence)(((PyVarObject*)(sequence))->ob_size);
8230 #else
8231 Py_ssize_t size = PySequence_Size(sequence);
8232 #endif
8233 if (unlikely(size != 2)__builtin_expect(!!(size != 2), 0)) {
8234 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
8235 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
8236 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8236; goto __pyx_L1_error;}
8237 }
8238 #if CYTHON_COMPILING_IN_CPYTHON1
8239 if (likely(PyTuple_CheckExact(sequence))__builtin_expect(!!(((((PyObject*)(sequence))->ob_type) ==
&PyTuple_Type)), 1)
) {
8240 __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0)(((PyTupleObject *)(sequence))->ob_item[0]);
8241 __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1)(((PyTupleObject *)(sequence))->ob_item[1]);
8242 } else {
8243 __pyx_t_5 = PyList_GET_ITEM(sequence, 0)(((PyListObject *)(sequence))->ob_item[0]);
8244 __pyx_t_3 = PyList_GET_ITEM(sequence, 1)(((PyListObject *)(sequence))->ob_item[1]);
8245 }
8246 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
8247 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
8248 #else
8249 __pyx_t_5 = PySequence_ITEM(sequence, 0)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 0) )
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8249; goto __pyx_L1_error;}
8250 __Pyx_GOTREF(__pyx_t_5);
8251 __pyx_t_3 = PySequence_ITEM(sequence, 1)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 1) )
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8251; goto __pyx_L1_error;}
8252 __Pyx_GOTREF(__pyx_t_3);
8253 #endif
8254 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
8255 } else {
8256 Py_ssize_t index = -1;
8257 __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8257; goto __pyx_L1_error;}
8258 __Pyx_GOTREF(__pyx_t_7);
8259 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
8260 __pyx_t_8 = Py_TYPE(__pyx_t_7)(((PyObject*)(__pyx_t_7))->ob_type)->tp_iternext;
8261 index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) goto __pyx_L5_unpacking_failed;
8262 __Pyx_GOTREF(__pyx_t_5);
8263 index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) goto __pyx_L5_unpacking_failed;
8264 __Pyx_GOTREF(__pyx_t_3);
8265 if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8265; goto __pyx_L1_error;}
8266 __pyx_t_8 = NULL((void*)0);
8267 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
8268 goto __pyx_L6_unpacking_done;
8269 __pyx_L5_unpacking_failed:;
8270 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
8271 __pyx_t_8 = NULL((void*)0);
8272 if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
8273 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8273; goto __pyx_L1_error;}
8274 __pyx_L6_unpacking_done:;
8275 }
8276 __Pyx_XDECREF_SET(__pyx_v_arg_val, __pyx_t_5)do { PyObject *tmp = (PyObject *) __pyx_v_arg_val; __pyx_v_arg_val
= __pyx_t_5; do { if ((tmp) == ((void*)0)) ; else do { if ( --
((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0); } while (0); } while (
0)
;
8277 __pyx_t_5 = 0;
8278 if ((likely(PyTuple_CheckExact(__pyx_t_3))__builtin_expect(!!(((((PyObject*)(__pyx_t_3))->ob_type) ==
&PyTuple_Type)), 1)
) || (PyList_CheckExact(__pyx_t_3)((((PyObject*)(__pyx_t_3))->ob_type) == &PyList_Type))) {
8279 PyObject* sequence = __pyx_t_3;
8280 #if CYTHON_COMPILING_IN_CPYTHON1
8281 Py_ssize_t size = Py_SIZE(sequence)(((PyVarObject*)(sequence))->ob_size);
8282 #else
8283 Py_ssize_t size = PySequence_Size(sequence);
8284 #endif
8285 if (unlikely(size != 2)__builtin_expect(!!(size != 2), 0)) {
8286 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
8287 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
8288 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8288; goto __pyx_L1_error;}
8289 }
8290 #if CYTHON_COMPILING_IN_CPYTHON1
8291 if (likely(PyTuple_CheckExact(sequence))__builtin_expect(!!(((((PyObject*)(sequence))->ob_type) ==
&PyTuple_Type)), 1)
) {
8292 __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0)(((PyTupleObject *)(sequence))->ob_item[0]);
8293 __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1)(((PyTupleObject *)(sequence))->ob_item[1]);
8294 } else {
8295 __pyx_t_7 = PyList_GET_ITEM(sequence, 0)(((PyListObject *)(sequence))->ob_item[0]);
8296 __pyx_t_9 = PyList_GET_ITEM(sequence, 1)(((PyListObject *)(sequence))->ob_item[1]);
8297 }
8298 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
8299 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
8300 #else
8301 __pyx_t_7 = PySequence_ITEM(sequence, 0)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 0) )
; if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8301; goto __pyx_L1_error;}
8302 __Pyx_GOTREF(__pyx_t_7);
8303 __pyx_t_9 = PySequence_ITEM(sequence, 1)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 1) )
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8303; goto __pyx_L1_error;}
8304 __Pyx_GOTREF(__pyx_t_9);
8305 #endif
8306 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
8307 } else {
8308 Py_ssize_t index = -1;
8309 __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8309; goto __pyx_L1_error;}
8310 __Pyx_GOTREF(__pyx_t_10);
8311 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
8312 __pyx_t_8 = Py_TYPE(__pyx_t_10)(((PyObject*)(__pyx_t_10))->ob_type)->tp_iternext;
8313 index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_10); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) goto __pyx_L7_unpacking_failed;
8314 __Pyx_GOTREF(__pyx_t_7);
8315 index = 1; __pyx_t_9 = __pyx_t_8(__pyx_t_10); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) goto __pyx_L7_unpacking_failed;
8316 __Pyx_GOTREF(__pyx_t_9);
8317 if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8317; goto __pyx_L1_error;}
8318 __pyx_t_8 = NULL((void*)0);
8319 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
8320 goto __pyx_L8_unpacking_done;
8321 __pyx_L7_unpacking_failed:;
8322 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
8323 __pyx_t_8 = NULL((void*)0);
8324 if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
8325 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__8325; goto __pyx_L1_error;}
8326 __pyx_L8_unpacking_done:;
8327 }
8328 __Pyx_XDECREF_SET(__pyx_v_arg_name, __pyx_t_7)do { PyObject *tmp = (PyObject *) __pyx_v_arg_name; __pyx_v_arg_name
= __pyx_t_7; do { if ((tmp) == ((void*)0)) ; else do { if ( --
((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0); } while (0); } while (
0)
;
8329 __pyx_t_7 = 0;
8330 __Pyx_XDECREF_SET(__pyx_v_arg_type, __pyx_t_9)do { PyObject *tmp = (PyObject *) __pyx_v_arg_type; __pyx_v_arg_type
= __pyx_t_9; do { if ((tmp) == ((void*)0)) ; else do { if ( --
((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0); } while (0); } while (
0)
;
8331 __pyx_t_9 = 0;
8332
8333 /* "rados.pyx":564
8334 * if name in kwargs)
8335 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
8336 * check_type(arg_val, arg_name, arg_type) # <<<<<<<<<<<<<<
8337 * return f(*args, **kwargs)
8338 * return validate_func
8339 */
8340 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_check_type)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_outer_scope->__pyx_v_check_type), 0)
) { __Pyx_RaiseClosureNameError("check_type"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__8340; goto __pyx_L1_error;} }
8341 __pyx_t_1 = __pyx_pf_5rados_8requires_2check_type(__pyx_cur_scope->__pyx_outer_scope->__pyx_outer_scope->__pyx_v_check_type, __pyx_v_arg_val, __pyx_v_arg_name, __pyx_v_arg_type); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__8341; goto __pyx_L1_error;}
8342 __Pyx_GOTREF(__pyx_t_1);
8343 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
8344
8345 /* "rados.pyx":563
8346 * named_args = ((kwargs[name], (name, spec)) for name, spec in types
8347 * if name in kwargs)
8348 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args): # <<<<<<<<<<<<<<
8349 * check_type(arg_val, arg_name, arg_type)
8350 * return f(*args, **kwargs)
8351 */
8352 }
8353 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
8354
8355 /* "rados.pyx":565
8356 * for arg_val, (arg_name, arg_type) in chain(pos_args, named_args):
8357 * check_type(arg_val, arg_name, arg_type)
8358 * return f(*args, **kwargs) # <<<<<<<<<<<<<<
8359 * return validate_func
8360 * return wrapper
8361 */
8362 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
8363 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_f)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_f), 0)
) { __Pyx_RaiseClosureNameError("f"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__8363; goto __pyx_L1_error;} }
8364 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_f, __pyx_v_args, __pyx_cur_scope->__pyx_v_kwargs); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__8364; goto __pyx_L1_error;}
8365 __Pyx_GOTREF(__pyx_t_2);
8366 __pyx_r = __pyx_t_2;
8367 __pyx_t_2 = 0;
8368 goto __pyx_L0;
8369
8370 /* "rados.pyx":558
8371 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
8372 * # @wraps(f)
8373 * def validate_func(*args, **kwargs): # <<<<<<<<<<<<<<
8374 * # ignore the `self` arg
8375 * pos_args = zip(args[1:], types)
8376 */
8377
8378 /* function exit code */
8379 __pyx_L1_error:;
8380 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
8381 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
8382 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
8383 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
8384 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
8385 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
8386 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
;
8387 __Pyx_AddTraceback("rados.requires.wrapper.validate_func", __pyx_clineno, __pyx_lineno, __pyx_filename);
8388 __pyx_r = NULL((void*)0);
8389 __pyx_L0:;
8390 __Pyx_XDECREF(__pyx_v_pos_args)do { if ((__pyx_v_pos_args) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_pos_args))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_pos_args)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_pos_args)))); }
while (0); } while (0)
;
8391 __Pyx_XDECREF(__pyx_v_named_args)do { if ((__pyx_v_named_args) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_named_args))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_named_args)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_named_args
)))); } while (0); } while (0)
;
8392 __Pyx_XDECREF(__pyx_v_arg_val)do { if ((__pyx_v_arg_val) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_arg_val))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_arg_val)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_arg_val)))); } while
(0); } while (0)
;
8393 __Pyx_XDECREF(__pyx_v_arg_name)do { if ((__pyx_v_arg_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_arg_name))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_arg_name)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_arg_name)))); }
while (0); } while (0)
;
8394 __Pyx_XDECREF(__pyx_v_arg_type)do { if ((__pyx_v_arg_type) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_arg_type))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_arg_type)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_arg_type)))); }
while (0); } while (0)
;
8395 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
8396 __Pyx_XGIVEREF(__pyx_r);
8397 __Pyx_RefNannyFinishContext();
8398 return __pyx_r;
8399}
8400
8401/* "rados.pyx":554
8402 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
8403 *
8404 * def wrapper(f): # <<<<<<<<<<<<<<
8405 * # FIXME(sileht): this stop with
8406 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
8407 */
8408
8409static PyObject *__pyx_pf_5rados_8requires_4wrapper(PyObject *__pyx_self, PyObject *__pyx_v_f) {
8410 struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *__pyx_cur_scope;
8411 PyObject *__pyx_v_validate_func = 0;
8412 PyObject *__pyx_r = NULL((void*)0);
8413 __Pyx_RefNannyDeclarations
8414 PyObject *__pyx_t_1 = NULL((void*)0);
8415 int __pyx_lineno = 0;
8416 const char *__pyx_filename = NULL((void*)0);
8417 int __pyx_clineno = 0;
8418 __Pyx_RefNannySetupContext("wrapper", 0);
8419 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *)__pyx_tp_new_5rados___pyx_scope_struct_4_wrapper(__pyx_ptype_5rados___pyx_scope_struct_4_wrapper, __pyx_empty_tuple, NULL((void*)0));
8420 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
8421 __Pyx_RefNannyFinishContext();
8422 return NULL((void*)0);
8423 }
8424 __Pyx_GOTREF(__pyx_cur_scope);
8425 __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct__requires *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
8426 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope))( ((PyObject*)(((PyObject *)__pyx_cur_scope->__pyx_outer_scope
)))->ob_refcnt++)
;
8427 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
8428 __pyx_cur_scope->__pyx_v_f = __pyx_v_f;
8429 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_f)( ((PyObject*)(__pyx_cur_scope->__pyx_v_f))->ob_refcnt++
)
;
8430 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_f);
8431
8432 /* "rados.pyx":558
8433 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
8434 * # @wraps(f)
8435 * def validate_func(*args, **kwargs): # <<<<<<<<<<<<<<
8436 * # ignore the `self` arg
8437 * pos_args = zip(args[1:], types)
8438 */
8439 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_8requires_7wrapper_1validate_func, 0, __pyx_n_s_requires_locals_wrapper_locals_v_2, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__2))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_8requires_7wrapper_1validate_func
, 0, __pyx_n_s_requires_locals_wrapper_locals_v_2, ((PyObject
*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__2
))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__8439; goto __pyx_L1_error;}
8440 __Pyx_GOTREF(__pyx_t_1);
8441 __pyx_v_validate_func = __pyx_t_1;
8442 __pyx_t_1 = 0;
8443
8444 /* "rados.pyx":566
8445 * check_type(arg_val, arg_name, arg_type)
8446 * return f(*args, **kwargs)
8447 * return validate_func # <<<<<<<<<<<<<<
8448 * return wrapper
8449 *
8450 */
8451 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
8452 __Pyx_INCREF(__pyx_v_validate_func)( ((PyObject*)(__pyx_v_validate_func))->ob_refcnt++);
8453 __pyx_r = __pyx_v_validate_func;
8454 goto __pyx_L0;
8455
8456 /* "rados.pyx":554
8457 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
8458 *
8459 * def wrapper(f): # <<<<<<<<<<<<<<
8460 * # FIXME(sileht): this stop with
8461 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
8462 */
8463
8464 /* function exit code */
8465 __pyx_L1_error:;
8466 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
8467 __Pyx_AddTraceback("rados.requires.wrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
8468 __pyx_r = NULL((void*)0);
8469 __pyx_L0:;
8470 __Pyx_XDECREF(__pyx_v_validate_func)do { if ((__pyx_v_validate_func) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_validate_func))->ob_refcnt != 0)
; else ( (*(((PyObject*)((PyObject *)(__pyx_v_validate_func)
))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_validate_func
)))); } while (0); } while (0)
;
8471 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
8472 __Pyx_XGIVEREF(__pyx_r);
8473 __Pyx_RefNannyFinishContext();
8474 return __pyx_r;
8475}
8476
8477/* "rados.pyx":534
8478 * # validate argument types of an instance method
8479 * # kwargs is an un-ordered dict, so use args instead
8480 * def requires(*types): # <<<<<<<<<<<<<<
8481 * def is_type_of(v, t):
8482 * if t is None:
8483 */
8484
8485static PyObject *__pyx_pf_5rados_2requires(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_types) {
8486 struct __pyx_obj_5rados___pyx_scope_struct__requires *__pyx_cur_scope;
8487 PyObject *__pyx_v_wrapper = 0;
8488 PyObject *__pyx_r = NULL((void*)0);
8489 __Pyx_RefNannyDeclarations
8490 PyObject *__pyx_t_1 = NULL((void*)0);
8491 int __pyx_lineno = 0;
8492 const char *__pyx_filename = NULL((void*)0);
8493 int __pyx_clineno = 0;
8494 __Pyx_RefNannySetupContext("requires", 0);
8495 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct__requires *)__pyx_tp_new_5rados___pyx_scope_struct__requires(__pyx_ptype_5rados___pyx_scope_struct__requires, __pyx_empty_tuple, NULL((void*)0));
8496 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
8497 __Pyx_RefNannyFinishContext();
8498 return NULL((void*)0);
8499 }
8500 __Pyx_GOTREF(__pyx_cur_scope);
8501 __pyx_cur_scope->__pyx_v_types = __pyx_v_types;
8502 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_types)( ((PyObject*)(__pyx_cur_scope->__pyx_v_types))->ob_refcnt
++)
;
8503 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_types);
8504
8505 /* "rados.pyx":535
8506 * # kwargs is an un-ordered dict, so use args instead
8507 * def requires(*types):
8508 * def is_type_of(v, t): # <<<<<<<<<<<<<<
8509 * if t is None:
8510 * return v is None
8511 */
8512 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_8requires_1is_type_of, 0, __pyx_n_s_requires_locals_is_type_of, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__4))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_8requires_1is_type_of
, 0, __pyx_n_s_requires_locals_is_type_of, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__4))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__8512; goto __pyx_L1_error;}
8513 __Pyx_GOTREF(__pyx_t_1);
8514 __Pyx_GIVEREF(__pyx_t_1);
8515 __pyx_cur_scope->__pyx_v_is_type_of = __pyx_t_1;
8516 __pyx_t_1 = 0;
8517
8518 /* "rados.pyx":541
8519 * return isinstance(v, t)
8520 *
8521 * def check_type(val, arg_name, arg_type): # <<<<<<<<<<<<<<
8522 * if isinstance(arg_type, tuple):
8523 * if any(is_type_of(val, t) for t in arg_type):
8524 */
8525 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_8requires_3check_type, 0, __pyx_n_s_requires_locals_check_type, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__6))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_8requires_3check_type
, 0, __pyx_n_s_requires_locals_check_type, ((PyObject*)__pyx_cur_scope
), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__6))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__8525; goto __pyx_L1_error;}
8526 __Pyx_GOTREF(__pyx_t_1);
8527 __Pyx_GIVEREF(__pyx_t_1);
8528 __pyx_cur_scope->__pyx_v_check_type = __pyx_t_1;
8529 __pyx_t_1 = 0;
8530
8531 /* "rados.pyx":554
8532 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
8533 *
8534 * def wrapper(f): # <<<<<<<<<<<<<<
8535 * # FIXME(sileht): this stop with
8536 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
8537 */
8538 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_8requires_5wrapper, 0, __pyx_n_s_requires_locals_wrapper, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__8))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_8requires_5wrapper
, 0, __pyx_n_s_requires_locals_wrapper, ((PyObject*)__pyx_cur_scope
), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__8))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__8538; goto __pyx_L1_error;}
8539 __Pyx_GOTREF(__pyx_t_1);
8540 __pyx_v_wrapper = __pyx_t_1;
8541 __pyx_t_1 = 0;
8542
8543 /* "rados.pyx":567
8544 * return f(*args, **kwargs)
8545 * return validate_func
8546 * return wrapper # <<<<<<<<<<<<<<
8547 *
8548 *
8549 */
8550 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
8551 __Pyx_INCREF(__pyx_v_wrapper)( ((PyObject*)(__pyx_v_wrapper))->ob_refcnt++);
8552 __pyx_r = __pyx_v_wrapper;
8553 goto __pyx_L0;
8554
8555 /* "rados.pyx":534
8556 * # validate argument types of an instance method
8557 * # kwargs is an un-ordered dict, so use args instead
8558 * def requires(*types): # <<<<<<<<<<<<<<
8559 * def is_type_of(v, t):
8560 * if t is None:
8561 */
8562
8563 /* function exit code */
8564 __pyx_L1_error:;
8565 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
8566 __Pyx_AddTraceback("rados.requires", __pyx_clineno, __pyx_lineno, __pyx_filename);
8567 __pyx_r = NULL((void*)0);
8568 __pyx_L0:;
8569 __Pyx_XDECREF(__pyx_v_wrapper)do { if ((__pyx_v_wrapper) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_wrapper))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_wrapper)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_wrapper)))); } while
(0); } while (0)
;
8570 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
8571 __Pyx_XGIVEREF(__pyx_r);
8572 __Pyx_RefNannyFinishContext();
8573 return __pyx_r;
8574}
8575
8576/* "rados.pyx":570
8577 *
8578 *
8579 * def cstr(val, name, encoding="utf-8", opt=False): # <<<<<<<<<<<<<<
8580 * """
8581 * Create a byte string from a Python string
8582 */
8583
8584/* Python wrapper */
8585static PyObject *__pyx_pw_5rados_5cstr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
8586static char __pyx_doc_5rados_4cstr[] = "cstr(val, name, encoding='utf-8', opt=False)\n\n Create a byte string from a Python string\n\n :param basestring val: Python string\n :param str name: Name of the string parameter, for exceptions\n :param str encoding: Encoding to use\n :param bool opt: If True, None is allowed\n :rtype: bytes\n :raises: :class:`InvalidArgument`\n ";
8587static PyMethodDef __pyx_mdef_5rados_5cstr = {"cstr", (PyCFunction)__pyx_pw_5rados_5cstr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_4cstr};
8588static PyObject *__pyx_pw_5rados_5cstr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8589 PyObject *__pyx_v_val = 0;
8590 PyObject *__pyx_v_name = 0;
8591 PyObject *__pyx_v_encoding = 0;
8592 PyObject *__pyx_v_opt = 0;
8593 int __pyx_lineno = 0;
8594 const char *__pyx_filename = NULL((void*)0);
8595 int __pyx_clineno = 0;
8596 PyObject *__pyx_r = 0;
8597 __Pyx_RefNannyDeclarations
8598 __Pyx_RefNannySetupContext("cstr (wrapper)", 0);
8599 {
8600 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_val,&__pyx_n_s_name_2,&__pyx_n_s_encoding,&__pyx_n_s_opt,0};
8601 PyObject* values[4] = {0,0,0,0};
8602 values[2] = ((PyObject *)__pyx_kp_s_utf_8);
8603 values[3] = ((PyObject *)Py_False((PyObject *) &_Py_ZeroStruct));
8604 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
8605 Py_ssize_t kw_args;
8606 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
8607 switch (pos_args) {
8608 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
8609 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
8610 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
8611 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
8612 case 0: break;
8613 default: goto __pyx_L5_argtuple_error;
8614 }
8615 kw_args = PyDict_Size(__pyx_kwds);
8616 switch (pos_args) {
8617 case 0:
8618 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val
)) != 0), 1)
) kw_args--;
8619 else goto __pyx_L5_argtuple_error;
8620 case 1:
8621 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
8622 else {
8623 __Pyx_RaiseArgtupleInvalid("cstr", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__8623; goto __pyx_L3_error;}
8624 }
8625 case 2:
8626 if (kw_args > 0) {
8627 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_encoding);
8628 if (value) { values[2] = value; kw_args--; }
8629 }
8630 case 3:
8631 if (kw_args > 0) {
8632 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_opt);
8633 if (value) { values[3] = value; kw_args--; }
8634 }
8635 }
8636 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
8637 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cstr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "cstr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__8637; goto __pyx_L3_error;}
8638 }
8639 } else {
8640 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
8641 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
8642 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
8643 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
8644 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
8645 break;
8646 default: goto __pyx_L5_argtuple_error;
8647 }
8648 }
8649 __pyx_v_val = values[0];
8650 __pyx_v_name = values[1];
8651 __pyx_v_encoding = values[2];
8652 __pyx_v_opt = values[3];
8653 }
8654 goto __pyx_L4_argument_unpacking_done;
8655 __pyx_L5_argtuple_error:;
8656 __Pyx_RaiseArgtupleInvalid("cstr", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__8656; goto __pyx_L3_error;}
8657 __pyx_L3_error:;
8658 __Pyx_AddTraceback("rados.cstr", __pyx_clineno, __pyx_lineno, __pyx_filename);
8659 __Pyx_RefNannyFinishContext();
8660 return NULL((void*)0);
8661 __pyx_L4_argument_unpacking_done:;
8662 __pyx_r = __pyx_pf_5rados_4cstr(__pyx_self, __pyx_v_val, __pyx_v_name, __pyx_v_encoding, __pyx_v_opt);
8663
8664 /* function exit code */
8665 __Pyx_RefNannyFinishContext();
8666 return __pyx_r;
8667}
8668
8669static PyObject *__pyx_pf_5rados_4cstr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_val, PyObject *__pyx_v_name, PyObject *__pyx_v_encoding, PyObject *__pyx_v_opt) {
8670 PyObject *__pyx_r = NULL((void*)0);
8671 __Pyx_RefNannyDeclarations
8672 int __pyx_t_1;
8673 int __pyx_t_2;
8674 int __pyx_t_3;
8675 PyObject *__pyx_t_4 = NULL((void*)0);
8676 PyObject *__pyx_t_5 = NULL((void*)0);
8677 PyObject *__pyx_t_6 = NULL((void*)0);
8678 PyObject *__pyx_t_7 = NULL((void*)0);
8679 int __pyx_lineno = 0;
8680 const char *__pyx_filename = NULL((void*)0);
8681 int __pyx_clineno = 0;
8682 __Pyx_RefNannySetupContext("cstr", 0);
8683
8684 /* "rados.pyx":581
8685 * :raises: :class:`InvalidArgument`
8686 * """
8687 * if opt and val is None: # <<<<<<<<<<<<<<
8688 * return None
8689 * if isinstance(val, bytes):
8690 */
8691 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_opt); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__8691; goto __pyx_L1_error;}
8692 if (__pyx_t_2) {
8693 } else {
8694 __pyx_t_1 = __pyx_t_2;
8695 goto __pyx_L4_bool_binop_done;
8696 }
8697 __pyx_t_2 = (__pyx_v_val == Py_None(&_Py_NoneStruct));
8698 __pyx_t_3 = (__pyx_t_2 != 0);
8699 __pyx_t_1 = __pyx_t_3;
8700 __pyx_L4_bool_binop_done:;
8701 if (__pyx_t_1) {
8702
8703 /* "rados.pyx":582
8704 * """
8705 * if opt and val is None:
8706 * return None # <<<<<<<<<<<<<<
8707 * if isinstance(val, bytes):
8708 * return val
8709 */
8710 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
8711 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
8712 __pyx_r = Py_None(&_Py_NoneStruct);
8713 goto __pyx_L0;
8714
8715 /* "rados.pyx":581
8716 * :raises: :class:`InvalidArgument`
8717 * """
8718 * if opt and val is None: # <<<<<<<<<<<<<<
8719 * return None
8720 * if isinstance(val, bytes):
8721 */
8722 }
8723
8724 /* "rados.pyx":583
8725 * if opt and val is None:
8726 * return None
8727 * if isinstance(val, bytes): # <<<<<<<<<<<<<<
8728 * return val
8729 * elif isinstance(val, unicode):
8730 */
8731 __pyx_t_1 = PyBytes_Check(__pyx_v_val)((((((PyObject*)(__pyx_v_val))->ob_type))->tp_flags &
((1L<<27))) != 0)
;
8732 __pyx_t_3 = (__pyx_t_1 != 0);
8733 if (__pyx_t_3) {
8734
8735 /* "rados.pyx":584
8736 * return None
8737 * if isinstance(val, bytes):
8738 * return val # <<<<<<<<<<<<<<
8739 * elif isinstance(val, unicode):
8740 * return val.encode(encoding)
8741 */
8742 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
8743 __Pyx_INCREF(__pyx_v_val)( ((PyObject*)(__pyx_v_val))->ob_refcnt++);
8744 __pyx_r = __pyx_v_val;
8745 goto __pyx_L0;
8746
8747 /* "rados.pyx":583
8748 * if opt and val is None:
8749 * return None
8750 * if isinstance(val, bytes): # <<<<<<<<<<<<<<
8751 * return val
8752 * elif isinstance(val, unicode):
8753 */
8754 }
8755
8756 /* "rados.pyx":585
8757 * if isinstance(val, bytes):
8758 * return val
8759 * elif isinstance(val, unicode): # <<<<<<<<<<<<<<
8760 * return val.encode(encoding)
8761 * else:
8762 */
8763 __pyx_t_3 = PyUnicode_Check(__pyx_v_val)((((((PyObject*)(__pyx_v_val))->ob_type))->tp_flags &
((1L<<28))) != 0)
;
8764 __pyx_t_1 = (__pyx_t_3 != 0);
8765 if (__pyx_t_1) {
8766
8767 /* "rados.pyx":586
8768 * return val
8769 * elif isinstance(val, unicode):
8770 * return val.encode(encoding) # <<<<<<<<<<<<<<
8771 * else:
8772 * raise TypeError('%s must be a string' % name)
8773 */
8774 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
8775 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_val, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__8775; goto __pyx_L1_error;}
8776 __Pyx_GOTREF(__pyx_t_5);
8777 __pyx_t_6 = NULL((void*)0);
8778 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 1)
) {
8779 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
8780 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
8781 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
8782 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
8783 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
8784 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
8785 }
8786 }
8787 if (!__pyx_t_6) {
8788 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_encoding); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__8788; goto __pyx_L1_error;}
8789 __Pyx_GOTREF(__pyx_t_4);
8790 } else {
8791 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__8791; goto __pyx_L1_error;}
8792 __Pyx_GOTREF(__pyx_t_7);
8793 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
8794 __Pyx_INCREF(__pyx_v_encoding)( ((PyObject*)(__pyx_v_encoding))->ob_refcnt++);
8795 __Pyx_GIVEREF(__pyx_v_encoding);
8796 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_v_encoding)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_v_encoding
)
;
8797 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__8797; goto __pyx_L1_error;}
8798 __Pyx_GOTREF(__pyx_t_4);
8799 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
8800 }
8801 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
8802 __pyx_r = __pyx_t_4;
8803 __pyx_t_4 = 0;
8804 goto __pyx_L0;
8805
8806 /* "rados.pyx":585
8807 * if isinstance(val, bytes):
8808 * return val
8809 * elif isinstance(val, unicode): # <<<<<<<<<<<<<<
8810 * return val.encode(encoding)
8811 * else:
8812 */
8813 }
8814
8815 /* "rados.pyx":588
8816 * return val.encode(encoding)
8817 * else:
8818 * raise TypeError('%s must be a string' % name) # <<<<<<<<<<<<<<
8819 *
8820 *
8821 */
8822 /*else*/ {
8823 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_s_must_be_a_string, __pyx_v_name)PyString_Format(__pyx_kp_s_s_must_be_a_string, __pyx_v_name); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__8823; goto __pyx_L1_error;}
8824 __Pyx_GOTREF(__pyx_t_4);
8825 __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__8825; goto __pyx_L1_error;}
8826 __Pyx_GOTREF(__pyx_t_5);
8827 __Pyx_GIVEREF(__pyx_t_4);
8828 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_4);
8829 __pyx_t_4 = 0;
8830 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__8830; goto __pyx_L1_error;}
8831 __Pyx_GOTREF(__pyx_t_4);
8832 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
8833 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
8834 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
8835 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 588; __pyx_clineno = __LINE__8835; goto __pyx_L1_error;}
8836 }
8837
8838 /* "rados.pyx":570
8839 *
8840 *
8841 * def cstr(val, name, encoding="utf-8", opt=False): # <<<<<<<<<<<<<<
8842 * """
8843 * Create a byte string from a Python string
8844 */
8845
8846 /* function exit code */
8847 __pyx_L1_error:;
8848 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
8849 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
8850 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
8851 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
8852 __Pyx_AddTraceback("rados.cstr", __pyx_clineno, __pyx_lineno, __pyx_filename);
8853 __pyx_r = NULL((void*)0);
8854 __pyx_L0:;
8855 __Pyx_XGIVEREF(__pyx_r);
8856 __Pyx_RefNannyFinishContext();
8857 return __pyx_r;
8858}
8859
8860/* "rados.pyx":591
8861 *
8862 *
8863 * def cstr_list(list_str, name, encoding="utf-8"): # <<<<<<<<<<<<<<
8864 * return [cstr(s, name) for s in list_str]
8865 *
8866 */
8867
8868/* Python wrapper */
8869static PyObject *__pyx_pw_5rados_7cstr_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
8870static char __pyx_doc_5rados_6cstr_list[] = "cstr_list(list_str, name, encoding='utf-8')";
8871static PyMethodDef __pyx_mdef_5rados_7cstr_list = {"cstr_list", (PyCFunction)__pyx_pw_5rados_7cstr_list, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6cstr_list};
8872static PyObject *__pyx_pw_5rados_7cstr_list(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
8873 PyObject *__pyx_v_list_str = 0;
8874 PyObject *__pyx_v_name = 0;
8875 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_encoding = 0;
8876 int __pyx_lineno = 0;
8877 const char *__pyx_filename = NULL((void*)0);
8878 int __pyx_clineno = 0;
8879 PyObject *__pyx_r = 0;
8880 __Pyx_RefNannyDeclarations
8881 __Pyx_RefNannySetupContext("cstr_list (wrapper)", 0);
8882 {
8883 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_list_str,&__pyx_n_s_name_2,&__pyx_n_s_encoding,0};
8884 PyObject* values[3] = {0,0,0};
8885 values[2] = ((PyObject *)__pyx_kp_s_utf_8);
8886 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
8887 Py_ssize_t kw_args;
8888 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
8889 switch (pos_args) {
8890 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
8891 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
8892 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
8893 case 0: break;
8894 default: goto __pyx_L5_argtuple_error;
8895 }
8896 kw_args = PyDict_Size(__pyx_kwds);
8897 switch (pos_args) {
8898 case 0:
8899 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_list_str)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_list_str
)) != 0), 1)
) kw_args--;
8900 else goto __pyx_L5_argtuple_error;
8901 case 1:
8902 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
8903 else {
8904 __Pyx_RaiseArgtupleInvalid("cstr_list", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__8904; goto __pyx_L3_error;}
8905 }
8906 case 2:
8907 if (kw_args > 0) {
8908 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_encoding);
8909 if (value) { values[2] = value; kw_args--; }
8910 }
8911 }
8912 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
8913 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "cstr_list") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "cstr_list") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__8913; goto __pyx_L3_error;}
8914 }
8915 } else {
8916 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
8917 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
8918 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
8919 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
8920 break;
8921 default: goto __pyx_L5_argtuple_error;
8922 }
8923 }
8924 __pyx_v_list_str = values[0];
8925 __pyx_v_name = values[1];
8926 __pyx_v_encoding = values[2];
8927 }
8928 goto __pyx_L4_argument_unpacking_done;
8929 __pyx_L5_argtuple_error:;
8930 __Pyx_RaiseArgtupleInvalid("cstr_list", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__8930; goto __pyx_L3_error;}
8931 __pyx_L3_error:;
8932 __Pyx_AddTraceback("rados.cstr_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
8933 __Pyx_RefNannyFinishContext();
8934 return NULL((void*)0);
8935 __pyx_L4_argument_unpacking_done:;
8936 __pyx_r = __pyx_pf_5rados_6cstr_list(__pyx_self, __pyx_v_list_str, __pyx_v_name, __pyx_v_encoding);
8937
8938 /* function exit code */
8939 __Pyx_RefNannyFinishContext();
8940 return __pyx_r;
8941}
8942
8943static PyObject *__pyx_pf_5rados_6cstr_list(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_list_str, PyObject *__pyx_v_name, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_encoding) {
8944 PyObject *__pyx_v_s = NULL((void*)0);
8945 PyObject *__pyx_r = NULL((void*)0);
8946 __Pyx_RefNannyDeclarations
8947 PyObject *__pyx_t_1 = NULL((void*)0);
8948 PyObject *__pyx_t_2 = NULL((void*)0);
8949 Py_ssize_t __pyx_t_3;
8950 PyObject *(*__pyx_t_4)(PyObject *);
8951 PyObject *__pyx_t_5 = NULL((void*)0);
8952 PyObject *__pyx_t_6 = NULL((void*)0);
8953 PyObject *__pyx_t_7 = NULL((void*)0);
8954 Py_ssize_t __pyx_t_8;
8955 PyObject *__pyx_t_9 = NULL((void*)0);
8956 int __pyx_lineno = 0;
8957 const char *__pyx_filename = NULL((void*)0);
8958 int __pyx_clineno = 0;
8959 __Pyx_RefNannySetupContext("cstr_list", 0);
8960
8961 /* "rados.pyx":592
8962 *
8963 * def cstr_list(list_str, name, encoding="utf-8"):
8964 * return [cstr(s, name) for s in list_str] # <<<<<<<<<<<<<<
8965 *
8966 *
8967 */
8968 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
8969 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__8969; goto __pyx_L1_error;}
8970 __Pyx_GOTREF(__pyx_t_1);
8971 if (likely(PyList_CheckExact(__pyx_v_list_str))__builtin_expect(!!(((((PyObject*)(__pyx_v_list_str))->ob_type
) == &PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_v_list_str)((((PyObject*)(__pyx_v_list_str))->ob_type) == &PyTuple_Type
)
) {
8972 __pyx_t_2 = __pyx_v_list_str; __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_3 = 0;
8973 __pyx_t_4 = NULL((void*)0);
8974 } else {
8975 __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_list_str); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__8975; goto __pyx_L1_error;}
8976 __Pyx_GOTREF(__pyx_t_2);
8977 __pyx_t_4 = Py_TYPE(__pyx_t_2)(((PyObject*)(__pyx_t_2))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__8977; goto __pyx_L1_error;}
8978 }
8979 for (;;) {
8980 if (likely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 1)) {
8981 if (likely(PyList_CheckExact(__pyx_t_2))__builtin_expect(!!(((((PyObject*)(__pyx_t_2))->ob_type) ==
&PyList_Type)), 1)
) {
8982 if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
8983 #if CYTHON_COMPILING_IN_CPYTHON1
8984 __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3)(((PyListObject *)(__pyx_t_2))->ob_item[__pyx_t_3]); __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++); __pyx_t_3++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__8984; goto __pyx_L1_error;}
8985 #else
8986 __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_3) )
; __pyx_t_3++; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__8986; goto __pyx_L1_error;}
8987 __Pyx_GOTREF(__pyx_t_5);
8988 #endif
8989 } else {
8990 if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
8991 #if CYTHON_COMPILING_IN_CPYTHON1
8992 __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)(((PyTupleObject *)(__pyx_t_2))->ob_item[__pyx_t_3]); __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++); __pyx_t_3++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__8992; goto __pyx_L1_error;}
8993 #else
8994 __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_3) )
; __pyx_t_3++; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__8994; goto __pyx_L1_error;}
8995 __Pyx_GOTREF(__pyx_t_5);
8996 #endif
8997 }
8998 } else {
8999 __pyx_t_5 = __pyx_t_4(__pyx_t_2);
9000 if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {
9001 PyObject* exc_type = PyErr_Occurred();
9002 if (exc_type) {
9003 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
9004 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__9004; goto __pyx_L1_error;}
9005 }
9006 break;
9007 }
9008 __Pyx_GOTREF(__pyx_t_5);
9009 }
9010 __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_5)do { PyObject *tmp = (PyObject *) __pyx_v_s; __pyx_v_s = __pyx_t_5
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
9011 __pyx_t_5 = 0;
9012 __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__9012; goto __pyx_L1_error;}
9013 __Pyx_GOTREF(__pyx_t_6);
9014 __pyx_t_7 = NULL((void*)0);
9015 __pyx_t_8 = 0;
9016 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_6))__builtin_expect(!!(((__pyx_t_6)->ob_type == &PyMethod_Type
)), 0)
) {
9017 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_self);
9018 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
9019 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_func);
9020 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
9021 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
9022 __Pyx_DECREF_SET(__pyx_t_6, function)do { PyObject *tmp = (PyObject *) __pyx_t_6; __pyx_t_6 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
9023 __pyx_t_8 = 1;
9024 }
9025 }
9026 __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__9026; goto __pyx_L1_error;}
9027 __Pyx_GOTREF(__pyx_t_9);
9028 if (__pyx_t_7) {
9029 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
9030 }
9031 __Pyx_INCREF(__pyx_v_s)( ((PyObject*)(__pyx_v_s))->ob_refcnt++);
9032 __Pyx_GIVEREF(__pyx_v_s);
9033 PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_s)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+__pyx_t_8] = __pyx_v_s
)
;
9034 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
9035 __Pyx_GIVEREF(__pyx_v_name);
9036 PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_name)(((PyTupleObject *)(__pyx_t_9))->ob_item[1+__pyx_t_8] = __pyx_v_name
)
;
9037 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__9037; goto __pyx_L1_error;}
9038 __Pyx_GOTREF(__pyx_t_5);
9039 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
9040 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
9041 if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_1, (PyObject
*)__pyx_t_5)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__9041; goto __pyx_L1_error;}
9042 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
9043 }
9044 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
9045 __pyx_r = __pyx_t_1;
9046 __pyx_t_1 = 0;
9047 goto __pyx_L0;
9048
9049 /* "rados.pyx":591
9050 *
9051 *
9052 * def cstr_list(list_str, name, encoding="utf-8"): # <<<<<<<<<<<<<<
9053 * return [cstr(s, name) for s in list_str]
9054 *
9055 */
9056
9057 /* function exit code */
9058 __pyx_L1_error:;
9059 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
9060 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
9061 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
9062 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
9063 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
9064 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
9065 __Pyx_AddTraceback("rados.cstr_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
9066 __pyx_r = NULL((void*)0);
9067 __pyx_L0:;
9068 __Pyx_XDECREF(__pyx_v_s)do { if ((__pyx_v_s) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_s))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_v_s)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_s)))); } while (0); } while (0)
;
9069 __Pyx_XGIVEREF(__pyx_r);
9070 __Pyx_RefNannyFinishContext();
9071 return __pyx_r;
9072}
9073
9074/* "rados.pyx":595
9075 *
9076 *
9077 * def decode_cstr(val, encoding="utf-8"): # <<<<<<<<<<<<<<
9078 * """
9079 * Decode a byte string into a Python string.
9080 */
9081
9082/* Python wrapper */
9083static PyObject *__pyx_pw_5rados_9decode_cstr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
9084static char __pyx_doc_5rados_8decode_cstr[] = "decode_cstr(val, encoding='utf-8')\n\n Decode a byte string into a Python string.\n\n :param bytes val: byte string\n :rtype: unicode or None\n ";
9085static PyMethodDef __pyx_mdef_5rados_9decode_cstr = {"decode_cstr", (PyCFunction)__pyx_pw_5rados_9decode_cstr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_8decode_cstr};
9086static PyObject *__pyx_pw_5rados_9decode_cstr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9087 PyObject *__pyx_v_val = 0;
9088 PyObject *__pyx_v_encoding = 0;
9089 int __pyx_lineno = 0;
9090 const char *__pyx_filename = NULL((void*)0);
9091 int __pyx_clineno = 0;
9092 PyObject *__pyx_r = 0;
9093 __Pyx_RefNannyDeclarations
9094 __Pyx_RefNannySetupContext("decode_cstr (wrapper)", 0);
9095 {
9096 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_val,&__pyx_n_s_encoding,0};
9097 PyObject* values[2] = {0,0};
9098 values[1] = ((PyObject *)__pyx_kp_s_utf_8);
9099 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
9100 Py_ssize_t kw_args;
9101 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
9102 switch (pos_args) {
9103 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
9104 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
9105 case 0: break;
9106 default: goto __pyx_L5_argtuple_error;
9107 }
9108 kw_args = PyDict_Size(__pyx_kwds);
9109 switch (pos_args) {
9110 case 0:
9111 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val
)) != 0), 1)
) kw_args--;
9112 else goto __pyx_L5_argtuple_error;
9113 case 1:
9114 if (kw_args > 0) {
9115 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_encoding);
9116 if (value) { values[1] = value; kw_args--; }
9117 }
9118 }
9119 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
9120 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "decode_cstr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "decode_cstr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__9120; goto __pyx_L3_error;}
9121 }
9122 } else {
9123 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
9124 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
9125 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
9126 break;
9127 default: goto __pyx_L5_argtuple_error;
9128 }
9129 }
9130 __pyx_v_val = values[0];
9131 __pyx_v_encoding = values[1];
9132 }
9133 goto __pyx_L4_argument_unpacking_done;
9134 __pyx_L5_argtuple_error:;
9135 __Pyx_RaiseArgtupleInvalid("decode_cstr", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__9135; goto __pyx_L3_error;}
9136 __pyx_L3_error:;
9137 __Pyx_AddTraceback("rados.decode_cstr", __pyx_clineno, __pyx_lineno, __pyx_filename);
9138 __Pyx_RefNannyFinishContext();
9139 return NULL((void*)0);
9140 __pyx_L4_argument_unpacking_done:;
9141 __pyx_r = __pyx_pf_5rados_8decode_cstr(__pyx_self, __pyx_v_val, __pyx_v_encoding);
9142
9143 /* function exit code */
9144 __Pyx_RefNannyFinishContext();
9145 return __pyx_r;
9146}
9147
9148static PyObject *__pyx_pf_5rados_8decode_cstr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_val, PyObject *__pyx_v_encoding) {
9149 PyObject *__pyx_r = NULL((void*)0);
9150 __Pyx_RefNannyDeclarations
9151 int __pyx_t_1;
9152 int __pyx_t_2;
9153 PyObject *__pyx_t_3 = NULL((void*)0);
9154 PyObject *__pyx_t_4 = NULL((void*)0);
9155 PyObject *__pyx_t_5 = NULL((void*)0);
9156 PyObject *__pyx_t_6 = NULL((void*)0);
9157 int __pyx_lineno = 0;
9158 const char *__pyx_filename = NULL((void*)0);
9159 int __pyx_clineno = 0;
9160 __Pyx_RefNannySetupContext("decode_cstr", 0);
9161
9162 /* "rados.pyx":602
9163 * :rtype: unicode or None
9164 * """
9165 * if val is None: # <<<<<<<<<<<<<<
9166 * return None
9167 *
9168 */
9169 __pyx_t_1 = (__pyx_v_val == Py_None(&_Py_NoneStruct));
9170 __pyx_t_2 = (__pyx_t_1 != 0);
9171 if (__pyx_t_2) {
9172
9173 /* "rados.pyx":603
9174 * """
9175 * if val is None:
9176 * return None # <<<<<<<<<<<<<<
9177 *
9178 * return val.decode(encoding)
9179 */
9180 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
9181 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
9182 __pyx_r = Py_None(&_Py_NoneStruct);
9183 goto __pyx_L0;
9184
9185 /* "rados.pyx":602
9186 * :rtype: unicode or None
9187 * """
9188 * if val is None: # <<<<<<<<<<<<<<
9189 * return None
9190 *
9191 */
9192 }
9193
9194 /* "rados.pyx":605
9195 * return None
9196 *
9197 * return val.decode(encoding) # <<<<<<<<<<<<<<
9198 *
9199 *
9200 */
9201 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
9202 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_val, __pyx_n_s_decode); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__9202; goto __pyx_L1_error;}
9203 __Pyx_GOTREF(__pyx_t_4);
9204 __pyx_t_5 = NULL((void*)0);
9205 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 1)
) {
9206 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
9207 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
9208 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
9209 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
9210 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
9211 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
9212 }
9213 }
9214 if (!__pyx_t_5) {
9215 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_encoding); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__9215; goto __pyx_L1_error;}
9216 __Pyx_GOTREF(__pyx_t_3);
9217 } else {
9218 __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__9218; goto __pyx_L1_error;}
9219 __Pyx_GOTREF(__pyx_t_6);
9220 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
9221 __Pyx_INCREF(__pyx_v_encoding)( ((PyObject*)(__pyx_v_encoding))->ob_refcnt++);
9222 __Pyx_GIVEREF(__pyx_v_encoding);
9223 PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_encoding)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+1] = __pyx_v_encoding
)
;
9224 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 605; __pyx_clineno = __LINE__9224; goto __pyx_L1_error;}
9225 __Pyx_GOTREF(__pyx_t_3);
9226 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
9227 }
9228 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
9229 __pyx_r = __pyx_t_3;
9230 __pyx_t_3 = 0;
9231 goto __pyx_L0;
9232
9233 /* "rados.pyx":595
9234 *
9235 *
9236 * def decode_cstr(val, encoding="utf-8"): # <<<<<<<<<<<<<<
9237 * """
9238 * Decode a byte string into a Python string.
9239 */
9240
9241 /* function exit code */
9242 __pyx_L1_error:;
9243 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
9244 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
9245 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
9246 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
9247 __Pyx_AddTraceback("rados.decode_cstr", __pyx_clineno, __pyx_lineno, __pyx_filename);
9248 __pyx_r = NULL((void*)0);
9249 __pyx_L0:;
9250 __Pyx_XGIVEREF(__pyx_r);
9251 __Pyx_RefNannyFinishContext();
9252 return __pyx_r;
9253}
9254
9255/* "rados.pyx":608
9256 *
9257 *
9258 * def flatten_dict(d, name): # <<<<<<<<<<<<<<
9259 * items = chain.from_iterable(d.items())
9260 * return cstr(''.join(i + '\0' for i in items), name)
9261 */
9262
9263/* Python wrapper */
9264static PyObject *__pyx_pw_5rados_11flatten_dict(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
9265static char __pyx_doc_5rados_10flatten_dict[] = "flatten_dict(d, name)";
9266static PyMethodDef __pyx_mdef_5rados_11flatten_dict = {"flatten_dict", (PyCFunction)__pyx_pw_5rados_11flatten_dict, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_10flatten_dict};
9267static PyObject *__pyx_pw_5rados_11flatten_dict(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
9268 PyObject *__pyx_v_d = 0;
9269 PyObject *__pyx_v_name = 0;
9270 int __pyx_lineno = 0;
9271 const char *__pyx_filename = NULL((void*)0);
9272 int __pyx_clineno = 0;
9273 PyObject *__pyx_r = 0;
9274 __Pyx_RefNannyDeclarations
9275 __Pyx_RefNannySetupContext("flatten_dict (wrapper)", 0);
9276 {
9277 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_d,&__pyx_n_s_name_2,0};
9278 PyObject* values[2] = {0,0};
9279 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
9280 Py_ssize_t kw_args;
9281 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
9282 switch (pos_args) {
9283 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
9284 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
9285 case 0: break;
9286 default: goto __pyx_L5_argtuple_error;
9287 }
9288 kw_args = PyDict_Size(__pyx_kwds);
9289 switch (pos_args) {
9290 case 0:
9291 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_d)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_d
)) != 0), 1)
) kw_args--;
9292 else goto __pyx_L5_argtuple_error;
9293 case 1:
9294 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
9295 else {
9296 __Pyx_RaiseArgtupleInvalid("flatten_dict", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__9296; goto __pyx_L3_error;}
9297 }
9298 }
9299 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
9300 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "flatten_dict") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "flatten_dict") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__9300; goto __pyx_L3_error;}
9301 }
9302 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
9303 goto __pyx_L5_argtuple_error;
9304 } else {
9305 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
9306 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
9307 }
9308 __pyx_v_d = values[0];
9309 __pyx_v_name = values[1];
9310 }
9311 goto __pyx_L4_argument_unpacking_done;
9312 __pyx_L5_argtuple_error:;
9313 __Pyx_RaiseArgtupleInvalid("flatten_dict", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__9313; goto __pyx_L3_error;}
9314 __pyx_L3_error:;
9315 __Pyx_AddTraceback("rados.flatten_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
9316 __Pyx_RefNannyFinishContext();
9317 return NULL((void*)0);
9318 __pyx_L4_argument_unpacking_done:;
9319 __pyx_r = __pyx_pf_5rados_10flatten_dict(__pyx_self, __pyx_v_d, __pyx_v_name);
9320
9321 /* function exit code */
9322 __Pyx_RefNannyFinishContext();
9323 return __pyx_r;
9324}
9325static PyObject *__pyx_gb_5rados_12flatten_dict_2generator3(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
9326
9327/* "rados.pyx":610
9328 * def flatten_dict(d, name):
9329 * items = chain.from_iterable(d.items())
9330 * return cstr(''.join(i + '\0' for i in items), name) # <<<<<<<<<<<<<<
9331 *
9332 *
9333 */
9334
9335static PyObject *__pyx_pf_5rados_12flatten_dict_genexpr(PyObject *__pyx_self) {
9336 struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *__pyx_cur_scope;
9337 PyObject *__pyx_r = NULL((void*)0);
9338 __Pyx_RefNannyDeclarations
9339 int __pyx_lineno = 0;
9340 const char *__pyx_filename = NULL((void*)0);
9341 int __pyx_clineno = 0;
9342 __Pyx_RefNannySetupContext("genexpr", 0);
9343 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *)__pyx_tp_new_5rados___pyx_scope_struct_8_genexpr(__pyx_ptype_5rados___pyx_scope_struct_8_genexpr, __pyx_empty_tuple, NULL((void*)0));
9344 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
9345 __Pyx_RefNannyFinishContext();
9346 return NULL((void*)0);
9347 }
9348 __Pyx_GOTREF(__pyx_cur_scope);
9349 __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *) __pyx_self;
9350 __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope))( ((PyObject*)(((PyObject *)__pyx_cur_scope->__pyx_outer_scope
)))->ob_refcnt++)
;
9351 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
9352 {
9353 __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_5rados_12flatten_dict_2generator3, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_flatten_dict_locals_genexpr)__Pyx__Coroutine_New(__pyx_GeneratorType, (__pyx_coroutine_body_t
) __pyx_gb_5rados_12flatten_dict_2generator3, (PyObject *) __pyx_cur_scope
, __pyx_n_s_genexpr, __pyx_n_s_flatten_dict_locals_genexpr)
; if (unlikely(!gen)__builtin_expect(!!(!gen), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9353; goto __pyx_L1_error;}
9354 __Pyx_DECREF(__pyx_cur_scope)do { if ( --((PyObject*)(__pyx_cur_scope))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(__pyx_cur_scope)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_cur_scope
)))); } while (0)
;
9355 __Pyx_RefNannyFinishContext();
9356 return (PyObject *) gen;
9357 }
9358
9359 /* function exit code */
9360 __pyx_L1_error:;
9361 __Pyx_AddTraceback("rados.flatten_dict.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
9362 __pyx_r = NULL((void*)0);
9363 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
9364 __Pyx_XGIVEREF(__pyx_r);
9365 __Pyx_RefNannyFinishContext();
9366 return __pyx_r;
9367}
9368
9369static PyObject *__pyx_gb_5rados_12flatten_dict_2generator3(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */
9370{
9371 struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *__pyx_cur_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *)__pyx_generator->closure);
9372 PyObject *__pyx_r = NULL((void*)0);
9373 PyObject *__pyx_t_1 = NULL((void*)0);
9374 Py_ssize_t __pyx_t_2;
9375 PyObject *(*__pyx_t_3)(PyObject *);
9376 PyObject *__pyx_t_4 = NULL((void*)0);
9377 int __pyx_lineno = 0;
9378 const char *__pyx_filename = NULL((void*)0);
9379 int __pyx_clineno = 0;
9380 __Pyx_RefNannyDeclarations
9381 __Pyx_RefNannySetupContext("None", 0);
9382 switch (__pyx_generator->resume_label) {
9383 case 0: goto __pyx_L3_first_run;
9384 case 1: goto __pyx_L6_resume_from_yield;
9385 default: /* CPython raises the right error here */
9386 __Pyx_RefNannyFinishContext();
9387 return NULL((void*)0);
9388 }
9389 __pyx_L3_first_run:;
9390 if (unlikely(!__pyx_sent_value)__builtin_expect(!!(!__pyx_sent_value), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9390; goto __pyx_L1_error;}
9391 if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_items)__builtin_expect(!!(!__pyx_cur_scope->__pyx_outer_scope->
__pyx_v_items), 0)
) { __Pyx_RaiseClosureNameError("items"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9391; goto __pyx_L1_error;} }
9392 if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_items))__builtin_expect(!!(((((PyObject*)(__pyx_cur_scope->__pyx_outer_scope
->__pyx_v_items))->ob_type) == &PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_items)((((PyObject*)(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_items
))->ob_type) == &PyTuple_Type)
) {
9393 __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_items; __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_2 = 0;
9394 __pyx_t_3 = NULL((void*)0);
9395 } else {
9396 __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_items); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9396; goto __pyx_L1_error;}
9397 __Pyx_GOTREF(__pyx_t_1);
9398 __pyx_t_3 = Py_TYPE(__pyx_t_1)(((PyObject*)(__pyx_t_1))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9398; goto __pyx_L1_error;}
9399 }
9400 for (;;) {
9401 if (likely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 1)) {
9402 if (likely(PyList_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyList_Type)), 1)
) {
9403 if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
9404 #if CYTHON_COMPILING_IN_CPYTHON1
9405 __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2)(((PyListObject *)(__pyx_t_1))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9405; goto __pyx_L1_error;}
9406 #else
9407 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9407; goto __pyx_L1_error;}
9408 __Pyx_GOTREF(__pyx_t_4);
9409 #endif
9410 } else {
9411 if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
9412 #if CYTHON_COMPILING_IN_CPYTHON1
9413 __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9413; goto __pyx_L1_error;}
9414 #else
9415 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9415; goto __pyx_L1_error;}
9416 __Pyx_GOTREF(__pyx_t_4);
9417 #endif
9418 }
9419 } else {
9420 __pyx_t_4 = __pyx_t_3(__pyx_t_1);
9421 if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {
9422 PyObject* exc_type = PyErr_Occurred();
9423 if (exc_type) {
9424 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
9425 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9425; goto __pyx_L1_error;}
9426 }
9427 break;
9428 }
9429 __Pyx_GOTREF(__pyx_t_4);
9430 }
9431 __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_i);
9432 __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_i, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_cur_scope->__pyx_v_i
; __pyx_cur_scope->__pyx_v_i = __pyx_t_4; do { if ((tmp) ==
((void*)0)) ; else do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0); } while (0)
;
9433 __Pyx_GIVEREF(__pyx_t_4);
9434 __pyx_t_4 = 0;
9435 __pyx_t_4 = PyNumber_Add(__pyx_cur_scope->__pyx_v_i, __pyx_kp_s__9); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9435; goto __pyx_L1_error;}
9436 __Pyx_GOTREF(__pyx_t_4);
9437 __pyx_r = __pyx_t_4;
9438 __pyx_t_4 = 0;
9439 __Pyx_XGIVEREF(__pyx_t_1);
9440 __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
9441 __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
9442 __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
9443 __Pyx_XGIVEREF(__pyx_r);
9444 __Pyx_RefNannyFinishContext();
9445 /* return from generator, yielding value */
9446 __pyx_generator->resume_label = 1;
9447 return __pyx_r;
9448 __pyx_L6_resume_from_yield:;
9449 __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
9450 __pyx_cur_scope->__pyx_t_0 = 0;
9451 __Pyx_XGOTREF(__pyx_t_1);
9452 __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
9453 __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
9454 if (unlikely(!__pyx_sent_value)__builtin_expect(!!(!__pyx_sent_value), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9454; goto __pyx_L1_error;}
9455 }
9456 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
9457
9458 /* function exit code */
9459 PyErr_SetNone(PyExc_StopIteration);
9460 goto __pyx_L0;
9461 __pyx_L1_error:;
9462 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
9463 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
9464 __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
9465 __pyx_L0:;
9466 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
; __pyx_r = 0;
9467 __pyx_generator->resume_label = -1;
9468 __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
9469 __Pyx_RefNannyFinishContext();
9470 return __pyx_r;
9471}
9472
9473/* "rados.pyx":608
9474 *
9475 *
9476 * def flatten_dict(d, name): # <<<<<<<<<<<<<<
9477 * items = chain.from_iterable(d.items())
9478 * return cstr(''.join(i + '\0' for i in items), name)
9479 */
9480
9481static PyObject *__pyx_pf_5rados_10flatten_dict(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_d, PyObject *__pyx_v_name) {
9482 struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *__pyx_cur_scope;
9483 PyObject *__pyx_r = NULL((void*)0);
9484 __Pyx_RefNannyDeclarations
9485 PyObject *__pyx_t_1 = NULL((void*)0);
9486 PyObject *__pyx_t_2 = NULL((void*)0);
9487 PyObject *__pyx_t_3 = NULL((void*)0);
9488 PyObject *__pyx_t_4 = NULL((void*)0);
9489 PyObject *__pyx_t_5 = NULL((void*)0);
9490 Py_ssize_t __pyx_t_6;
9491 int __pyx_lineno = 0;
9492 const char *__pyx_filename = NULL((void*)0);
9493 int __pyx_clineno = 0;
9494 __Pyx_RefNannySetupContext("flatten_dict", 0);
9495 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *)__pyx_tp_new_5rados___pyx_scope_struct_7_flatten_dict(__pyx_ptype_5rados___pyx_scope_struct_7_flatten_dict, __pyx_empty_tuple, NULL((void*)0));
9496 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
9497 __Pyx_RefNannyFinishContext();
9498 return NULL((void*)0);
9499 }
9500 __Pyx_GOTREF(__pyx_cur_scope);
9501
9502 /* "rados.pyx":609
9503 *
9504 * def flatten_dict(d, name):
9505 * items = chain.from_iterable(d.items()) # <<<<<<<<<<<<<<
9506 * return cstr(''.join(i + '\0' for i in items), name)
9507 *
9508 */
9509 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_chain); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9509; goto __pyx_L1_error;}
9510 __Pyx_GOTREF(__pyx_t_2);
9511 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_from_iterable); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9511; goto __pyx_L1_error;}
9512 __Pyx_GOTREF(__pyx_t_3);
9513 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
9514 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_d, __pyx_n_s_items); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9514; goto __pyx_L1_error;}
9515 __Pyx_GOTREF(__pyx_t_4);
9516 __pyx_t_5 = NULL((void*)0);
9517 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 1)
) {
9518 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
9519 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
9520 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
9521 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
9522 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
9523 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
9524 }
9525 }
9526 if (__pyx_t_5) {
9527 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9527; goto __pyx_L1_error;}
9528 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
9529 } else {
9530 __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9530; goto __pyx_L1_error;}
9531 }
9532 __Pyx_GOTREF(__pyx_t_2);
9533 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
9534 __pyx_t_4 = NULL((void*)0);
9535 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
9536 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
9537 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
9538 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
9539 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
9540 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
9541 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
9542 }
9543 }
9544 if (!__pyx_t_4) {
9545 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9545; goto __pyx_L1_error;}
9546 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
9547 __Pyx_GOTREF(__pyx_t_1);
9548 } else {
9549 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9549; goto __pyx_L1_error;}
9550 __Pyx_GOTREF(__pyx_t_5);
9551 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
9552 __Pyx_GIVEREF(__pyx_t_2);
9553 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_t_2);
9554 __pyx_t_2 = 0;
9555 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__9555; goto __pyx_L1_error;}
9556 __Pyx_GOTREF(__pyx_t_1);
9557 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
9558 }
9559 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
9560 __Pyx_GIVEREF(__pyx_t_1);
9561 __pyx_cur_scope->__pyx_v_items = __pyx_t_1;
9562 __pyx_t_1 = 0;
9563
9564 /* "rados.pyx":610
9565 * def flatten_dict(d, name):
9566 * items = chain.from_iterable(d.items())
9567 * return cstr(''.join(i + '\0' for i in items), name) # <<<<<<<<<<<<<<
9568 *
9569 *
9570 */
9571 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
9572 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9572; goto __pyx_L1_error;}
9573 __Pyx_GOTREF(__pyx_t_3);
9574 __pyx_t_5 = __pyx_pf_5rados_12flatten_dict_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9574; goto __pyx_L1_error;}
9575 __Pyx_GOTREF(__pyx_t_5);
9576 __pyx_t_2 = __Pyx_PyString_Join_PyString_Join(__pyx_kp_s__10, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9576; goto __pyx_L1_error;}
9577 __Pyx_GOTREF(__pyx_t_2);
9578 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
9579 __pyx_t_5 = NULL((void*)0);
9580 __pyx_t_6 = 0;
9581 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
9582 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
9583 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
9584 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
9585 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
9586 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
9587 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
9588 __pyx_t_6 = 1;
9589 }
9590 }
9591 __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9591; goto __pyx_L1_error;}
9592 __Pyx_GOTREF(__pyx_t_4);
9593 if (__pyx_t_5) {
9594 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
9595 }
9596 __Pyx_GIVEREF(__pyx_t_2);
9597 PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_2)(((PyTupleObject *)(__pyx_t_4))->ob_item[0+__pyx_t_6] = __pyx_t_2
)
;
9598 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
9599 __Pyx_GIVEREF(__pyx_v_name);
9600 PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_name)(((PyTupleObject *)(__pyx_t_4))->ob_item[1+__pyx_t_6] = __pyx_v_name
)
;
9601 __pyx_t_2 = 0;
9602 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__9602; goto __pyx_L1_error;}
9603 __Pyx_GOTREF(__pyx_t_1);
9604 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
9605 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
9606 __pyx_r = __pyx_t_1;
9607 __pyx_t_1 = 0;
9608 goto __pyx_L0;
9609
9610 /* "rados.pyx":608
9611 *
9612 *
9613 * def flatten_dict(d, name): # <<<<<<<<<<<<<<
9614 * items = chain.from_iterable(d.items())
9615 * return cstr(''.join(i + '\0' for i in items), name)
9616 */
9617
9618 /* function exit code */
9619 __pyx_L1_error:;
9620 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
9621 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
9622 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
9623 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
9624 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
9625 __Pyx_AddTraceback("rados.flatten_dict", __pyx_clineno, __pyx_lineno, __pyx_filename);
9626 __pyx_r = NULL((void*)0);
9627 __pyx_L0:;
9628 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
9629 __Pyx_XGIVEREF(__pyx_r);
9630 __Pyx_RefNannyFinishContext();
9631 return __pyx_r;
9632}
9633
9634/* "rados.pyx":613
9635 *
9636 *
9637 * cdef char* opt_str(s) except? NULL: # <<<<<<<<<<<<<<
9638 * if s is None:
9639 * return NULL
9640 */
9641
9642static char *__pyx_f_5rados_opt_str(PyObject *__pyx_v_s) {
9643 char *__pyx_r;
9644 __Pyx_RefNannyDeclarations
9645 int __pyx_t_1;
9646 int __pyx_t_2;
9647 char *__pyx_t_3;
9648 int __pyx_lineno = 0;
9649 const char *__pyx_filename = NULL((void*)0);
9650 int __pyx_clineno = 0;
9651 __Pyx_RefNannySetupContext("opt_str", 0);
9652
9653 /* "rados.pyx":614
9654 *
9655 * cdef char* opt_str(s) except? NULL:
9656 * if s is None: # <<<<<<<<<<<<<<
9657 * return NULL
9658 * return s
9659 */
9660 __pyx_t_1 = (__pyx_v_s == Py_None(&_Py_NoneStruct));
9661 __pyx_t_2 = (__pyx_t_1 != 0);
9662 if (__pyx_t_2) {
9663
9664 /* "rados.pyx":615
9665 * cdef char* opt_str(s) except? NULL:
9666 * if s is None:
9667 * return NULL # <<<<<<<<<<<<<<
9668 * return s
9669 *
9670 */
9671 __pyx_r = NULL((void*)0);
9672 goto __pyx_L0;
9673
9674 /* "rados.pyx":614
9675 *
9676 * cdef char* opt_str(s) except? NULL:
9677 * if s is None: # <<<<<<<<<<<<<<
9678 * return NULL
9679 * return s
9680 */
9681 }
9682
9683 /* "rados.pyx":616
9684 * if s is None:
9685 * return NULL
9686 * return s # <<<<<<<<<<<<<<
9687 *
9688 *
9689 */
9690 __pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_s); if (unlikely((!__pyx_t_3) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_3) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__9690; goto __pyx_L1_error;}
9691 __pyx_r = __pyx_t_3;
9692 goto __pyx_L0;
9693
9694 /* "rados.pyx":613
9695 *
9696 *
9697 * cdef char* opt_str(s) except? NULL: # <<<<<<<<<<<<<<
9698 * if s is None:
9699 * return NULL
9700 */
9701
9702 /* function exit code */
9703 __pyx_L1_error:;
9704 __Pyx_AddTraceback("rados.opt_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
9705 __pyx_r = NULL((void*)0);
9706 __pyx_L0:;
9707 __Pyx_RefNannyFinishContext();
9708 return __pyx_r;
9709}
9710
9711/* "rados.pyx":619
9712 *
9713 *
9714 * cdef void* realloc_chk(void* ptr, size_t size) except NULL: # <<<<<<<<<<<<<<
9715 * cdef void *ret = realloc(ptr, size)
9716 * if ret == NULL:
9717 */
9718
9719static void *__pyx_f_5rados_realloc_chk(void *__pyx_v_ptr, size_t __pyx_v_size) {
9720 void *__pyx_v_ret;
9721 void *__pyx_r;
9722 __Pyx_RefNannyDeclarations
9723 int __pyx_t_1;
9724 PyObject *__pyx_t_2 = NULL((void*)0);
9725 int __pyx_lineno = 0;
9726 const char *__pyx_filename = NULL((void*)0);
9727 int __pyx_clineno = 0;
9728 __Pyx_RefNannySetupContext("realloc_chk", 0);
9729
9730 /* "rados.pyx":620
9731 *
9732 * cdef void* realloc_chk(void* ptr, size_t size) except NULL:
9733 * cdef void *ret = realloc(ptr, size) # <<<<<<<<<<<<<<
9734 * if ret == NULL:
9735 * raise MemoryError("realloc failed")
9736 */
9737 __pyx_v_ret = realloc(__pyx_v_ptr, __pyx_v_size);
9738
9739 /* "rados.pyx":621
9740 * cdef void* realloc_chk(void* ptr, size_t size) except NULL:
9741 * cdef void *ret = realloc(ptr, size)
9742 * if ret == NULL: # <<<<<<<<<<<<<<
9743 * raise MemoryError("realloc failed")
9744 * return ret
9745 */
9746 __pyx_t_1 = ((__pyx_v_ret == NULL((void*)0)) != 0);
9747 if (__pyx_t_1) {
9748
9749 /* "rados.pyx":622
9750 * cdef void *ret = realloc(ptr, size)
9751 * if ret == NULL:
9752 * raise MemoryError("realloc failed") # <<<<<<<<<<<<<<
9753 * return ret
9754 *
9755 */
9756 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__11, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__9756; goto __pyx_L1_error;}
9757 __Pyx_GOTREF(__pyx_t_2);
9758 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
9759 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
9760 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__9760; goto __pyx_L1_error;}
9761
9762 /* "rados.pyx":621
9763 * cdef void* realloc_chk(void* ptr, size_t size) except NULL:
9764 * cdef void *ret = realloc(ptr, size)
9765 * if ret == NULL: # <<<<<<<<<<<<<<
9766 * raise MemoryError("realloc failed")
9767 * return ret
9768 */
9769 }
9770
9771 /* "rados.pyx":623
9772 * if ret == NULL:
9773 * raise MemoryError("realloc failed")
9774 * return ret # <<<<<<<<<<<<<<
9775 *
9776 *
9777 */
9778 __pyx_r = __pyx_v_ret;
9779 goto __pyx_L0;
9780
9781 /* "rados.pyx":619
9782 *
9783 *
9784 * cdef void* realloc_chk(void* ptr, size_t size) except NULL: # <<<<<<<<<<<<<<
9785 * cdef void *ret = realloc(ptr, size)
9786 * if ret == NULL:
9787 */
9788
9789 /* function exit code */
9790 __pyx_L1_error:;
9791 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
9792 __Pyx_AddTraceback("rados.realloc_chk", __pyx_clineno, __pyx_lineno, __pyx_filename);
9793 __pyx_r = NULL((void*)0);
9794 __pyx_L0:;
9795 __Pyx_RefNannyFinishContext();
9796 return __pyx_r;
9797}
9798
9799/* "rados.pyx":626
9800 *
9801 *
9802 * cdef size_t * to_csize_t_array(list_int): # <<<<<<<<<<<<<<
9803 * cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
9804 * if ret == NULL:
9805 */
9806
9807static size_t *__pyx_f_5rados_to_csize_t_array(PyObject *__pyx_v_list_int) {
9808 size_t *__pyx_v_ret;
9809 Py_ssize_t __pyx_v_i;
9810 size_t *__pyx_r;
9811 __Pyx_RefNannyDeclarations
9812 Py_ssize_t __pyx_t_1;
9813 int __pyx_t_2;
9814 PyObject *__pyx_t_3 = NULL((void*)0);
9815 Py_ssize_t __pyx_t_4;
9816 size_t __pyx_t_5;
9817 int __pyx_lineno = 0;
9818 const char *__pyx_filename = NULL((void*)0);
9819 int __pyx_clineno = 0;
9820 __Pyx_RefNannySetupContext("to_csize_t_array", 0);
9821
9822 /* "rados.pyx":627
9823 *
9824 * cdef size_t * to_csize_t_array(list_int):
9825 * cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t)) # <<<<<<<<<<<<<<
9826 * if ret == NULL:
9827 * raise MemoryError("malloc failed")
9828 */
9829 __pyx_t_1 = PyObject_LengthPyObject_Size(__pyx_v_list_int); if (unlikely(__pyx_t_1 == -1)__builtin_expect(!!(__pyx_t_1 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__9829; goto __pyx_L1_error;}
9830 __pyx_v_ret = ((size_t *)malloc((__pyx_t_1 * (sizeof(size_t)))));
9831
9832 /* "rados.pyx":628
9833 * cdef size_t * to_csize_t_array(list_int):
9834 * cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
9835 * if ret == NULL: # <<<<<<<<<<<<<<
9836 * raise MemoryError("malloc failed")
9837 * for i in xrange(len(list_int)):
9838 */
9839 __pyx_t_2 = ((__pyx_v_ret == NULL((void*)0)) != 0);
9840 if (__pyx_t_2) {
9841
9842 /* "rados.pyx":629
9843 * cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
9844 * if ret == NULL:
9845 * raise MemoryError("malloc failed") # <<<<<<<<<<<<<<
9846 * for i in xrange(len(list_int)):
9847 * ret[i] = <size_t>list_int[i]
9848 */
9849 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__12, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__9849; goto __pyx_L1_error;}
9850 __Pyx_GOTREF(__pyx_t_3);
9851 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
9852 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
9853 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__9853; goto __pyx_L1_error;}
9854
9855 /* "rados.pyx":628
9856 * cdef size_t * to_csize_t_array(list_int):
9857 * cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
9858 * if ret == NULL: # <<<<<<<<<<<<<<
9859 * raise MemoryError("malloc failed")
9860 * for i in xrange(len(list_int)):
9861 */
9862 }
9863
9864 /* "rados.pyx":630
9865 * if ret == NULL:
9866 * raise MemoryError("malloc failed")
9867 * for i in xrange(len(list_int)): # <<<<<<<<<<<<<<
9868 * ret[i] = <size_t>list_int[i]
9869 * return ret
9870 */
9871 __pyx_t_1 = PyObject_LengthPyObject_Size(__pyx_v_list_int); if (unlikely(__pyx_t_1 == -1)__builtin_expect(!!(__pyx_t_1 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__9871; goto __pyx_L1_error;}
9872 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_1; __pyx_t_4+=1) {
9873 __pyx_v_i = __pyx_t_4;
9874
9875 /* "rados.pyx":631
9876 * raise MemoryError("malloc failed")
9877 * for i in xrange(len(list_int)):
9878 * ret[i] = <size_t>list_int[i] # <<<<<<<<<<<<<<
9879 * return ret
9880 *
9881 */
9882 __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_list_int, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1)(( (sizeof(Py_ssize_t) < sizeof(Py_ssize_t)) || (sizeof(Py_ssize_t
) > sizeof(Py_ssize_t) && __builtin_expect(!!(__pyx_v_i
< (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>1)) || __pyx_v_i
== (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>1))), 1) &&
(!1 || __builtin_expect(!!(__pyx_v_i > (Py_ssize_t)(-((Py_ssize_t
)(((size_t)-1)>>1))-1) || __pyx_v_i == (Py_ssize_t)(-((
Py_ssize_t)(((size_t)-1)>>1))-1)), 1))) || (sizeof(Py_ssize_t
) == sizeof(Py_ssize_t) && (1 || __builtin_expect(!!(
__pyx_v_i < (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>
1)) || __pyx_v_i == (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) ) ? __Pyx_GetItemInt_Fast(__pyx_v_list_int, (Py_ssize_t
)__pyx_v_i, 0, 1, 1) : (0 ? (PyErr_SetString(PyExc_IndexError
, "list index out of range"), (PyObject*)((void*)0)) : __Pyx_GetItemInt_Generic
(__pyx_v_list_int, PyInt_FromSsize_t(__pyx_v_i))))
; if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__9882; goto __pyx_L1_error;};
9883 __Pyx_GOTREF(__pyx_t_3);
9884 __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_t_3); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_5 == (size_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__9884; goto __pyx_L1_error;}
9885 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
9886 (__pyx_v_ret[__pyx_v_i]) = ((size_t)__pyx_t_5);
9887 }
9888
9889 /* "rados.pyx":632
9890 * for i in xrange(len(list_int)):
9891 * ret[i] = <size_t>list_int[i]
9892 * return ret # <<<<<<<<<<<<<<
9893 *
9894 *
9895 */
9896 __pyx_r = __pyx_v_ret;
9897 goto __pyx_L0;
9898
9899 /* "rados.pyx":626
9900 *
9901 *
9902 * cdef size_t * to_csize_t_array(list_int): # <<<<<<<<<<<<<<
9903 * cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
9904 * if ret == NULL:
9905 */
9906
9907 /* function exit code */
9908 __pyx_L1_error:;
9909 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
9910 __Pyx_WriteUnraisable("rados.to_csize_t_array", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
9911 __pyx_r = 0;
9912 __pyx_L0:;
9913 __Pyx_RefNannyFinishContext();
9914 return __pyx_r;
9915}
9916
9917/* "rados.pyx":635
9918 *
9919 *
9920 * cdef char ** to_bytes_array(list_bytes): # <<<<<<<<<<<<<<
9921 * cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
9922 * if ret == NULL:
9923 */
9924
9925static char **__pyx_f_5rados_to_bytes_array(PyObject *__pyx_v_list_bytes) {
9926 char **__pyx_v_ret;
9927 Py_ssize_t __pyx_v_i;
9928 char **__pyx_r;
9929 __Pyx_RefNannyDeclarations
9930 Py_ssize_t __pyx_t_1;
9931 int __pyx_t_2;
9932 PyObject *__pyx_t_3 = NULL((void*)0);
9933 Py_ssize_t __pyx_t_4;
9934 char *__pyx_t_5;
9935 int __pyx_lineno = 0;
9936 const char *__pyx_filename = NULL((void*)0);
9937 int __pyx_clineno = 0;
9938 __Pyx_RefNannySetupContext("to_bytes_array", 0);
9939
9940 /* "rados.pyx":636
9941 *
9942 * cdef char ** to_bytes_array(list_bytes):
9943 * cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *)) # <<<<<<<<<<<<<<
9944 * if ret == NULL:
9945 * raise MemoryError("malloc failed")
9946 */
9947 __pyx_t_1 = PyObject_LengthPyObject_Size(__pyx_v_list_bytes); if (unlikely(__pyx_t_1 == -1)__builtin_expect(!!(__pyx_t_1 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__9947; goto __pyx_L1_error;}
9948 __pyx_v_ret = ((char **)malloc((__pyx_t_1 * (sizeof(char *)))));
9949
9950 /* "rados.pyx":637
9951 * cdef char ** to_bytes_array(list_bytes):
9952 * cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
9953 * if ret == NULL: # <<<<<<<<<<<<<<
9954 * raise MemoryError("malloc failed")
9955 * for i in xrange(len(list_bytes)):
9956 */
9957 __pyx_t_2 = ((__pyx_v_ret == NULL((void*)0)) != 0);
9958 if (__pyx_t_2) {
9959
9960 /* "rados.pyx":638
9961 * cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
9962 * if ret == NULL:
9963 * raise MemoryError("malloc failed") # <<<<<<<<<<<<<<
9964 * for i in xrange(len(list_bytes)):
9965 * ret[i] = <char *>list_bytes[i]
9966 */
9967 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__13, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__9967; goto __pyx_L1_error;}
9968 __Pyx_GOTREF(__pyx_t_3);
9969 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
9970 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
9971 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__9971; goto __pyx_L1_error;}
9972
9973 /* "rados.pyx":637
9974 * cdef char ** to_bytes_array(list_bytes):
9975 * cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
9976 * if ret == NULL: # <<<<<<<<<<<<<<
9977 * raise MemoryError("malloc failed")
9978 * for i in xrange(len(list_bytes)):
9979 */
9980 }
9981
9982 /* "rados.pyx":639
9983 * if ret == NULL:
9984 * raise MemoryError("malloc failed")
9985 * for i in xrange(len(list_bytes)): # <<<<<<<<<<<<<<
9986 * ret[i] = <char *>list_bytes[i]
9987 * return ret
9988 */
9989 __pyx_t_1 = PyObject_LengthPyObject_Size(__pyx_v_list_bytes); if (unlikely(__pyx_t_1 == -1)__builtin_expect(!!(__pyx_t_1 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__9989; goto __pyx_L1_error;}
9990 for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_1; __pyx_t_4+=1) {
9991 __pyx_v_i = __pyx_t_4;
9992
9993 /* "rados.pyx":640
9994 * raise MemoryError("malloc failed")
9995 * for i in xrange(len(list_bytes)):
9996 * ret[i] = <char *>list_bytes[i] # <<<<<<<<<<<<<<
9997 * return ret
9998 *
9999 */
10000 __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_list_bytes, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1)(( (sizeof(Py_ssize_t) < sizeof(Py_ssize_t)) || (sizeof(Py_ssize_t
) > sizeof(Py_ssize_t) && __builtin_expect(!!(__pyx_v_i
< (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>1)) || __pyx_v_i
== (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>1))), 1) &&
(!1 || __builtin_expect(!!(__pyx_v_i > (Py_ssize_t)(-((Py_ssize_t
)(((size_t)-1)>>1))-1) || __pyx_v_i == (Py_ssize_t)(-((
Py_ssize_t)(((size_t)-1)>>1))-1)), 1))) || (sizeof(Py_ssize_t
) == sizeof(Py_ssize_t) && (1 || __builtin_expect(!!(
__pyx_v_i < (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>
1)) || __pyx_v_i == (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) ) ? __Pyx_GetItemInt_Fast(__pyx_v_list_bytes, (Py_ssize_t
)__pyx_v_i, 0, 1, 1) : (0 ? (PyErr_SetString(PyExc_IndexError
, "list index out of range"), (PyObject*)((void*)0)) : __Pyx_GetItemInt_Generic
(__pyx_v_list_bytes, PyInt_FromSsize_t(__pyx_v_i))))
; if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__10000; goto __pyx_L1_error;};
10001 __Pyx_GOTREF(__pyx_t_3);
10002 __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_5) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_5) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__10002; goto __pyx_L1_error;}
10003 (__pyx_v_ret[__pyx_v_i]) = ((char *)__pyx_t_5);
10004 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
10005 }
10006
10007 /* "rados.pyx":641
10008 * for i in xrange(len(list_bytes)):
10009 * ret[i] = <char *>list_bytes[i]
10010 * return ret # <<<<<<<<<<<<<<
10011 *
10012 *
10013 */
10014 __pyx_r = __pyx_v_ret;
10015 goto __pyx_L0;
10016
10017 /* "rados.pyx":635
10018 *
10019 *
10020 * cdef char ** to_bytes_array(list_bytes): # <<<<<<<<<<<<<<
10021 * cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
10022 * if ret == NULL:
10023 */
10024
10025 /* function exit code */
10026 __pyx_L1_error:;
10027 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
10028 __Pyx_WriteUnraisable("rados.to_bytes_array", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
10029 __pyx_r = 0;
10030 __pyx_L0:;
10031 __Pyx_RefNannyFinishContext();
10032 return __pyx_r;
10033}
10034
10035/* "rados.pyx":645
10036 *
10037 *
10038 * cdef int __monitor_callback(void *arg, const char *line, const char *who, # <<<<<<<<<<<<<<
10039 * uint64_t sec, uint64_t nsec, uint64_t seq,
10040 * const char *level, const char *msg) with gil:
10041 */
10042
10043static int __pyx_f_5rados___monitor_callback(void *__pyx_v_arg, char const *__pyx_v_line, char const *__pyx_v_who, uint64_t __pyx_v_sec, uint64_t __pyx_v_nsec, uint64_t __pyx_v_seq, char const *__pyx_v_level, char const *__pyx_v_msg) {
10044 PyObject *__pyx_v_cb_info = 0;
10045 int __pyx_r;
10046 __Pyx_RefNannyDeclarations
10047 PyObject *__pyx_t_1 = NULL((void*)0);
10048 PyObject *__pyx_t_2 = NULL((void*)0);
10049 PyObject *__pyx_t_3 = NULL((void*)0);
10050 PyObject *__pyx_t_4 = NULL((void*)0);
10051 PyObject *__pyx_t_5 = NULL((void*)0);
10052 PyObject *__pyx_t_6 = NULL((void*)0);
10053 PyObject *__pyx_t_7 = NULL((void*)0);
10054 PyObject *__pyx_t_8 = NULL((void*)0);
10055 PyObject *__pyx_t_9 = NULL((void*)0);
10056 PyObject *__pyx_t_10 = NULL((void*)0);
10057 PyObject *__pyx_t_11 = NULL((void*)0);
10058 Py_ssize_t __pyx_t_12;
10059 PyObject *__pyx_t_13 = NULL((void*)0);
10060 int __pyx_lineno = 0;
10061 const char *__pyx_filename = NULL((void*)0);
10062 int __pyx_clineno = 0;
10063 #ifdef WITH_THREAD1
10064 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
10065 #endif
10066 __Pyx_RefNannySetupContext("__monitor_callback", 0);
10067
10068 /* "rados.pyx":648
10069 * uint64_t sec, uint64_t nsec, uint64_t seq,
10070 * const char *level, const char *msg) with gil:
10071 * cdef object cb_info = <object>arg # <<<<<<<<<<<<<<
10072 * cb_info[0](cb_info[1], line, who, sec, nsec, seq, level, msg)
10073 * return 0
10074 */
10075 __pyx_t_1 = ((PyObject *)__pyx_v_arg);
10076 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
10077 __pyx_v_cb_info = __pyx_t_1;
10078 __pyx_t_1 = 0;
10079
10080 /* "rados.pyx":649
10081 * const char *level, const char *msg) with gil:
10082 * cdef object cb_info = <object>arg
10083 * cb_info[0](cb_info[1], line, who, sec, nsec, seq, level, msg) # <<<<<<<<<<<<<<
10084 * return 0
10085 *
10086 */
10087 __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_cb_info, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1)(( (sizeof(long) < sizeof(Py_ssize_t)) || (sizeof(long) >
sizeof(Py_ssize_t) && __builtin_expect(!!(0 < (long
)((Py_ssize_t)(((size_t)-1)>>1)) || 0 == (long)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!1 || __builtin_expect
(!!(0 > (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
0 == (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(long) == sizeof(Py_ssize_t) && (1 || __builtin_expect
(!!(0 < (long)((Py_ssize_t)(((size_t)-1)>>1)) || 0 ==
(long)((Py_ssize_t)(((size_t)-1)>>1))), 1))) ) ? __Pyx_GetItemInt_Fast
(__pyx_v_cb_info, (Py_ssize_t)0, 0, 0, 1) : (0 ? (PyErr_SetString
(PyExc_IndexError, "list index out of range"), (PyObject*)((void
*)0)) : __Pyx_GetItemInt_Generic(__pyx_v_cb_info, __Pyx_PyInt_From_long
(0))))
; if (unlikely(__pyx_t_2 == NULL)__builtin_expect(!!(__pyx_t_2 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10087; goto __pyx_L1_error;};
10088 __Pyx_GOTREF(__pyx_t_2);
10089 __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_cb_info, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1)(( (sizeof(long) < sizeof(Py_ssize_t)) || (sizeof(long) >
sizeof(Py_ssize_t) && __builtin_expect(!!(1 < (long
)((Py_ssize_t)(((size_t)-1)>>1)) || 1 == (long)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!1 || __builtin_expect
(!!(1 > (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
1 == (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(long) == sizeof(Py_ssize_t) && (1 || __builtin_expect
(!!(1 < (long)((Py_ssize_t)(((size_t)-1)>>1)) || 1 ==
(long)((Py_ssize_t)(((size_t)-1)>>1))), 1))) ) ? __Pyx_GetItemInt_Fast
(__pyx_v_cb_info, (Py_ssize_t)1, 0, 0, 1) : (0 ? (PyErr_SetString
(PyExc_IndexError, "list index out of range"), (PyObject*)((void
*)0)) : __Pyx_GetItemInt_Generic(__pyx_v_cb_info, __Pyx_PyInt_From_long
(1))))
; if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10089; goto __pyx_L1_error;};
10090 __Pyx_GOTREF(__pyx_t_3);
10091 __pyx_t_4 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_line); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10091; goto __pyx_L1_error;}
10092 __Pyx_GOTREF(__pyx_t_4);
10093 __pyx_t_5 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_who); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10093; goto __pyx_L1_error;}
10094 __Pyx_GOTREF(__pyx_t_5);
10095 __pyx_t_6 = __Pyx_PyInt_From_uint64_t(__pyx_v_sec); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10095; goto __pyx_L1_error;}
10096 __Pyx_GOTREF(__pyx_t_6);
10097 __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_nsec); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10097; goto __pyx_L1_error;}
10098 __Pyx_GOTREF(__pyx_t_7);
10099 __pyx_t_8 = __Pyx_PyInt_From_uint64_t(__pyx_v_seq); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10099; goto __pyx_L1_error;}
10100 __Pyx_GOTREF(__pyx_t_8);
10101 __pyx_t_9 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_level); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10101; goto __pyx_L1_error;}
10102 __Pyx_GOTREF(__pyx_t_9);
10103 __pyx_t_10 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_msg); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10103; goto __pyx_L1_error;}
10104 __Pyx_GOTREF(__pyx_t_10);
10105 __pyx_t_11 = NULL((void*)0);
10106 __pyx_t_12 = 0;
10107 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
10108 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
10109 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
10110 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
10111 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
10112 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
10113 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
10114 __pyx_t_12 = 1;
10115 }
10116 }
10117 __pyx_t_13 = PyTuple_New(8+__pyx_t_12); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10117; goto __pyx_L1_error;}
10118 __Pyx_GOTREF(__pyx_t_13);
10119 if (__pyx_t_11) {
10120 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
10121 }
10122 __Pyx_GIVEREF(__pyx_t_3);
10123 PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_t_3)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+__pyx_t_12] = __pyx_t_3
)
;
10124 __Pyx_GIVEREF(__pyx_t_4);
10125 PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_4)(((PyTupleObject *)(__pyx_t_13))->ob_item[1+__pyx_t_12] = __pyx_t_4
)
;
10126 __Pyx_GIVEREF(__pyx_t_5);
10127 PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_12, __pyx_t_5)(((PyTupleObject *)(__pyx_t_13))->ob_item[2+__pyx_t_12] = __pyx_t_5
)
;
10128 __Pyx_GIVEREF(__pyx_t_6);
10129 PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_12, __pyx_t_6)(((PyTupleObject *)(__pyx_t_13))->ob_item[3+__pyx_t_12] = __pyx_t_6
)
;
10130 __Pyx_GIVEREF(__pyx_t_7);
10131 PyTuple_SET_ITEM(__pyx_t_13, 4+__pyx_t_12, __pyx_t_7)(((PyTupleObject *)(__pyx_t_13))->ob_item[4+__pyx_t_12] = __pyx_t_7
)
;
10132 __Pyx_GIVEREF(__pyx_t_8);
10133 PyTuple_SET_ITEM(__pyx_t_13, 5+__pyx_t_12, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[5+__pyx_t_12] = __pyx_t_8
)
;
10134 __Pyx_GIVEREF(__pyx_t_9);
10135 PyTuple_SET_ITEM(__pyx_t_13, 6+__pyx_t_12, __pyx_t_9)(((PyTupleObject *)(__pyx_t_13))->ob_item[6+__pyx_t_12] = __pyx_t_9
)
;
10136 __Pyx_GIVEREF(__pyx_t_10);
10137 PyTuple_SET_ITEM(__pyx_t_13, 7+__pyx_t_12, __pyx_t_10)(((PyTupleObject *)(__pyx_t_13))->ob_item[7+__pyx_t_12] = __pyx_t_10
)
;
10138 __pyx_t_3 = 0;
10139 __pyx_t_4 = 0;
10140 __pyx_t_5 = 0;
10141 __pyx_t_6 = 0;
10142 __pyx_t_7 = 0;
10143 __pyx_t_8 = 0;
10144 __pyx_t_9 = 0;
10145 __pyx_t_10 = 0;
10146 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__10146; goto __pyx_L1_error;}
10147 __Pyx_GOTREF(__pyx_t_1);
10148 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
10149 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
10150 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
10151
10152 /* "rados.pyx":650
10153 * cdef object cb_info = <object>arg
10154 * cb_info[0](cb_info[1], line, who, sec, nsec, seq, level, msg)
10155 * return 0 # <<<<<<<<<<<<<<
10156 *
10157 * cdef int __monitor_callback2(void *arg, const char *line, const char *channel,
10158 */
10159 __pyx_r = 0;
10160 goto __pyx_L0;
10161
10162 /* "rados.pyx":645
10163 *
10164 *
10165 * cdef int __monitor_callback(void *arg, const char *line, const char *who, # <<<<<<<<<<<<<<
10166 * uint64_t sec, uint64_t nsec, uint64_t seq,
10167 * const char *level, const char *msg) with gil:
10168 */
10169
10170 /* function exit code */
10171 __pyx_L1_error:;
10172 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
10173 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
10174 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
10175 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
10176 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
10177 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
10178 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
10179 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
10180 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
10181 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
;
10182 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
;
10183 __Pyx_XDECREF(__pyx_t_13)do { if ((__pyx_t_13) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_13))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_13)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_13)))); } while (0); } while (0)
;
10184 __Pyx_WriteUnraisable("rados.__monitor_callback", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
10185 __pyx_r = 0;
10186 __pyx_L0:;
10187 __Pyx_XDECREF(__pyx_v_cb_info)do { if ((__pyx_v_cb_info) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_cb_info))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_cb_info)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_cb_info)))); } while
(0); } while (0)
;
10188 __Pyx_RefNannyFinishContext();
10189 #ifdef WITH_THREAD1
10190 PyGILState_Release(__pyx_gilstate_save);
10191 #endif
10192 return __pyx_r;
10193}
10194
10195/* "rados.pyx":652
10196 * return 0
10197 *
10198 * cdef int __monitor_callback2(void *arg, const char *line, const char *channel, # <<<<<<<<<<<<<<
10199 * const char *who,
10200 * const char *name,
10201 */
10202
10203static int __pyx_f_5rados___monitor_callback2(void *__pyx_v_arg, char const *__pyx_v_line, char const *__pyx_v_channel, char const *__pyx_v_who, char const *__pyx_v_name, uint64_t __pyx_v_sec, uint64_t __pyx_v_nsec, uint64_t __pyx_v_seq, char const *__pyx_v_level, char const *__pyx_v_msg) {
10204 PyObject *__pyx_v_cb_info = 0;
10205 int __pyx_r;
10206 __Pyx_RefNannyDeclarations
10207 PyObject *__pyx_t_1 = NULL((void*)0);
10208 PyObject *__pyx_t_2 = NULL((void*)0);
10209 PyObject *__pyx_t_3 = NULL((void*)0);
10210 PyObject *__pyx_t_4 = NULL((void*)0);
10211 PyObject *__pyx_t_5 = NULL((void*)0);
10212 PyObject *__pyx_t_6 = NULL((void*)0);
10213 PyObject *__pyx_t_7 = NULL((void*)0);
10214 PyObject *__pyx_t_8 = NULL((void*)0);
10215 PyObject *__pyx_t_9 = NULL((void*)0);
10216 PyObject *__pyx_t_10 = NULL((void*)0);
10217 PyObject *__pyx_t_11 = NULL((void*)0);
10218 PyObject *__pyx_t_12 = NULL((void*)0);
10219 PyObject *__pyx_t_13 = NULL((void*)0);
10220 Py_ssize_t __pyx_t_14;
10221 PyObject *__pyx_t_15 = NULL((void*)0);
10222 int __pyx_lineno = 0;
10223 const char *__pyx_filename = NULL((void*)0);
10224 int __pyx_clineno = 0;
10225 #ifdef WITH_THREAD1
10226 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
10227 #endif
10228 __Pyx_RefNannySetupContext("__monitor_callback2", 0);
10229
10230 /* "rados.pyx":657
10231 * uint64_t sec, uint64_t nsec, uint64_t seq,
10232 * const char *level, const char *msg) with gil:
10233 * cdef object cb_info = <object>arg # <<<<<<<<<<<<<<
10234 * cb_info[0](cb_info[1], line, channel, name, who, sec, nsec, seq, level, msg)
10235 * return 0
10236 */
10237 __pyx_t_1 = ((PyObject *)__pyx_v_arg);
10238 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
10239 __pyx_v_cb_info = __pyx_t_1;
10240 __pyx_t_1 = 0;
10241
10242 /* "rados.pyx":658
10243 * const char *level, const char *msg) with gil:
10244 * cdef object cb_info = <object>arg
10245 * cb_info[0](cb_info[1], line, channel, name, who, sec, nsec, seq, level, msg) # <<<<<<<<<<<<<<
10246 * return 0
10247 *
10248 */
10249 __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_cb_info, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1)(( (sizeof(long) < sizeof(Py_ssize_t)) || (sizeof(long) >
sizeof(Py_ssize_t) && __builtin_expect(!!(0 < (long
)((Py_ssize_t)(((size_t)-1)>>1)) || 0 == (long)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!1 || __builtin_expect
(!!(0 > (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
0 == (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(long) == sizeof(Py_ssize_t) && (1 || __builtin_expect
(!!(0 < (long)((Py_ssize_t)(((size_t)-1)>>1)) || 0 ==
(long)((Py_ssize_t)(((size_t)-1)>>1))), 1))) ) ? __Pyx_GetItemInt_Fast
(__pyx_v_cb_info, (Py_ssize_t)0, 0, 0, 1) : (0 ? (PyErr_SetString
(PyExc_IndexError, "list index out of range"), (PyObject*)((void
*)0)) : __Pyx_GetItemInt_Generic(__pyx_v_cb_info, __Pyx_PyInt_From_long
(0))))
; if (unlikely(__pyx_t_2 == NULL)__builtin_expect(!!(__pyx_t_2 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10249; goto __pyx_L1_error;};
10250 __Pyx_GOTREF(__pyx_t_2);
10251 __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_cb_info, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1)(( (sizeof(long) < sizeof(Py_ssize_t)) || (sizeof(long) >
sizeof(Py_ssize_t) && __builtin_expect(!!(1 < (long
)((Py_ssize_t)(((size_t)-1)>>1)) || 1 == (long)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!1 || __builtin_expect
(!!(1 > (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
1 == (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(long) == sizeof(Py_ssize_t) && (1 || __builtin_expect
(!!(1 < (long)((Py_ssize_t)(((size_t)-1)>>1)) || 1 ==
(long)((Py_ssize_t)(((size_t)-1)>>1))), 1))) ) ? __Pyx_GetItemInt_Fast
(__pyx_v_cb_info, (Py_ssize_t)1, 0, 0, 1) : (0 ? (PyErr_SetString
(PyExc_IndexError, "list index out of range"), (PyObject*)((void
*)0)) : __Pyx_GetItemInt_Generic(__pyx_v_cb_info, __Pyx_PyInt_From_long
(1))))
; if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10251; goto __pyx_L1_error;};
10252 __Pyx_GOTREF(__pyx_t_3);
10253 __pyx_t_4 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_line); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10253; goto __pyx_L1_error;}
10254 __Pyx_GOTREF(__pyx_t_4);
10255 __pyx_t_5 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_channel); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10255; goto __pyx_L1_error;}
10256 __Pyx_GOTREF(__pyx_t_5);
10257 __pyx_t_6 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_name); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10257; goto __pyx_L1_error;}
10258 __Pyx_GOTREF(__pyx_t_6);
10259 __pyx_t_7 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_who); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10259; goto __pyx_L1_error;}
10260 __Pyx_GOTREF(__pyx_t_7);
10261 __pyx_t_8 = __Pyx_PyInt_From_uint64_t(__pyx_v_sec); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10261; goto __pyx_L1_error;}
10262 __Pyx_GOTREF(__pyx_t_8);
10263 __pyx_t_9 = __Pyx_PyInt_From_uint64_t(__pyx_v_nsec); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10263; goto __pyx_L1_error;}
10264 __Pyx_GOTREF(__pyx_t_9);
10265 __pyx_t_10 = __Pyx_PyInt_From_uint64_t(__pyx_v_seq); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10265; goto __pyx_L1_error;}
10266 __Pyx_GOTREF(__pyx_t_10);
10267 __pyx_t_11 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_level); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10267; goto __pyx_L1_error;}
10268 __Pyx_GOTREF(__pyx_t_11);
10269 __pyx_t_12 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_msg); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10269; goto __pyx_L1_error;}
10270 __Pyx_GOTREF(__pyx_t_12);
10271 __pyx_t_13 = NULL((void*)0);
10272 __pyx_t_14 = 0;
10273 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
10274 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
10275 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
10276 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
10277 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
10278 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
10279 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
10280 __pyx_t_14 = 1;
10281 }
10282 }
10283 __pyx_t_15 = PyTuple_New(10+__pyx_t_14); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10283; goto __pyx_L1_error;}
10284 __Pyx_GOTREF(__pyx_t_15);
10285 if (__pyx_t_13) {
10286 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
10287 }
10288 __Pyx_GIVEREF(__pyx_t_3);
10289 PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_3)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+__pyx_t_14] = __pyx_t_3
)
;
10290 __Pyx_GIVEREF(__pyx_t_4);
10291 PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_4)(((PyTupleObject *)(__pyx_t_15))->ob_item[1+__pyx_t_14] = __pyx_t_4
)
;
10292 __Pyx_GIVEREF(__pyx_t_5);
10293 PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_5)(((PyTupleObject *)(__pyx_t_15))->ob_item[2+__pyx_t_14] = __pyx_t_5
)
;
10294 __Pyx_GIVEREF(__pyx_t_6);
10295 PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_t_6)(((PyTupleObject *)(__pyx_t_15))->ob_item[3+__pyx_t_14] = __pyx_t_6
)
;
10296 __Pyx_GIVEREF(__pyx_t_7);
10297 PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_14, __pyx_t_7)(((PyTupleObject *)(__pyx_t_15))->ob_item[4+__pyx_t_14] = __pyx_t_7
)
;
10298 __Pyx_GIVEREF(__pyx_t_8);
10299 PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_14, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[5+__pyx_t_14] = __pyx_t_8
)
;
10300 __Pyx_GIVEREF(__pyx_t_9);
10301 PyTuple_SET_ITEM(__pyx_t_15, 6+__pyx_t_14, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[6+__pyx_t_14] = __pyx_t_9
)
;
10302 __Pyx_GIVEREF(__pyx_t_10);
10303 PyTuple_SET_ITEM(__pyx_t_15, 7+__pyx_t_14, __pyx_t_10)(((PyTupleObject *)(__pyx_t_15))->ob_item[7+__pyx_t_14] = __pyx_t_10
)
;
10304 __Pyx_GIVEREF(__pyx_t_11);
10305 PyTuple_SET_ITEM(__pyx_t_15, 8+__pyx_t_14, __pyx_t_11)(((PyTupleObject *)(__pyx_t_15))->ob_item[8+__pyx_t_14] = __pyx_t_11
)
;
10306 __Pyx_GIVEREF(__pyx_t_12);
10307 PyTuple_SET_ITEM(__pyx_t_15, 9+__pyx_t_14, __pyx_t_12)(((PyTupleObject *)(__pyx_t_15))->ob_item[9+__pyx_t_14] = __pyx_t_12
)
;
10308 __pyx_t_3 = 0;
10309 __pyx_t_4 = 0;
10310 __pyx_t_5 = 0;
10311 __pyx_t_6 = 0;
10312 __pyx_t_7 = 0;
10313 __pyx_t_8 = 0;
10314 __pyx_t_9 = 0;
10315 __pyx_t_10 = 0;
10316 __pyx_t_11 = 0;
10317 __pyx_t_12 = 0;
10318 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__10318; goto __pyx_L1_error;}
10319 __Pyx_GOTREF(__pyx_t_1);
10320 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
10321 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
10322 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
10323
10324 /* "rados.pyx":659
10325 * cdef object cb_info = <object>arg
10326 * cb_info[0](cb_info[1], line, channel, name, who, sec, nsec, seq, level, msg)
10327 * return 0 # <<<<<<<<<<<<<<
10328 *
10329 *
10330 */
10331 __pyx_r = 0;
10332 goto __pyx_L0;
10333
10334 /* "rados.pyx":652
10335 * return 0
10336 *
10337 * cdef int __monitor_callback2(void *arg, const char *line, const char *channel, # <<<<<<<<<<<<<<
10338 * const char *who,
10339 * const char *name,
10340 */
10341
10342 /* function exit code */
10343 __pyx_L1_error:;
10344 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
10345 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
10346 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
10347 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
10348 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
10349 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
10350 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
10351 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
10352 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
10353 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
;
10354 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
;
10355 __Pyx_XDECREF(__pyx_t_12)do { if ((__pyx_t_12) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_12))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_12)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_12)))); } while (0); } while (0)
;
10356 __Pyx_XDECREF(__pyx_t_13)do { if ((__pyx_t_13) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_13))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_13)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_13)))); } while (0); } while (0)
;
10357 __Pyx_XDECREF(__pyx_t_15)do { if ((__pyx_t_15) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_15))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_15)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_15)))); } while (0); } while (0)
;
10358 __Pyx_WriteUnraisable("rados.__monitor_callback2", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
10359 __pyx_r = 0;
10360 __pyx_L0:;
10361 __Pyx_XDECREF(__pyx_v_cb_info)do { if ((__pyx_v_cb_info) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_cb_info))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_cb_info)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_cb_info)))); } while
(0); } while (0)
;
10362 __Pyx_RefNannyFinishContext();
10363 #ifdef WITH_THREAD1
10364 PyGILState_Release(__pyx_gilstate_save);
10365 #endif
10366 return __pyx_r;
10367}
10368
10369/* "rados.pyx":664
10370 * class Version(object):
10371 * """ Version information """
10372 * def __init__(self, major, minor, extra): # <<<<<<<<<<<<<<
10373 * self.major = major
10374 * self.minor = minor
10375 */
10376
10377/* Python wrapper */
10378static PyObject *__pyx_pw_5rados_7Version_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10379static char __pyx_doc_5rados_7Version___init__[] = "Version.__init__(self, major, minor, extra)";
10380static PyMethodDef __pyx_mdef_5rados_7Version_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_7Version_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_7Version___init__};
10381static PyObject *__pyx_pw_5rados_7Version_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10382 PyObject *__pyx_v_self = 0;
10383 PyObject *__pyx_v_major = 0;
10384 PyObject *__pyx_v_minor = 0;
10385 PyObject *__pyx_v_extra = 0;
10386 int __pyx_lineno = 0;
10387 const char *__pyx_filename = NULL((void*)0);
10388 int __pyx_clineno = 0;
10389 PyObject *__pyx_r = 0;
10390 __Pyx_RefNannyDeclarations
10391 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
10392 {
10393 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_major,&__pyx_n_s_minor,&__pyx_n_s_extra,0};
10394 PyObject* values[4] = {0,0,0,0};
10395 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
10396 Py_ssize_t kw_args;
10397 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
10398 switch (pos_args) {
10399 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
10400 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
10401 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
10402 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
10403 case 0: break;
10404 default: goto __pyx_L5_argtuple_error;
10405 }
10406 kw_args = PyDict_Size(__pyx_kwds);
10407 switch (pos_args) {
10408 case 0:
10409 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
10410 else goto __pyx_L5_argtuple_error;
10411 case 1:
10412 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_major)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_major
)) != 0), 1)
) kw_args--;
10413 else {
10414 __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__10414; goto __pyx_L3_error;}
10415 }
10416 case 2:
10417 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_minor)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_minor
)) != 0), 1)
) kw_args--;
10418 else {
10419 __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__10419; goto __pyx_L3_error;}
10420 }
10421 case 3:
10422 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_extra)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_extra
)) != 0), 1)
) kw_args--;
10423 else {
10424 __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__10424; goto __pyx_L3_error;}
10425 }
10426 }
10427 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
10428 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__10428; goto __pyx_L3_error;}
10429 }
10430 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 4) {
10431 goto __pyx_L5_argtuple_error;
10432 } else {
10433 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
10434 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
10435 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
10436 values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
10437 }
10438 __pyx_v_self = values[0];
10439 __pyx_v_major = values[1];
10440 __pyx_v_minor = values[2];
10441 __pyx_v_extra = values[3];
10442 }
10443 goto __pyx_L4_argument_unpacking_done;
10444 __pyx_L5_argtuple_error:;
10445 __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__10445; goto __pyx_L3_error;}
10446 __pyx_L3_error:;
10447 __Pyx_AddTraceback("rados.Version.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10448 __Pyx_RefNannyFinishContext();
10449 return NULL((void*)0);
10450 __pyx_L4_argument_unpacking_done:;
10451 __pyx_r = __pyx_pf_5rados_7Version___init__(__pyx_self, __pyx_v_self, __pyx_v_major, __pyx_v_minor, __pyx_v_extra);
10452
10453 /* function exit code */
10454 __Pyx_RefNannyFinishContext();
10455 return __pyx_r;
10456}
10457
10458static PyObject *__pyx_pf_5rados_7Version___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_major, PyObject *__pyx_v_minor, PyObject *__pyx_v_extra) {
10459 PyObject *__pyx_r = NULL((void*)0);
10460 __Pyx_RefNannyDeclarations
10461 int __pyx_lineno = 0;
10462 const char *__pyx_filename = NULL((void*)0);
10463 int __pyx_clineno = 0;
10464 __Pyx_RefNannySetupContext("__init__", 0);
10465
10466 /* "rados.pyx":665
10467 * """ Version information """
10468 * def __init__(self, major, minor, extra):
10469 * self.major = major # <<<<<<<<<<<<<<
10470 * self.minor = minor
10471 * self.extra = extra
10472 */
10473 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_major, __pyx_v_major) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__10473; goto __pyx_L1_error;}
10474
10475 /* "rados.pyx":666
10476 * def __init__(self, major, minor, extra):
10477 * self.major = major
10478 * self.minor = minor # <<<<<<<<<<<<<<
10479 * self.extra = extra
10480 *
10481 */
10482 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_minor, __pyx_v_minor) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__10482; goto __pyx_L1_error;}
10483
10484 /* "rados.pyx":667
10485 * self.major = major
10486 * self.minor = minor
10487 * self.extra = extra # <<<<<<<<<<<<<<
10488 *
10489 * def __str__(self):
10490 */
10491 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_extra, __pyx_v_extra) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__10491; goto __pyx_L1_error;}
10492
10493 /* "rados.pyx":664
10494 * class Version(object):
10495 * """ Version information """
10496 * def __init__(self, major, minor, extra): # <<<<<<<<<<<<<<
10497 * self.major = major
10498 * self.minor = minor
10499 */
10500
10501 /* function exit code */
10502 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
10503 goto __pyx_L0;
10504 __pyx_L1_error:;
10505 __Pyx_AddTraceback("rados.Version.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10506 __pyx_r = NULL((void*)0);
10507 __pyx_L0:;
10508 __Pyx_XGIVEREF(__pyx_r);
10509 __Pyx_RefNannyFinishContext();
10510 return __pyx_r;
10511}
10512
10513/* "rados.pyx":669
10514 * self.extra = extra
10515 *
10516 * def __str__(self): # <<<<<<<<<<<<<<
10517 * return "%d.%d.%d" % (self.major, self.minor, self.extra)
10518 *
10519 */
10520
10521/* Python wrapper */
10522static PyObject *__pyx_pw_5rados_7Version_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
10523static char __pyx_doc_5rados_7Version_2__str__[] = "Version.__str__(self)";
10524static PyMethodDef __pyx_mdef_5rados_7Version_3__str__ = {"__str__", (PyCFunction)__pyx_pw_5rados_7Version_3__str__, METH_O0x0008, __pyx_doc_5rados_7Version_2__str__};
10525static PyObject *__pyx_pw_5rados_7Version_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
10526 PyObject *__pyx_r = 0;
10527 __Pyx_RefNannyDeclarations
10528 __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
10529 __pyx_r = __pyx_pf_5rados_7Version_2__str__(__pyx_self, ((PyObject *)__pyx_v_self));
10530
10531 /* function exit code */
10532 __Pyx_RefNannyFinishContext();
10533 return __pyx_r;
10534}
10535
10536static PyObject *__pyx_pf_5rados_7Version_2__str__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
10537 PyObject *__pyx_r = NULL((void*)0);
10538 __Pyx_RefNannyDeclarations
10539 PyObject *__pyx_t_1 = NULL((void*)0);
10540 PyObject *__pyx_t_2 = NULL((void*)0);
10541 PyObject *__pyx_t_3 = NULL((void*)0);
10542 PyObject *__pyx_t_4 = NULL((void*)0);
10543 int __pyx_lineno = 0;
10544 const char *__pyx_filename = NULL((void*)0);
10545 int __pyx_clineno = 0;
10546 __Pyx_RefNannySetupContext("__str__", 0);
10547
10548 /* "rados.pyx":670
10549 *
10550 * def __str__(self):
10551 * return "%d.%d.%d" % (self.major, self.minor, self.extra) # <<<<<<<<<<<<<<
10552 *
10553 *
10554 */
10555 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
10556 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_major); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__10556; goto __pyx_L1_error;}
10557 __Pyx_GOTREF(__pyx_t_1);
10558 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_minor); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__10558; goto __pyx_L1_error;}
10559 __Pyx_GOTREF(__pyx_t_2);
10560 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_extra); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__10560; goto __pyx_L1_error;}
10561 __Pyx_GOTREF(__pyx_t_3);
10562 __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__10562; goto __pyx_L1_error;}
10563 __Pyx_GOTREF(__pyx_t_4);
10564 __Pyx_GIVEREF(__pyx_t_1);
10565 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_1);
10566 __Pyx_GIVEREF(__pyx_t_2);
10567 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_4))->ob_item[1] = __pyx_t_2);
10568 __Pyx_GIVEREF(__pyx_t_3);
10569 PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)(((PyTupleObject *)(__pyx_t_4))->ob_item[2] = __pyx_t_3);
10570 __pyx_t_1 = 0;
10571 __pyx_t_2 = 0;
10572 __pyx_t_3 = 0;
10573 __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_d_d_d, __pyx_t_4)PyString_Format(__pyx_kp_s_d_d_d, __pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__10573; goto __pyx_L1_error;}
10574 __Pyx_GOTREF(__pyx_t_3);
10575 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
10576 __pyx_r = __pyx_t_3;
10577 __pyx_t_3 = 0;
10578 goto __pyx_L0;
10579
10580 /* "rados.pyx":669
10581 * self.extra = extra
10582 *
10583 * def __str__(self): # <<<<<<<<<<<<<<
10584 * return "%d.%d.%d" % (self.major, self.minor, self.extra)
10585 *
10586 */
10587
10588 /* function exit code */
10589 __pyx_L1_error:;
10590 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
10591 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
10592 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
10593 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
10594 __Pyx_AddTraceback("rados.Version.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10595 __pyx_r = NULL((void*)0);
10596 __pyx_L0:;
10597 __Pyx_XGIVEREF(__pyx_r);
10598 __Pyx_RefNannyFinishContext();
10599 return __pyx_r;
10600}
10601
10602/* "rados.pyx":677
10603 * # NOTE(sileht): attributes declared in .pyd
10604 *
10605 * def __init__(self, *args, **kwargs): # <<<<<<<<<<<<<<
10606 * PyEval_InitThreads()
10607 * self.__setup(*args, **kwargs)
10608 */
10609
10610/* Python wrapper */
10611static int __pyx_pw_5rados_5Rados_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10612static int __pyx_pw_5rados_5Rados_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10613 PyObject *__pyx_v_args = 0;
10614 PyObject *__pyx_v_kwargs = 0;
10615 int __pyx_r;
10616 __Pyx_RefNannyDeclarations
10617 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
10618 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 1))__builtin_expect(!!(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__"
, 1)), 0)
) return -1;
10619 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
10620 __pyx_v_kwargs = PyDict_Copy(__pyx_kwds); if (unlikely(!__pyx_v_kwargs)__builtin_expect(!!(!__pyx_v_kwargs), 0)) return -1;
10621 __Pyx_GOTREF(__pyx_v_kwargs);
10622 } else {
10623 __pyx_v_kwargs = NULL((void*)0);
10624 }
10625 __Pyx_INCREF(__pyx_args)( ((PyObject*)(__pyx_args))->ob_refcnt++);
10626 __pyx_v_args = __pyx_args;
10627 __pyx_r = __pyx_pf_5rados_5Rados___init__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_args, __pyx_v_kwargs);
10628
10629 /* function exit code */
10630 __Pyx_XDECREF(__pyx_v_args)do { if ((__pyx_v_args) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_args))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_args)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_args)))); } while (0); } while
(0)
;
10631 __Pyx_XDECREF(__pyx_v_kwargs)do { if ((__pyx_v_kwargs) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_kwargs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs)))); } while
(0); } while (0)
;
10632 __Pyx_RefNannyFinishContext();
10633 return __pyx_r;
10634}
10635
10636static int __pyx_pf_5rados_5Rados___init__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
10637 int __pyx_r;
10638 __Pyx_RefNannyDeclarations
10639 PyObject *__pyx_t_1 = NULL((void*)0);
10640 PyObject *__pyx_t_2 = NULL((void*)0);
10641 int __pyx_lineno = 0;
10642 const char *__pyx_filename = NULL((void*)0);
10643 int __pyx_clineno = 0;
10644 __Pyx_RefNannySetupContext("__init__", 0);
10645
10646 /* "rados.pyx":678
10647 *
10648 * def __init__(self, *args, **kwargs):
10649 * PyEval_InitThreads() # <<<<<<<<<<<<<<
10650 * self.__setup(*args, **kwargs)
10651 *
10652 */
10653 PyEval_InitThreads();
10654
10655 /* "rados.pyx":679
10656 * def __init__(self, *args, **kwargs):
10657 * PyEval_InitThreads()
10658 * self.__setup(*args, **kwargs) # <<<<<<<<<<<<<<
10659 *
10660 * @requires(('rados_id', opt(str_type)), ('name', opt(str_type)), ('clustername', opt(str_type)),
10661 */
10662 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setup); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__10662; goto __pyx_L1_error;}
10663 __Pyx_GOTREF(__pyx_t_1);
10664 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_v_kwargs); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__10664; goto __pyx_L1_error;}
10665 __Pyx_GOTREF(__pyx_t_2);
10666 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
10667 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
10668
10669 /* "rados.pyx":677
10670 * # NOTE(sileht): attributes declared in .pyd
10671 *
10672 * def __init__(self, *args, **kwargs): # <<<<<<<<<<<<<<
10673 * PyEval_InitThreads()
10674 * self.__setup(*args, **kwargs)
10675 */
10676
10677 /* function exit code */
10678 __pyx_r = 0;
10679 goto __pyx_L0;
10680 __pyx_L1_error:;
10681 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
10682 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
10683 __Pyx_AddTraceback("rados.Rados.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10684 __pyx_r = -1;
10685 __pyx_L0:;
10686 __Pyx_RefNannyFinishContext();
10687 return __pyx_r;
10688}
10689
10690/* "rados.pyx":683
10691 * @requires(('rados_id', opt(str_type)), ('name', opt(str_type)), ('clustername', opt(str_type)),
10692 * ('conffile', opt(str_type)))
10693 * def __setup(self, rados_id=None, name=None, clustername=None, # <<<<<<<<<<<<<<
10694 * conf_defaults=None, conffile=None, conf=None, flags=0,
10695 * context=None):
10696 */
10697
10698/* Python wrapper */
10699static PyObject *__pyx_pw_5rados_5Rados_3__setup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
10700static char __pyx_doc_5rados_5Rados_2__setup[] = "Rados.__setup(self, rados_id=None, name=None, clustername=None, conf_defaults=None, conffile=None, conf=None, flags=0, context=None)";
10701static PyObject *__pyx_pw_5rados_5Rados_3__setup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
10702 PyObject *__pyx_v_rados_id = 0;
10703 PyObject *__pyx_v_name = 0;
10704 PyObject *__pyx_v_clustername = 0;
10705 PyObject *__pyx_v_conf_defaults = 0;
10706 PyObject *__pyx_v_conffile = 0;
10707 PyObject *__pyx_v_conf = 0;
10708 PyObject *__pyx_v_flags = 0;
10709 PyObject *__pyx_v_context = 0;
10710 int __pyx_lineno = 0;
10711 const char *__pyx_filename = NULL((void*)0);
10712 int __pyx_clineno = 0;
10713 PyObject *__pyx_r = 0;
10714 __Pyx_RefNannyDeclarations
10715 __Pyx_RefNannySetupContext("__setup (wrapper)", 0);
10716 {
10717 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rados_id,&__pyx_n_s_name_2,&__pyx_n_s_clustername,&__pyx_n_s_conf_defaults,&__pyx_n_s_conffile,&__pyx_n_s_conf,&__pyx_n_s_flags,&__pyx_n_s_context,0};
10718 PyObject* values[8] = {0,0,0,0,0,0,0,0};
10719 values[0] = ((PyObject *)Py_None(&_Py_NoneStruct));
10720 values[1] = ((PyObject *)Py_None(&_Py_NoneStruct));
10721 values[2] = ((PyObject *)Py_None(&_Py_NoneStruct));
10722
10723 /* "rados.pyx":684
10724 * ('conffile', opt(str_type)))
10725 * def __setup(self, rados_id=None, name=None, clustername=None,
10726 * conf_defaults=None, conffile=None, conf=None, flags=0, # <<<<<<<<<<<<<<
10727 * context=None):
10728 * self.monitor_callback = None
10729 */
10730 values[3] = ((PyObject *)Py_None(&_Py_NoneStruct));
10731 values[4] = ((PyObject *)Py_None(&_Py_NoneStruct));
10732 values[5] = ((PyObject *)Py_None(&_Py_NoneStruct));
10733 values[6] = ((PyObject *)__pyx_int_0);
10734
10735 /* "rados.pyx":685
10736 * def __setup(self, rados_id=None, name=None, clustername=None,
10737 * conf_defaults=None, conffile=None, conf=None, flags=0,
10738 * context=None): # <<<<<<<<<<<<<<
10739 * self.monitor_callback = None
10740 * self.monitor_callback2 = None
10741 */
10742 values[7] = ((PyObject *)Py_None(&_Py_NoneStruct));
10743 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
10744 Py_ssize_t kw_args;
10745 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
10746 switch (pos_args) {
10747 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7)(((PyTupleObject *)(__pyx_args))->ob_item[7]);
10748 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6)(((PyTupleObject *)(__pyx_args))->ob_item[6]);
10749 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
10750 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
10751 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
10752 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
10753 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
10754 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
10755 case 0: break;
10756 default: goto __pyx_L5_argtuple_error;
10757 }
10758 kw_args = PyDict_Size(__pyx_kwds);
10759 switch (pos_args) {
10760 case 0:
10761 if (kw_args > 0) {
10762 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_rados_id);
10763 if (value) { values[0] = value; kw_args--; }
10764 }
10765 case 1:
10766 if (kw_args > 0) {
10767 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2);
10768 if (value) { values[1] = value; kw_args--; }
10769 }
10770 case 2:
10771 if (kw_args > 0) {
10772 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_clustername);
10773 if (value) { values[2] = value; kw_args--; }
10774 }
10775 case 3:
10776 if (kw_args > 0) {
10777 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_conf_defaults);
10778 if (value) { values[3] = value; kw_args--; }
10779 }
10780 case 4:
10781 if (kw_args > 0) {
10782 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_conffile);
10783 if (value) { values[4] = value; kw_args--; }
10784 }
10785 case 5:
10786 if (kw_args > 0) {
10787 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_conf);
10788 if (value) { values[5] = value; kw_args--; }
10789 }
10790 case 6:
10791 if (kw_args > 0) {
10792 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags);
10793 if (value) { values[6] = value; kw_args--; }
10794 }
10795 case 7:
10796 if (kw_args > 0) {
10797 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_context);
10798 if (value) { values[7] = value; kw_args--; }
10799 }
10800 }
10801 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
10802 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__setup") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__setup") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__10802; goto __pyx_L3_error;}
10803 }
10804 } else {
10805 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
10806 case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7)(((PyTupleObject *)(__pyx_args))->ob_item[7]);
10807 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6)(((PyTupleObject *)(__pyx_args))->ob_item[6]);
10808 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
10809 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
10810 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
10811 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
10812 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
10813 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
10814 case 0: break;
10815 default: goto __pyx_L5_argtuple_error;
10816 }
10817 }
10818 __pyx_v_rados_id = values[0];
10819 __pyx_v_name = values[1];
10820 __pyx_v_clustername = values[2];
10821 __pyx_v_conf_defaults = values[3];
10822 __pyx_v_conffile = values[4];
10823 __pyx_v_conf = values[5];
10824 __pyx_v_flags = values[6];
10825 __pyx_v_context = values[7];
10826 }
10827 goto __pyx_L4_argument_unpacking_done;
10828 __pyx_L5_argtuple_error:;
10829 __Pyx_RaiseArgtupleInvalid("__setup", 0, 0, 8, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__10829; goto __pyx_L3_error;}
10830 __pyx_L3_error:;
10831 __Pyx_AddTraceback("rados.Rados.__setup", __pyx_clineno, __pyx_lineno, __pyx_filename);
10832 __Pyx_RefNannyFinishContext();
10833 return NULL((void*)0);
10834 __pyx_L4_argument_unpacking_done:;
10835 __pyx_r = __pyx_pf_5rados_5Rados_2__setup(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_rados_id, __pyx_v_name, __pyx_v_clustername, __pyx_v_conf_defaults, __pyx_v_conffile, __pyx_v_conf, __pyx_v_flags, __pyx_v_context);
10836
10837 /* "rados.pyx":683
10838 * @requires(('rados_id', opt(str_type)), ('name', opt(str_type)), ('clustername', opt(str_type)),
10839 * ('conffile', opt(str_type)))
10840 * def __setup(self, rados_id=None, name=None, clustername=None, # <<<<<<<<<<<<<<
10841 * conf_defaults=None, conffile=None, conf=None, flags=0,
10842 * context=None):
10843 */
10844
10845 /* function exit code */
10846 __Pyx_RefNannyFinishContext();
10847 return __pyx_r;
10848}
10849
10850static PyObject *__pyx_pf_5rados_5Rados_2__setup(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_rados_id, PyObject *__pyx_v_name, PyObject *__pyx_v_clustername, PyObject *__pyx_v_conf_defaults, PyObject *__pyx_v_conffile, PyObject *__pyx_v_conf, PyObject *__pyx_v_flags, PyObject *__pyx_v_context) {
10851 char *__pyx_v__name;
10852 char *__pyx_v__clustername;
10853 int __pyx_v__flags;
10854 int __pyx_v_ret;
10855 rados_config_t __pyx_v_rados_config;
10856 PyObject *__pyx_v_key = NULL((void*)0);
10857 PyObject *__pyx_v_value = NULL((void*)0);
10858 PyObject *__pyx_r = NULL((void*)0);
10859 __Pyx_RefNannyDeclarations
10860 PyObject *__pyx_t_1 = NULL((void*)0);
10861 int __pyx_t_2;
10862 int __pyx_t_3;
10863 PyObject *__pyx_t_4 = NULL((void*)0);
10864 PyObject *__pyx_t_5 = NULL((void*)0);
10865 Py_ssize_t __pyx_t_6;
10866 PyObject *__pyx_t_7 = NULL((void*)0);
10867 char *__pyx_t_8;
10868 int __pyx_t_9;
10869 void *__pyx_t_10;
10870 PyObject *__pyx_t_11 = NULL((void*)0);
10871 PyObject *(*__pyx_t_12)(PyObject *);
10872 PyObject *(*__pyx_t_13)(PyObject *);
10873 Py_ssize_t __pyx_t_14;
10874 int __pyx_lineno = 0;
10875 const char *__pyx_filename = NULL((void*)0);
10876 int __pyx_clineno = 0;
10877 __Pyx_RefNannySetupContext("__setup", 0);
10878 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
10879 __Pyx_INCREF(__pyx_v_clustername)( ((PyObject*)(__pyx_v_clustername))->ob_refcnt++);
10880 __Pyx_INCREF(__pyx_v_conffile)( ((PyObject*)(__pyx_v_conffile))->ob_refcnt++);
10881
10882 /* "rados.pyx":686
10883 * conf_defaults=None, conffile=None, conf=None, flags=0,
10884 * context=None):
10885 * self.monitor_callback = None # <<<<<<<<<<<<<<
10886 * self.monitor_callback2 = None
10887 * self.parsed_args = []
10888 */
10889 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
10890 __Pyx_GIVEREF(Py_None);
10891 __Pyx_GOTREF(__pyx_v_self->monitor_callback);
10892 __Pyx_DECREF(__pyx_v_self->monitor_callback)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback)))); } while
(0)
;
10893 __pyx_v_self->monitor_callback = Py_None(&_Py_NoneStruct);
10894
10895 /* "rados.pyx":687
10896 * context=None):
10897 * self.monitor_callback = None
10898 * self.monitor_callback2 = None # <<<<<<<<<<<<<<
10899 * self.parsed_args = []
10900 * self.conf_defaults = conf_defaults
10901 */
10902 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
10903 __Pyx_GIVEREF(Py_None);
10904 __Pyx_GOTREF(__pyx_v_self->monitor_callback2);
10905 __Pyx_DECREF(__pyx_v_self->monitor_callback2)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback2))
->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback2)))); } while
(0)
;
10906 __pyx_v_self->monitor_callback2 = Py_None(&_Py_NoneStruct);
10907
10908 /* "rados.pyx":688
10909 * self.monitor_callback = None
10910 * self.monitor_callback2 = None
10911 * self.parsed_args = [] # <<<<<<<<<<<<<<
10912 * self.conf_defaults = conf_defaults
10913 * self.conffile = conffile
10914 */
10915 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__10915; goto __pyx_L1_error;}
10916 __Pyx_GOTREF(__pyx_t_1);
10917 __Pyx_GIVEREF(__pyx_t_1);
10918 __Pyx_GOTREF(__pyx_v_self->parsed_args);
10919 __Pyx_DECREF(__pyx_v_self->parsed_args)do { if ( --((PyObject*)(__pyx_v_self->parsed_args))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
parsed_args)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->parsed_args)))); } while (0)
;
10920 __pyx_v_self->parsed_args = __pyx_t_1;
10921 __pyx_t_1 = 0;
10922
10923 /* "rados.pyx":689
10924 * self.monitor_callback2 = None
10925 * self.parsed_args = []
10926 * self.conf_defaults = conf_defaults # <<<<<<<<<<<<<<
10927 * self.conffile = conffile
10928 * self.rados_id = rados_id
10929 */
10930 __Pyx_INCREF(__pyx_v_conf_defaults)( ((PyObject*)(__pyx_v_conf_defaults))->ob_refcnt++);
10931 __Pyx_GIVEREF(__pyx_v_conf_defaults);
10932 __Pyx_GOTREF(__pyx_v_self->conf_defaults);
10933 __Pyx_DECREF(__pyx_v_self->conf_defaults)do { if ( --((PyObject*)(__pyx_v_self->conf_defaults))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->conf_defaults)))->ob_type)->tp_dealloc)((PyObject *
)((PyObject *)(__pyx_v_self->conf_defaults)))); } while (0
)
;
10934 __pyx_v_self->conf_defaults = __pyx_v_conf_defaults;
10935
10936 /* "rados.pyx":690
10937 * self.parsed_args = []
10938 * self.conf_defaults = conf_defaults
10939 * self.conffile = conffile # <<<<<<<<<<<<<<
10940 * self.rados_id = rados_id
10941 *
10942 */
10943 __Pyx_INCREF(__pyx_v_conffile)( ((PyObject*)(__pyx_v_conffile))->ob_refcnt++);
10944 __Pyx_GIVEREF(__pyx_v_conffile);
10945 __Pyx_GOTREF(__pyx_v_self->conffile);
10946 __Pyx_DECREF(__pyx_v_self->conffile)do { if ( --((PyObject*)(__pyx_v_self->conffile))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
conffile)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->conffile)))); } while (0)
;
10947 __pyx_v_self->conffile = __pyx_v_conffile;
10948
10949 /* "rados.pyx":691
10950 * self.conf_defaults = conf_defaults
10951 * self.conffile = conffile
10952 * self.rados_id = rados_id # <<<<<<<<<<<<<<
10953 *
10954 * if rados_id and name:
10955 */
10956 __Pyx_INCREF(__pyx_v_rados_id)( ((PyObject*)(__pyx_v_rados_id))->ob_refcnt++);
10957 __Pyx_GIVEREF(__pyx_v_rados_id);
10958 __Pyx_GOTREF(__pyx_v_self->rados_id);
10959 __Pyx_DECREF(__pyx_v_self->rados_id)do { if ( --((PyObject*)(__pyx_v_self->rados_id))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
rados_id)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->rados_id)))); } while (0)
;
10960 __pyx_v_self->rados_id = __pyx_v_rados_id;
10961
10962 /* "rados.pyx":693
10963 * self.rados_id = rados_id
10964 *
10965 * if rados_id and name: # <<<<<<<<<<<<<<
10966 * raise Error("Rados(): can't supply both rados_id and name")
10967 * elif rados_id:
10968 */
10969 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_rados_id); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__10969; goto __pyx_L1_error;}
10970 if (__pyx_t_3) {
10971 } else {
10972 __pyx_t_2 = __pyx_t_3;
10973 goto __pyx_L4_bool_binop_done;
10974 }
10975 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__10975; goto __pyx_L1_error;}
10976 __pyx_t_2 = __pyx_t_3;
10977 __pyx_L4_bool_binop_done:;
10978 if (__pyx_t_2) {
10979
10980 /* "rados.pyx":694
10981 *
10982 * if rados_id and name:
10983 * raise Error("Rados(): can't supply both rados_id and name") # <<<<<<<<<<<<<<
10984 * elif rados_id:
10985 * name = 'client.' + rados_id
10986 */
10987 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__10987; goto __pyx_L1_error;}
10988 __Pyx_GOTREF(__pyx_t_1);
10989 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__14, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__10989; goto __pyx_L1_error;}
10990 __Pyx_GOTREF(__pyx_t_4);
10991 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
10992 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
10993 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
10994 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__10994; goto __pyx_L1_error;}
10995
10996 /* "rados.pyx":693
10997 * self.rados_id = rados_id
10998 *
10999 * if rados_id and name: # <<<<<<<<<<<<<<
11000 * raise Error("Rados(): can't supply both rados_id and name")
11001 * elif rados_id:
11002 */
11003 }
11004
11005 /* "rados.pyx":695
11006 * if rados_id and name:
11007 * raise Error("Rados(): can't supply both rados_id and name")
11008 * elif rados_id: # <<<<<<<<<<<<<<
11009 * name = 'client.' + rados_id
11010 * elif name is None:
11011 */
11012 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_rados_id); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__11012; goto __pyx_L1_error;}
11013 if (__pyx_t_2) {
11014
11015 /* "rados.pyx":696
11016 * raise Error("Rados(): can't supply both rados_id and name")
11017 * elif rados_id:
11018 * name = 'client.' + rados_id # <<<<<<<<<<<<<<
11019 * elif name is None:
11020 * name = 'client.admin'
11021 */
11022 __pyx_t_4 = PyNumber_Add(__pyx_kp_s_client, __pyx_v_rados_id); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__11022; goto __pyx_L1_error;}
11023 __Pyx_GOTREF(__pyx_t_4);
11024 __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_v_name; __pyx_v_name =
__pyx_t_4; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
11025 __pyx_t_4 = 0;
11026
11027 /* "rados.pyx":695
11028 * if rados_id and name:
11029 * raise Error("Rados(): can't supply both rados_id and name")
11030 * elif rados_id: # <<<<<<<<<<<<<<
11031 * name = 'client.' + rados_id
11032 * elif name is None:
11033 */
11034 goto __pyx_L3;
11035 }
11036
11037 /* "rados.pyx":697
11038 * elif rados_id:
11039 * name = 'client.' + rados_id
11040 * elif name is None: # <<<<<<<<<<<<<<
11041 * name = 'client.admin'
11042 * if clustername is None:
11043 */
11044 __pyx_t_2 = (__pyx_v_name == Py_None(&_Py_NoneStruct));
11045 __pyx_t_3 = (__pyx_t_2 != 0);
11046 if (__pyx_t_3) {
11047
11048 /* "rados.pyx":698
11049 * name = 'client.' + rados_id
11050 * elif name is None:
11051 * name = 'client.admin' # <<<<<<<<<<<<<<
11052 * if clustername is None:
11053 * clustername = ''
11054 */
11055 __Pyx_INCREF(__pyx_kp_s_client_admin)( ((PyObject*)(__pyx_kp_s_client_admin))->ob_refcnt++);
11056 __Pyx_DECREF_SET(__pyx_v_name, __pyx_kp_s_client_admin)do { PyObject *tmp = (PyObject *) __pyx_v_name; __pyx_v_name =
__pyx_kp_s_client_admin; do { if ( --((PyObject*)(tmp))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); }
while (0); } while (0)
;
11057
11058 /* "rados.pyx":697
11059 * elif rados_id:
11060 * name = 'client.' + rados_id
11061 * elif name is None: # <<<<<<<<<<<<<<
11062 * name = 'client.admin'
11063 * if clustername is None:
11064 */
11065 }
11066 __pyx_L3:;
11067
11068 /* "rados.pyx":699
11069 * elif name is None:
11070 * name = 'client.admin'
11071 * if clustername is None: # <<<<<<<<<<<<<<
11072 * clustername = ''
11073 *
11074 */
11075 __pyx_t_3 = (__pyx_v_clustername == Py_None(&_Py_NoneStruct));
11076 __pyx_t_2 = (__pyx_t_3 != 0);
11077 if (__pyx_t_2) {
11078
11079 /* "rados.pyx":700
11080 * name = 'client.admin'
11081 * if clustername is None:
11082 * clustername = '' # <<<<<<<<<<<<<<
11083 *
11084 * name = cstr(name, 'name')
11085 */
11086 __Pyx_INCREF(__pyx_kp_s__10)( ((PyObject*)(__pyx_kp_s__10))->ob_refcnt++);
11087 __Pyx_DECREF_SET(__pyx_v_clustername, __pyx_kp_s__10)do { PyObject *tmp = (PyObject *) __pyx_v_clustername; __pyx_v_clustername
= __pyx_kp_s__10; do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
11088
11089 /* "rados.pyx":699
11090 * elif name is None:
11091 * name = 'client.admin'
11092 * if clustername is None: # <<<<<<<<<<<<<<
11093 * clustername = ''
11094 *
11095 */
11096 }
11097
11098 /* "rados.pyx":702
11099 * clustername = ''
11100 *
11101 * name = cstr(name, 'name') # <<<<<<<<<<<<<<
11102 * clustername = cstr(clustername, 'clustername')
11103 * cdef:
11104 */
11105 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__11105; goto __pyx_L1_error;}
11106 __Pyx_GOTREF(__pyx_t_1);
11107 __pyx_t_5 = NULL((void*)0);
11108 __pyx_t_6 = 0;
11109 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
11110 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
11111 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
11112 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
11113 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
11114 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11115 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11116 __pyx_t_6 = 1;
11117 }
11118 }
11119 __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__11119; goto __pyx_L1_error;}
11120 __Pyx_GOTREF(__pyx_t_7);
11121 if (__pyx_t_5) {
11122 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
11123 }
11124 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
11125 __Pyx_GIVEREF(__pyx_v_name);
11126 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_name)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_v_name
)
;
11127 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
11128 __Pyx_GIVEREF(__pyx_n_s_name_2);
11129 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_n_s_name_2
)
;
11130 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__11130; goto __pyx_L1_error;}
11131 __Pyx_GOTREF(__pyx_t_4);
11132 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
11133 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11134 __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_v_name; __pyx_v_name =
__pyx_t_4; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
11135 __pyx_t_4 = 0;
11136
11137 /* "rados.pyx":703
11138 *
11139 * name = cstr(name, 'name')
11140 * clustername = cstr(clustername, 'clustername') # <<<<<<<<<<<<<<
11141 * cdef:
11142 * char *_name = name
11143 */
11144 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__11144; goto __pyx_L1_error;}
11145 __Pyx_GOTREF(__pyx_t_1);
11146 __pyx_t_7 = NULL((void*)0);
11147 __pyx_t_6 = 0;
11148 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
11149 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
11150 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
11151 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
11152 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
11153 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11154 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11155 __pyx_t_6 = 1;
11156 }
11157 }
11158 __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__11158; goto __pyx_L1_error;}
11159 __Pyx_GOTREF(__pyx_t_5);
11160 if (__pyx_t_7) {
11161 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
11162 }
11163 __Pyx_INCREF(__pyx_v_clustername)( ((PyObject*)(__pyx_v_clustername))->ob_refcnt++);
11164 __Pyx_GIVEREF(__pyx_v_clustername);
11165 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_clustername)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_6] = __pyx_v_clustername
)
;
11166 __Pyx_INCREF(__pyx_n_s_clustername)( ((PyObject*)(__pyx_n_s_clustername))->ob_refcnt++);
11167 __Pyx_GIVEREF(__pyx_n_s_clustername);
11168 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_n_s_clustername)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_6] = __pyx_n_s_clustername
)
;
11169 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__11169; goto __pyx_L1_error;}
11170 __Pyx_GOTREF(__pyx_t_4);
11171 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11172 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11173 __Pyx_DECREF_SET(__pyx_v_clustername, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_v_clustername; __pyx_v_clustername
= __pyx_t_4; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
11174 __pyx_t_4 = 0;
11175
11176 /* "rados.pyx":705
11177 * clustername = cstr(clustername, 'clustername')
11178 * cdef:
11179 * char *_name = name # <<<<<<<<<<<<<<
11180 * char *_clustername = clustername
11181 * int _flags = flags
11182 */
11183 __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_8) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_8) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__11183; goto __pyx_L1_error;}
11184 __pyx_v__name = __pyx_t_8;
11185
11186 /* "rados.pyx":706
11187 * cdef:
11188 * char *_name = name
11189 * char *_clustername = clustername # <<<<<<<<<<<<<<
11190 * int _flags = flags
11191 * int ret
11192 */
11193 __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_clustername); if (unlikely((!__pyx_t_8) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_8) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__11193; goto __pyx_L1_error;}
11194 __pyx_v__clustername = __pyx_t_8;
11195
11196 /* "rados.pyx":707
11197 * char *_name = name
11198 * char *_clustername = clustername
11199 * int _flags = flags # <<<<<<<<<<<<<<
11200 * int ret
11201 *
11202 */
11203 __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_9 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__11203; goto __pyx_L1_error;}
11204 __pyx_v__flags = __pyx_t_9;
11205
11206 /* "rados.pyx":710
11207 * int ret
11208 *
11209 * if context: # <<<<<<<<<<<<<<
11210 * # Unpack void* (aka rados_config_t) from capsule
11211 * rados_config = <rados_config_t> PyCapsule_GetPointer(context, NULL)
11212 */
11213 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_context); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__11213; goto __pyx_L1_error;}
11214 if (__pyx_t_2) {
11215
11216 /* "rados.pyx":712
11217 * if context:
11218 * # Unpack void* (aka rados_config_t) from capsule
11219 * rados_config = <rados_config_t> PyCapsule_GetPointer(context, NULL) # <<<<<<<<<<<<<<
11220 * with nogil:
11221 * ret = rados_create_with_context(&self.cluster, rados_config)
11222 */
11223 __pyx_t_10 = PyCapsule_GetPointer(__pyx_v_context, NULL((void*)0)); if (unlikely(__pyx_t_10 == NULL && PyErr_Occurred())__builtin_expect(!!(__pyx_t_10 == ((void*)0) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__11223; goto __pyx_L1_error;}
11224 __pyx_v_rados_config = ((rados_config_t)__pyx_t_10);
11225
11226 /* "rados.pyx":713
11227 * # Unpack void* (aka rados_config_t) from capsule
11228 * rados_config = <rados_config_t> PyCapsule_GetPointer(context, NULL)
11229 * with nogil: # <<<<<<<<<<<<<<
11230 * ret = rados_create_with_context(&self.cluster, rados_config)
11231 * else:
11232 */
11233 {
11234 #ifdef WITH_THREAD1
11235 PyThreadState *_save;
11236 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
11237 #endif
11238 /*try:*/ {
11239
11240 /* "rados.pyx":714
11241 * rados_config = <rados_config_t> PyCapsule_GetPointer(context, NULL)
11242 * with nogil:
11243 * ret = rados_create_with_context(&self.cluster, rados_config) # <<<<<<<<<<<<<<
11244 * else:
11245 * with nogil:
11246 */
11247 __pyx_v_ret = rados_create_with_context((&__pyx_v_self->cluster), __pyx_v_rados_config);
11248 }
11249
11250 /* "rados.pyx":713
11251 * # Unpack void* (aka rados_config_t) from capsule
11252 * rados_config = <rados_config_t> PyCapsule_GetPointer(context, NULL)
11253 * with nogil: # <<<<<<<<<<<<<<
11254 * ret = rados_create_with_context(&self.cluster, rados_config)
11255 * else:
11256 */
11257 /*finally:*/ {
11258 /*normal exit:*/{
11259 #ifdef WITH_THREAD1
11260 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
11261 #endif
11262 goto __pyx_L10;
11263 }
11264 __pyx_L10:;
11265 }
11266 }
11267
11268 /* "rados.pyx":710
11269 * int ret
11270 *
11271 * if context: # <<<<<<<<<<<<<<
11272 * # Unpack void* (aka rados_config_t) from capsule
11273 * rados_config = <rados_config_t> PyCapsule_GetPointer(context, NULL)
11274 */
11275 goto __pyx_L7;
11276 }
11277
11278 /* "rados.pyx":716
11279 * ret = rados_create_with_context(&self.cluster, rados_config)
11280 * else:
11281 * with nogil: # <<<<<<<<<<<<<<
11282 * ret = rados_create2(&self.cluster, _clustername, _name, _flags)
11283 * if ret != 0:
11284 */
11285 /*else*/ {
11286 {
11287 #ifdef WITH_THREAD1
11288 PyThreadState *_save;
11289 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
11290 #endif
11291 /*try:*/ {
11292
11293 /* "rados.pyx":717
11294 * else:
11295 * with nogil:
11296 * ret = rados_create2(&self.cluster, _clustername, _name, _flags) # <<<<<<<<<<<<<<
11297 * if ret != 0:
11298 * raise Error("rados_initialize failed with error code: %d" % ret)
11299 */
11300 __pyx_v_ret = rados_create2((&__pyx_v_self->cluster), __pyx_v__clustername, __pyx_v__name, __pyx_v__flags);
11301 }
11302
11303 /* "rados.pyx":716
11304 * ret = rados_create_with_context(&self.cluster, rados_config)
11305 * else:
11306 * with nogil: # <<<<<<<<<<<<<<
11307 * ret = rados_create2(&self.cluster, _clustername, _name, _flags)
11308 * if ret != 0:
11309 */
11310 /*finally:*/ {
11311 /*normal exit:*/{
11312 #ifdef WITH_THREAD1
11313 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
11314 #endif
11315 goto __pyx_L13;
11316 }
11317 __pyx_L13:;
11318 }
11319 }
11320 }
11321 __pyx_L7:;
11322
11323 /* "rados.pyx":718
11324 * with nogil:
11325 * ret = rados_create2(&self.cluster, _clustername, _name, _flags)
11326 * if ret != 0: # <<<<<<<<<<<<<<
11327 * raise Error("rados_initialize failed with error code: %d" % ret)
11328 *
11329 */
11330 __pyx_t_2 = ((__pyx_v_ret != 0) != 0);
11331 if (__pyx_t_2) {
11332
11333 /* "rados.pyx":719
11334 * ret = rados_create2(&self.cluster, _clustername, _name, _flags)
11335 * if ret != 0:
11336 * raise Error("rados_initialize failed with error code: %d" % ret) # <<<<<<<<<<<<<<
11337 *
11338 * self.state = "configuring"
11339 */
11340 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__11340; goto __pyx_L1_error;}
11341 __Pyx_GOTREF(__pyx_t_1);
11342 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__11342; goto __pyx_L1_error;}
11343 __Pyx_GOTREF(__pyx_t_5);
11344 __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_rados_initialize_failed_with_err, __pyx_t_5)PyString_Format(__pyx_kp_s_rados_initialize_failed_with_err, __pyx_t_5
)
; if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__11344; goto __pyx_L1_error;}
11345 __Pyx_GOTREF(__pyx_t_7);
11346 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11347 __pyx_t_5 = NULL((void*)0);
11348 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
11349 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
11350 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
11351 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
11352 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
11353 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11354 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11355 }
11356 }
11357 if (!__pyx_t_5) {
11358 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__11358; goto __pyx_L1_error;}
11359 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
11360 __Pyx_GOTREF(__pyx_t_4);
11361 } else {
11362 __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__11362; goto __pyx_L1_error;}
11363 __Pyx_GOTREF(__pyx_t_11);
11364 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_11))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
11365 __Pyx_GIVEREF(__pyx_t_7);
11366 PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_7)(((PyTupleObject *)(__pyx_t_11))->ob_item[0+1] = __pyx_t_7
)
;
11367 __pyx_t_7 = 0;
11368 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_11, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__11368; goto __pyx_L1_error;}
11369 __Pyx_GOTREF(__pyx_t_4);
11370 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
11371 }
11372 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11373 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
11374 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11375 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__11375; goto __pyx_L1_error;}
11376
11377 /* "rados.pyx":718
11378 * with nogil:
11379 * ret = rados_create2(&self.cluster, _clustername, _name, _flags)
11380 * if ret != 0: # <<<<<<<<<<<<<<
11381 * raise Error("rados_initialize failed with error code: %d" % ret)
11382 *
11383 */
11384 }
11385
11386 /* "rados.pyx":721
11387 * raise Error("rados_initialize failed with error code: %d" % ret)
11388 *
11389 * self.state = "configuring" # <<<<<<<<<<<<<<
11390 * # order is important: conf_defaults, then conffile, then conf
11391 * if conf_defaults:
11392 */
11393 __Pyx_INCREF(__pyx_n_s_configuring)( ((PyObject*)(__pyx_n_s_configuring))->ob_refcnt++);
11394 __Pyx_GIVEREF(__pyx_n_s_configuring);
11395 __Pyx_GOTREF(__pyx_v_self->state);
11396 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
11397 __pyx_v_self->state = __pyx_n_s_configuring;
11398
11399 /* "rados.pyx":723
11400 * self.state = "configuring"
11401 * # order is important: conf_defaults, then conffile, then conf
11402 * if conf_defaults: # <<<<<<<<<<<<<<
11403 * for key, value in conf_defaults.items():
11404 * self.conf_set(key, value)
11405 */
11406 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_conf_defaults); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; __pyx_clineno = __LINE__11406; goto __pyx_L1_error;}
11407 if (__pyx_t_2) {
11408
11409 /* "rados.pyx":724
11410 * # order is important: conf_defaults, then conffile, then conf
11411 * if conf_defaults:
11412 * for key, value in conf_defaults.items(): # <<<<<<<<<<<<<<
11413 * self.conf_set(key, value)
11414 * if conffile is not None:
11415 */
11416 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_conf_defaults, __pyx_n_s_items); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11416; goto __pyx_L1_error;}
11417 __Pyx_GOTREF(__pyx_t_1);
11418 __pyx_t_11 = NULL((void*)0);
11419 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 1)
) {
11420 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
11421 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
11422 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
11423 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
11424 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11425 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11426 }
11427 }
11428 if (__pyx_t_11) {
11429 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11429; goto __pyx_L1_error;}
11430 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
11431 } else {
11432 __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11432; goto __pyx_L1_error;}
11433 }
11434 __Pyx_GOTREF(__pyx_t_4);
11435 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11436 if (likely(PyList_CheckExact(__pyx_t_4))__builtin_expect(!!(((((PyObject*)(__pyx_t_4))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_4)((((PyObject*)(__pyx_t_4))->ob_type) == &PyTuple_Type)) {
11437 __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_6 = 0;
11438 __pyx_t_12 = NULL((void*)0);
11439 } else {
11440 __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11440; goto __pyx_L1_error;}
11441 __Pyx_GOTREF(__pyx_t_1);
11442 __pyx_t_12 = Py_TYPE(__pyx_t_1)(((PyObject*)(__pyx_t_1))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11442; goto __pyx_L1_error;}
11443 }
11444 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11445 for (;;) {
11446 if (likely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 1)) {
11447 if (likely(PyList_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyList_Type)), 1)
) {
11448 if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
11449 #if CYTHON_COMPILING_IN_CPYTHON1
11450 __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6)(((PyListObject *)(__pyx_t_1))->ob_item[__pyx_t_6]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_6++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11450; goto __pyx_L1_error;}
11451 #else
11452 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_6) )
; __pyx_t_6++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11452; goto __pyx_L1_error;}
11453 __Pyx_GOTREF(__pyx_t_4);
11454 #endif
11455 } else {
11456 if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)(((PyVarObject*)(__pyx_t_1))->ob_size)) break;
11457 #if CYTHON_COMPILING_IN_CPYTHON1
11458 __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6)(((PyTupleObject *)(__pyx_t_1))->ob_item[__pyx_t_6]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_6++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11458; goto __pyx_L1_error;}
11459 #else
11460 __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6)( (((PyObject*)(__pyx_t_1))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_1, __pyx_t_6) )
; __pyx_t_6++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11460; goto __pyx_L1_error;}
11461 __Pyx_GOTREF(__pyx_t_4);
11462 #endif
11463 }
11464 } else {
11465 __pyx_t_4 = __pyx_t_12(__pyx_t_1);
11466 if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {
11467 PyObject* exc_type = PyErr_Occurred();
11468 if (exc_type) {
11469 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
11470 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11470; goto __pyx_L1_error;}
11471 }
11472 break;
11473 }
11474 __Pyx_GOTREF(__pyx_t_4);
11475 }
11476 if ((likely(PyTuple_CheckExact(__pyx_t_4))__builtin_expect(!!(((((PyObject*)(__pyx_t_4))->ob_type) ==
&PyTuple_Type)), 1)
) || (PyList_CheckExact(__pyx_t_4)((((PyObject*)(__pyx_t_4))->ob_type) == &PyList_Type))) {
11477 PyObject* sequence = __pyx_t_4;
11478 #if CYTHON_COMPILING_IN_CPYTHON1
11479 Py_ssize_t size = Py_SIZE(sequence)(((PyVarObject*)(sequence))->ob_size);
11480 #else
11481 Py_ssize_t size = PySequence_Size(sequence);
11482 #endif
11483 if (unlikely(size != 2)__builtin_expect(!!(size != 2), 0)) {
11484 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
11485 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
11486 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11486; goto __pyx_L1_error;}
11487 }
11488 #if CYTHON_COMPILING_IN_CPYTHON1
11489 if (likely(PyTuple_CheckExact(sequence))__builtin_expect(!!(((((PyObject*)(sequence))->ob_type) ==
&PyTuple_Type)), 1)
) {
11490 __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0)(((PyTupleObject *)(sequence))->ob_item[0]);
11491 __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1)(((PyTupleObject *)(sequence))->ob_item[1]);
11492 } else {
11493 __pyx_t_11 = PyList_GET_ITEM(sequence, 0)(((PyListObject *)(sequence))->ob_item[0]);
11494 __pyx_t_7 = PyList_GET_ITEM(sequence, 1)(((PyListObject *)(sequence))->ob_item[1]);
11495 }
11496 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
11497 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
11498 #else
11499 __pyx_t_11 = PySequence_ITEM(sequence, 0)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 0) )
; if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11499; goto __pyx_L1_error;}
11500 __Pyx_GOTREF(__pyx_t_11);
11501 __pyx_t_7 = PySequence_ITEM(sequence, 1)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 1) )
; if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11501; goto __pyx_L1_error;}
11502 __Pyx_GOTREF(__pyx_t_7);
11503 #endif
11504 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11505 } else {
11506 Py_ssize_t index = -1;
11507 __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11507; goto __pyx_L1_error;}
11508 __Pyx_GOTREF(__pyx_t_5);
11509 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11510 __pyx_t_13 = Py_TYPE(__pyx_t_5)(((PyObject*)(__pyx_t_5))->ob_type)->tp_iternext;
11511 index = 0; __pyx_t_11 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) goto __pyx_L18_unpacking_failed;
11512 __Pyx_GOTREF(__pyx_t_11);
11513 index = 1; __pyx_t_7 = __pyx_t_13(__pyx_t_5); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) goto __pyx_L18_unpacking_failed;
11514 __Pyx_GOTREF(__pyx_t_7);
11515 if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11515; goto __pyx_L1_error;}
11516 __pyx_t_13 = NULL((void*)0);
11517 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11518 goto __pyx_L19_unpacking_done;
11519 __pyx_L18_unpacking_failed:;
11520 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11521 __pyx_t_13 = NULL((void*)0);
11522 if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
11523 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__11523; goto __pyx_L1_error;}
11524 __pyx_L19_unpacking_done:;
11525 }
11526 __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_11)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_11
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
11527 __pyx_t_11 = 0;
11528 __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_7)do { PyObject *tmp = (PyObject *) __pyx_v_value; __pyx_v_value
= __pyx_t_7; do { if ((tmp) == ((void*)0)) ; else do { if ( --
((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0); } while (0); } while (
0)
;
11529 __pyx_t_7 = 0;
11530
11531 /* "rados.pyx":725
11532 * if conf_defaults:
11533 * for key, value in conf_defaults.items():
11534 * self.conf_set(key, value) # <<<<<<<<<<<<<<
11535 * if conffile is not None:
11536 * # read the default conf file when '' is given
11537 */
11538 __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conf_set); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; __pyx_clineno = __LINE__11538; goto __pyx_L1_error;}
11539 __Pyx_GOTREF(__pyx_t_7);
11540 __pyx_t_11 = NULL((void*)0);
11541 __pyx_t_14 = 0;
11542 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_7))__builtin_expect(!!(((__pyx_t_7)->ob_type == &PyMethod_Type
)), 1)
) {
11543 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_self);
11544 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
11545 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_func);
11546 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
11547 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11548 __Pyx_DECREF_SET(__pyx_t_7, function)do { PyObject *tmp = (PyObject *) __pyx_t_7; __pyx_t_7 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11549 __pyx_t_14 = 1;
11550 }
11551 }
11552 __pyx_t_5 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; __pyx_clineno = __LINE__11552; goto __pyx_L1_error;}
11553 __Pyx_GOTREF(__pyx_t_5);
11554 if (__pyx_t_11) {
11555 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
11556 }
11557 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
11558 __Pyx_GIVEREF(__pyx_v_key);
11559 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_14, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_14] = __pyx_v_key
)
;
11560 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
11561 __Pyx_GIVEREF(__pyx_v_value);
11562 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_14, __pyx_v_value)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_14] = __pyx_v_value
)
;
11563 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 725; __pyx_clineno = __LINE__11563; goto __pyx_L1_error;}
11564 __Pyx_GOTREF(__pyx_t_4);
11565 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11566 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
11567 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11568
11569 /* "rados.pyx":724
11570 * # order is important: conf_defaults, then conffile, then conf
11571 * if conf_defaults:
11572 * for key, value in conf_defaults.items(): # <<<<<<<<<<<<<<
11573 * self.conf_set(key, value)
11574 * if conffile is not None:
11575 */
11576 }
11577 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11578
11579 /* "rados.pyx":723
11580 * self.state = "configuring"
11581 * # order is important: conf_defaults, then conffile, then conf
11582 * if conf_defaults: # <<<<<<<<<<<<<<
11583 * for key, value in conf_defaults.items():
11584 * self.conf_set(key, value)
11585 */
11586 }
11587
11588 /* "rados.pyx":726
11589 * for key, value in conf_defaults.items():
11590 * self.conf_set(key, value)
11591 * if conffile is not None: # <<<<<<<<<<<<<<
11592 * # read the default conf file when '' is given
11593 * if conffile == '':
11594 */
11595 __pyx_t_2 = (__pyx_v_conffile != Py_None(&_Py_NoneStruct));
11596 __pyx_t_3 = (__pyx_t_2 != 0);
11597 if (__pyx_t_3) {
11598
11599 /* "rados.pyx":728
11600 * if conffile is not None:
11601 * # read the default conf file when '' is given
11602 * if conffile == '': # <<<<<<<<<<<<<<
11603 * conffile = None
11604 * self.conf_read_file(conffile)
11605 */
11606 __pyx_t_3 = (__Pyx_PyString_Equals__Pyx_PyBytes_Equals(__pyx_v_conffile, __pyx_kp_s__10, Py_EQ2)); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__11606; goto __pyx_L1_error;}
11607 if (__pyx_t_3) {
11608
11609 /* "rados.pyx":729
11610 * # read the default conf file when '' is given
11611 * if conffile == '':
11612 * conffile = None # <<<<<<<<<<<<<<
11613 * self.conf_read_file(conffile)
11614 * if conf:
11615 */
11616 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
11617 __Pyx_DECREF_SET(__pyx_v_conffile, Py_None)do { PyObject *tmp = (PyObject *) __pyx_v_conffile; __pyx_v_conffile
= (&_Py_NoneStruct); do { if ( --((PyObject*)(tmp))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); }
while (0); } while (0)
;
11618
11619 /* "rados.pyx":728
11620 * if conffile is not None:
11621 * # read the default conf file when '' is given
11622 * if conffile == '': # <<<<<<<<<<<<<<
11623 * conffile = None
11624 * self.conf_read_file(conffile)
11625 */
11626 }
11627
11628 /* "rados.pyx":730
11629 * if conffile == '':
11630 * conffile = None
11631 * self.conf_read_file(conffile) # <<<<<<<<<<<<<<
11632 * if conf:
11633 * for key, value in conf.items():
11634 */
11635 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conf_read_file); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__11635; goto __pyx_L1_error;}
11636 __Pyx_GOTREF(__pyx_t_4);
11637 __pyx_t_7 = NULL((void*)0);
11638 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 1)
) {
11639 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
11640 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
11641 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
11642 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
11643 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11644 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11645 }
11646 }
11647 if (!__pyx_t_7) {
11648 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_conffile); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__11648; goto __pyx_L1_error;}
11649 __Pyx_GOTREF(__pyx_t_1);
11650 } else {
11651 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__11651; goto __pyx_L1_error;}
11652 __Pyx_GOTREF(__pyx_t_5);
11653 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
11654 __Pyx_INCREF(__pyx_v_conffile)( ((PyObject*)(__pyx_v_conffile))->ob_refcnt++);
11655 __Pyx_GIVEREF(__pyx_v_conffile);
11656 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_conffile)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_v_conffile
)
;
11657 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 730; __pyx_clineno = __LINE__11657; goto __pyx_L1_error;}
11658 __Pyx_GOTREF(__pyx_t_1);
11659 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11660 }
11661 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11662 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11663
11664 /* "rados.pyx":726
11665 * for key, value in conf_defaults.items():
11666 * self.conf_set(key, value)
11667 * if conffile is not None: # <<<<<<<<<<<<<<
11668 * # read the default conf file when '' is given
11669 * if conffile == '':
11670 */
11671 }
11672
11673 /* "rados.pyx":731
11674 * conffile = None
11675 * self.conf_read_file(conffile)
11676 * if conf: # <<<<<<<<<<<<<<
11677 * for key, value in conf.items():
11678 * self.conf_set(key, value)
11679 */
11680 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_conf); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__11680; goto __pyx_L1_error;}
11681 if (__pyx_t_3) {
11682
11683 /* "rados.pyx":732
11684 * self.conf_read_file(conffile)
11685 * if conf:
11686 * for key, value in conf.items(): # <<<<<<<<<<<<<<
11687 * self.conf_set(key, value)
11688 *
11689 */
11690 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_conf, __pyx_n_s_items); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11690; goto __pyx_L1_error;}
11691 __Pyx_GOTREF(__pyx_t_4);
11692 __pyx_t_5 = NULL((void*)0);
11693 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 1)
) {
11694 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
11695 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
11696 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
11697 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
11698 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11699 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11700 }
11701 }
11702 if (__pyx_t_5) {
11703 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11703; goto __pyx_L1_error;}
11704 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11705 } else {
11706 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11706; goto __pyx_L1_error;}
11707 }
11708 __Pyx_GOTREF(__pyx_t_1);
11709 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11710 if (likely(PyList_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_1)((((PyObject*)(__pyx_t_1))->ob_type) == &PyTuple_Type)) {
11711 __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_6 = 0;
11712 __pyx_t_12 = NULL((void*)0);
11713 } else {
11714 __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11714; goto __pyx_L1_error;}
11715 __Pyx_GOTREF(__pyx_t_4);
11716 __pyx_t_12 = Py_TYPE(__pyx_t_4)(((PyObject*)(__pyx_t_4))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11716; goto __pyx_L1_error;}
11717 }
11718 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11719 for (;;) {
11720 if (likely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 1)) {
11721 if (likely(PyList_CheckExact(__pyx_t_4))__builtin_expect(!!(((((PyObject*)(__pyx_t_4))->ob_type) ==
&PyList_Type)), 1)
) {
11722 if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)(((PyVarObject*)(__pyx_t_4))->ob_size)) break;
11723 #if CYTHON_COMPILING_IN_CPYTHON1
11724 __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6)(((PyListObject *)(__pyx_t_4))->ob_item[__pyx_t_6]); __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_6++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11724; goto __pyx_L1_error;}
11725 #else
11726 __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6)( (((PyObject*)(__pyx_t_4))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_4, __pyx_t_6) )
; __pyx_t_6++; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11726; goto __pyx_L1_error;}
11727 __Pyx_GOTREF(__pyx_t_1);
11728 #endif
11729 } else {
11730 if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)(((PyVarObject*)(__pyx_t_4))->ob_size)) break;
11731 #if CYTHON_COMPILING_IN_CPYTHON1
11732 __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6)(((PyTupleObject *)(__pyx_t_4))->ob_item[__pyx_t_6]); __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_6++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11732; goto __pyx_L1_error;}
11733 #else
11734 __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6)( (((PyObject*)(__pyx_t_4))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_4, __pyx_t_6) )
; __pyx_t_6++; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11734; goto __pyx_L1_error;}
11735 __Pyx_GOTREF(__pyx_t_1);
11736 #endif
11737 }
11738 } else {
11739 __pyx_t_1 = __pyx_t_12(__pyx_t_4);
11740 if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {
11741 PyObject* exc_type = PyErr_Occurred();
11742 if (exc_type) {
11743 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
11744 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11744; goto __pyx_L1_error;}
11745 }
11746 break;
11747 }
11748 __Pyx_GOTREF(__pyx_t_1);
11749 }
11750 if ((likely(PyTuple_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyTuple_Type)), 1)
) || (PyList_CheckExact(__pyx_t_1)((((PyObject*)(__pyx_t_1))->ob_type) == &PyList_Type))) {
11751 PyObject* sequence = __pyx_t_1;
11752 #if CYTHON_COMPILING_IN_CPYTHON1
11753 Py_ssize_t size = Py_SIZE(sequence)(((PyVarObject*)(sequence))->ob_size);
11754 #else
11755 Py_ssize_t size = PySequence_Size(sequence);
11756 #endif
11757 if (unlikely(size != 2)__builtin_expect(!!(size != 2), 0)) {
11758 if (size > 2) __Pyx_RaiseTooManyValuesError(2);
11759 else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
11760 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11760; goto __pyx_L1_error;}
11761 }
11762 #if CYTHON_COMPILING_IN_CPYTHON1
11763 if (likely(PyTuple_CheckExact(sequence))__builtin_expect(!!(((((PyObject*)(sequence))->ob_type) ==
&PyTuple_Type)), 1)
) {
11764 __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0)(((PyTupleObject *)(sequence))->ob_item[0]);
11765 __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1)(((PyTupleObject *)(sequence))->ob_item[1]);
11766 } else {
11767 __pyx_t_5 = PyList_GET_ITEM(sequence, 0)(((PyListObject *)(sequence))->ob_item[0]);
11768 __pyx_t_7 = PyList_GET_ITEM(sequence, 1)(((PyListObject *)(sequence))->ob_item[1]);
11769 }
11770 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
11771 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
11772 #else
11773 __pyx_t_5 = PySequence_ITEM(sequence, 0)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 0) )
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11773; goto __pyx_L1_error;}
11774 __Pyx_GOTREF(__pyx_t_5);
11775 __pyx_t_7 = PySequence_ITEM(sequence, 1)( (((PyObject*)(sequence))->ob_type)->tp_as_sequence->
sq_item(sequence, 1) )
; if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11775; goto __pyx_L1_error;}
11776 __Pyx_GOTREF(__pyx_t_7);
11777 #endif
11778 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11779 } else {
11780 Py_ssize_t index = -1;
11781 __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11781; goto __pyx_L1_error;}
11782 __Pyx_GOTREF(__pyx_t_11);
11783 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11784 __pyx_t_13 = Py_TYPE(__pyx_t_11)(((PyObject*)(__pyx_t_11))->ob_type)->tp_iternext;
11785 index = 0; __pyx_t_5 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) goto __pyx_L25_unpacking_failed;
11786 __Pyx_GOTREF(__pyx_t_5);
11787 index = 1; __pyx_t_7 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) goto __pyx_L25_unpacking_failed;
11788 __Pyx_GOTREF(__pyx_t_7);
11789 if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11789; goto __pyx_L1_error;}
11790 __pyx_t_13 = NULL((void*)0);
11791 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
11792 goto __pyx_L26_unpacking_done;
11793 __pyx_L25_unpacking_failed:;
11794 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
11795 __pyx_t_13 = NULL((void*)0);
11796 if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
11797 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__11797; goto __pyx_L1_error;}
11798 __pyx_L26_unpacking_done:;
11799 }
11800 __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_5
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
11801 __pyx_t_5 = 0;
11802 __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_7)do { PyObject *tmp = (PyObject *) __pyx_v_value; __pyx_v_value
= __pyx_t_7; do { if ((tmp) == ((void*)0)) ; else do { if ( --
((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0); } while (0); } while (
0)
;
11803 __pyx_t_7 = 0;
11804
11805 /* "rados.pyx":733
11806 * if conf:
11807 * for key, value in conf.items():
11808 * self.conf_set(key, value) # <<<<<<<<<<<<<<
11809 *
11810 * def require_state(self, *args):
11811 */
11812 __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_conf_set); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__11812; goto __pyx_L1_error;}
11813 __Pyx_GOTREF(__pyx_t_7);
11814 __pyx_t_5 = NULL((void*)0);
11815 __pyx_t_14 = 0;
11816 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_7))__builtin_expect(!!(((__pyx_t_7)->ob_type == &PyMethod_Type
)), 1)
) {
11817 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_self);
11818 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
11819 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_func);
11820 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
11821 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11822 __Pyx_DECREF_SET(__pyx_t_7, function)do { PyObject *tmp = (PyObject *) __pyx_t_7; __pyx_t_7 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11823 __pyx_t_14 = 1;
11824 }
11825 }
11826 __pyx_t_11 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__11826; goto __pyx_L1_error;}
11827 __Pyx_GOTREF(__pyx_t_11);
11828 if (__pyx_t_5) {
11829 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_11))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
11830 }
11831 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
11832 __Pyx_GIVEREF(__pyx_v_key);
11833 PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_14, __pyx_v_key)(((PyTupleObject *)(__pyx_t_11))->ob_item[0+__pyx_t_14] = __pyx_v_key
)
;
11834 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
11835 __Pyx_GIVEREF(__pyx_v_value);
11836 PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_14, __pyx_v_value)(((PyTupleObject *)(__pyx_t_11))->ob_item[1+__pyx_t_14] = __pyx_v_value
)
;
11837 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_11, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 733; __pyx_clineno = __LINE__11837; goto __pyx_L1_error;}
11838 __Pyx_GOTREF(__pyx_t_1);
11839 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
11840 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
11841 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
11842
11843 /* "rados.pyx":732
11844 * self.conf_read_file(conffile)
11845 * if conf:
11846 * for key, value in conf.items(): # <<<<<<<<<<<<<<
11847 * self.conf_set(key, value)
11848 *
11849 */
11850 }
11851 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
11852
11853 /* "rados.pyx":731
11854 * conffile = None
11855 * self.conf_read_file(conffile)
11856 * if conf: # <<<<<<<<<<<<<<
11857 * for key, value in conf.items():
11858 * self.conf_set(key, value)
11859 */
11860 }
11861
11862 /* "rados.pyx":683
11863 * @requires(('rados_id', opt(str_type)), ('name', opt(str_type)), ('clustername', opt(str_type)),
11864 * ('conffile', opt(str_type)))
11865 * def __setup(self, rados_id=None, name=None, clustername=None, # <<<<<<<<<<<<<<
11866 * conf_defaults=None, conffile=None, conf=None, flags=0,
11867 * context=None):
11868 */
11869
11870 /* function exit code */
11871 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
11872 goto __pyx_L0;
11873 __pyx_L1_error:;
11874 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
11875 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
11876 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
11877 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
11878 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
;
11879 __Pyx_AddTraceback("rados.Rados.__setup", __pyx_clineno, __pyx_lineno, __pyx_filename);
11880 __pyx_r = NULL((void*)0);
11881 __pyx_L0:;
11882 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
11883 __Pyx_XDECREF(__pyx_v_value)do { if ((__pyx_v_value) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_value))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_value)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_value)))); } while (0); }
while (0)
;
11884 __Pyx_XDECREF(__pyx_v_name)do { if ((__pyx_v_name) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_name))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_name)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_name)))); } while (0); } while
(0)
;
11885 __Pyx_XDECREF(__pyx_v_clustername)do { if ((__pyx_v_clustername) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_clustername))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_clustername)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_clustername
)))); } while (0); } while (0)
;
11886 __Pyx_XDECREF(__pyx_v_conffile)do { if ((__pyx_v_conffile) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_conffile))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_conffile)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_conffile)))); }
while (0); } while (0)
;
11887 __Pyx_XGIVEREF(__pyx_r);
11888 __Pyx_RefNannyFinishContext();
11889 return __pyx_r;
11890}
11891
11892/* "rados.pyx":735
11893 * self.conf_set(key, value)
11894 *
11895 * def require_state(self, *args): # <<<<<<<<<<<<<<
11896 * """
11897 * Checks if the Rados object is in a special state
11898 */
11899
11900/* Python wrapper */
11901static PyObject *__pyx_pw_5rados_5Rados_5require_state(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
11902static char __pyx_doc_5rados_5Rados_4require_state[] = "Rados.require_state(self, *args)\n\n Checks if the Rados object is in a special state\n\n :raises: :class:`RadosStateError`\n ";
11903static PyObject *__pyx_pw_5rados_5Rados_5require_state(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
11904 PyObject *__pyx_v_args = 0;
11905 PyObject *__pyx_r = 0;
11906 __Pyx_RefNannyDeclarations
11907 __Pyx_RefNannySetupContext("require_state (wrapper)", 0);
11908 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0) && unlikely(PyDict_Size(__pyx_kwds) > 0)__builtin_expect(!!(PyDict_Size(__pyx_kwds) > 0), 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "require_state", 0))__builtin_expect(!!(!__Pyx_CheckKeywordStrings(__pyx_kwds, "require_state"
, 0)), 0)
) return NULL((void*)0);
11909 __Pyx_INCREF(__pyx_args)( ((PyObject*)(__pyx_args))->ob_refcnt++);
11910 __pyx_v_args = __pyx_args;
11911 __pyx_r = __pyx_pf_5rados_5Rados_4require_state(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_args);
11912
11913 /* function exit code */
11914 __Pyx_XDECREF(__pyx_v_args)do { if ((__pyx_v_args) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_args))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_args)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_args)))); } while (0); } while
(0)
;
11915 __Pyx_RefNannyFinishContext();
11916 return __pyx_r;
11917}
11918
11919static PyObject *__pyx_pf_5rados_5Rados_4require_state(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_args) {
11920 PyObject *__pyx_r = NULL((void*)0);
11921 __Pyx_RefNannyDeclarations
11922 int __pyx_t_1;
11923 int __pyx_t_2;
11924 PyObject *__pyx_t_3 = NULL((void*)0);
11925 PyObject *__pyx_t_4 = NULL((void*)0);
11926 PyObject *__pyx_t_5 = NULL((void*)0);
11927 PyObject *__pyx_t_6 = NULL((void*)0);
11928 PyObject *__pyx_t_7 = NULL((void*)0);
11929 int __pyx_lineno = 0;
11930 const char *__pyx_filename = NULL((void*)0);
11931 int __pyx_clineno = 0;
11932 __Pyx_RefNannySetupContext("require_state", 0);
11933
11934 /* "rados.pyx":741
11935 * :raises: :class:`RadosStateError`
11936 * """
11937 * if self.state in args: # <<<<<<<<<<<<<<
11938 * return
11939 * raise RadosStateError("You cannot perform that operation on a \
11940 */
11941 __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_self->state, __pyx_v_args, Py_EQ2)); if (unlikely(__pyx_t_1 < 0)__builtin_expect(!!(__pyx_t_1 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__11941; goto __pyx_L1_error;}
11942 __pyx_t_2 = (__pyx_t_1 != 0);
11943 if (__pyx_t_2) {
11944
11945 /* "rados.pyx":742
11946 * """
11947 * if self.state in args:
11948 * return # <<<<<<<<<<<<<<
11949 * raise RadosStateError("You cannot perform that operation on a \
11950 * Rados object in state %s." % self.state)
11951 */
11952 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
11953 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
11954 goto __pyx_L0;
11955
11956 /* "rados.pyx":741
11957 * :raises: :class:`RadosStateError`
11958 * """
11959 * if self.state in args: # <<<<<<<<<<<<<<
11960 * return
11961 * raise RadosStateError("You cannot perform that operation on a \
11962 */
11963 }
11964
11965 /* "rados.pyx":743
11966 * if self.state in args:
11967 * return
11968 * raise RadosStateError("You cannot perform that operation on a \ # <<<<<<<<<<<<<<
11969 * Rados object in state %s." % self.state)
11970 *
11971 */
11972 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_RadosStateError); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__11972; goto __pyx_L1_error;}
11973 __Pyx_GOTREF(__pyx_t_4);
11974
11975 /* "rados.pyx":744
11976 * return
11977 * raise RadosStateError("You cannot perform that operation on a \
11978 * Rados object in state %s." % self.state) # <<<<<<<<<<<<<<
11979 *
11980 * def shutdown(self):
11981 */
11982 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_You_cannot_perform_that_operatio, __pyx_v_self->state)PyString_Format(__pyx_kp_s_You_cannot_perform_that_operatio, __pyx_v_self
->state)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__11982; goto __pyx_L1_error;}
11983 __Pyx_GOTREF(__pyx_t_5);
11984 __pyx_t_6 = NULL((void*)0);
11985 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
11986 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
11987 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
11988 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
11989 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
11990 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
11991 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
11992 }
11993 }
11994 if (!__pyx_t_6) {
11995 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__11995; goto __pyx_L1_error;}
11996 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
11997 __Pyx_GOTREF(__pyx_t_3);
11998 } else {
11999 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__11999; goto __pyx_L1_error;}
12000 __Pyx_GOTREF(__pyx_t_7);
12001 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
12002 __Pyx_GIVEREF(__pyx_t_5);
12003 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
12004 __pyx_t_5 = 0;
12005 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__12005; goto __pyx_L1_error;}
12006 __Pyx_GOTREF(__pyx_t_3);
12007 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
12008 }
12009 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
12010 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
12011 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
12012 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__12012; goto __pyx_L1_error;}
12013
12014 /* "rados.pyx":735
12015 * self.conf_set(key, value)
12016 *
12017 * def require_state(self, *args): # <<<<<<<<<<<<<<
12018 * """
12019 * Checks if the Rados object is in a special state
12020 */
12021
12022 /* function exit code */
12023 __pyx_L1_error:;
12024 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
12025 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
12026 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
12027 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
12028 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
12029 __Pyx_AddTraceback("rados.Rados.require_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
12030 __pyx_r = NULL((void*)0);
12031 __pyx_L0:;
12032 __Pyx_XGIVEREF(__pyx_r);
12033 __Pyx_RefNannyFinishContext();
12034 return __pyx_r;
12035}
12036
12037/* "rados.pyx":746
12038 * Rados object in state %s." % self.state)
12039 *
12040 * def shutdown(self): # <<<<<<<<<<<<<<
12041 * """
12042 * Disconnects from the cluster. Call this explicitly when a
12043 */
12044
12045/* Python wrapper */
12046static PyObject *__pyx_pw_5rados_5Rados_7shutdown(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
12047static char __pyx_doc_5rados_5Rados_6shutdown[] = "Rados.shutdown(self)\n\n Disconnects from the cluster. Call this explicitly when a\n Rados.connect()ed object is no longer used.\n ";
12048static PyObject *__pyx_pw_5rados_5Rados_7shutdown(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
12049 PyObject *__pyx_r = 0;
12050 __Pyx_RefNannyDeclarations
12051 __Pyx_RefNannySetupContext("shutdown (wrapper)", 0);
12052 __pyx_r = __pyx_pf_5rados_5Rados_6shutdown(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
12053
12054 /* function exit code */
12055 __Pyx_RefNannyFinishContext();
12056 return __pyx_r;
12057}
12058
12059static PyObject *__pyx_pf_5rados_5Rados_6shutdown(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
12060 PyObject *__pyx_r = NULL((void*)0);
12061 __Pyx_RefNannyDeclarations
12062 int __pyx_t_1;
12063 int __pyx_lineno = 0;
12064 const char *__pyx_filename = NULL((void*)0);
12065 int __pyx_clineno = 0;
12066 __Pyx_RefNannySetupContext("shutdown", 0);
12067
12068 /* "rados.pyx":751
12069 * Rados.connect()ed object is no longer used.
12070 * """
12071 * if self.state != "shutdown": # <<<<<<<<<<<<<<
12072 * with nogil:
12073 * rados_shutdown(self.cluster)
12074 */
12075 __pyx_t_1 = (__Pyx_PyString_Equals__Pyx_PyBytes_Equals(__pyx_v_self->state, __pyx_n_s_shutdown, Py_NE3)); if (unlikely(__pyx_t_1 < 0)__builtin_expect(!!(__pyx_t_1 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__12075; goto __pyx_L1_error;}
12076 if (__pyx_t_1) {
12077
12078 /* "rados.pyx":752
12079 * """
12080 * if self.state != "shutdown":
12081 * with nogil: # <<<<<<<<<<<<<<
12082 * rados_shutdown(self.cluster)
12083 * self.state = "shutdown"
12084 */
12085 {
12086 #ifdef WITH_THREAD1
12087 PyThreadState *_save;
12088 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
12089 #endif
12090 /*try:*/ {
12091
12092 /* "rados.pyx":753
12093 * if self.state != "shutdown":
12094 * with nogil:
12095 * rados_shutdown(self.cluster) # <<<<<<<<<<<<<<
12096 * self.state = "shutdown"
12097 *
12098 */
12099 rados_shutdown(__pyx_v_self->cluster);
12100 }
12101
12102 /* "rados.pyx":752
12103 * """
12104 * if self.state != "shutdown":
12105 * with nogil: # <<<<<<<<<<<<<<
12106 * rados_shutdown(self.cluster)
12107 * self.state = "shutdown"
12108 */
12109 /*finally:*/ {
12110 /*normal exit:*/{
12111 #ifdef WITH_THREAD1
12112 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
12113 #endif
12114 goto __pyx_L6;
12115 }
12116 __pyx_L6:;
12117 }
12118 }
12119
12120 /* "rados.pyx":754
12121 * with nogil:
12122 * rados_shutdown(self.cluster)
12123 * self.state = "shutdown" # <<<<<<<<<<<<<<
12124 *
12125 * def __enter__(self):
12126 */
12127 __Pyx_INCREF(__pyx_n_s_shutdown)( ((PyObject*)(__pyx_n_s_shutdown))->ob_refcnt++);
12128 __Pyx_GIVEREF(__pyx_n_s_shutdown);
12129 __Pyx_GOTREF(__pyx_v_self->state);
12130 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
12131 __pyx_v_self->state = __pyx_n_s_shutdown;
12132
12133 /* "rados.pyx":751
12134 * Rados.connect()ed object is no longer used.
12135 * """
12136 * if self.state != "shutdown": # <<<<<<<<<<<<<<
12137 * with nogil:
12138 * rados_shutdown(self.cluster)
12139 */
12140 }
12141
12142 /* "rados.pyx":746
12143 * Rados object in state %s." % self.state)
12144 *
12145 * def shutdown(self): # <<<<<<<<<<<<<<
12146 * """
12147 * Disconnects from the cluster. Call this explicitly when a
12148 */
12149
12150 /* function exit code */
12151 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
12152 goto __pyx_L0;
12153 __pyx_L1_error:;
12154 __Pyx_AddTraceback("rados.Rados.shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename);
12155 __pyx_r = NULL((void*)0);
12156 __pyx_L0:;
12157 __Pyx_XGIVEREF(__pyx_r);
12158 __Pyx_RefNannyFinishContext();
12159 return __pyx_r;
12160}
12161
12162/* "rados.pyx":756
12163 * self.state = "shutdown"
12164 *
12165 * def __enter__(self): # <<<<<<<<<<<<<<
12166 * self.connect()
12167 * return self
12168 */
12169
12170/* Python wrapper */
12171static PyObject *__pyx_pw_5rados_5Rados_9__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
12172static char __pyx_doc_5rados_5Rados_8__enter__[] = "Rados.__enter__(self)";
12173static PyObject *__pyx_pw_5rados_5Rados_9__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
12174 PyObject *__pyx_r = 0;
12175 __Pyx_RefNannyDeclarations
12176 __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0);
12177 __pyx_r = __pyx_pf_5rados_5Rados_8__enter__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
12178
12179 /* function exit code */
12180 __Pyx_RefNannyFinishContext();
12181 return __pyx_r;
12182}
12183
12184static PyObject *__pyx_pf_5rados_5Rados_8__enter__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
12185 PyObject *__pyx_r = NULL((void*)0);
12186 __Pyx_RefNannyDeclarations
12187 PyObject *__pyx_t_1 = NULL((void*)0);
12188 PyObject *__pyx_t_2 = NULL((void*)0);
12189 PyObject *__pyx_t_3 = NULL((void*)0);
12190 int __pyx_lineno = 0;
12191 const char *__pyx_filename = NULL((void*)0);
12192 int __pyx_clineno = 0;
12193 __Pyx_RefNannySetupContext("__enter__", 0);
12194
12195 /* "rados.pyx":757
12196 *
12197 * def __enter__(self):
12198 * self.connect() # <<<<<<<<<<<<<<
12199 * return self
12200 *
12201 */
12202 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_connect); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__12202; goto __pyx_L1_error;}
12203 __Pyx_GOTREF(__pyx_t_2);
12204 __pyx_t_3 = NULL((void*)0);
12205 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
12206 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
12207 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
12208 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
12209 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
12210 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
12211 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
12212 }
12213 }
12214 if (__pyx_t_3) {
12215 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__12215; goto __pyx_L1_error;}
12216 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
12217 } else {
12218 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__12218; goto __pyx_L1_error;}
12219 }
12220 __Pyx_GOTREF(__pyx_t_1);
12221 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
12222 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
12223
12224 /* "rados.pyx":758
12225 * def __enter__(self):
12226 * self.connect()
12227 * return self # <<<<<<<<<<<<<<
12228 *
12229 * def __exit__(self, type_, value, traceback):
12230 */
12231 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
12232 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
12233 __pyx_r = ((PyObject *)__pyx_v_self);
12234 goto __pyx_L0;
12235
12236 /* "rados.pyx":756
12237 * self.state = "shutdown"
12238 *
12239 * def __enter__(self): # <<<<<<<<<<<<<<
12240 * self.connect()
12241 * return self
12242 */
12243
12244 /* function exit code */
12245 __pyx_L1_error:;
12246 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
12247 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
12248 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
12249 __Pyx_AddTraceback("rados.Rados.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12250 __pyx_r = NULL((void*)0);
12251 __pyx_L0:;
12252 __Pyx_XGIVEREF(__pyx_r);
12253 __Pyx_RefNannyFinishContext();
12254 return __pyx_r;
12255}
12256
12257/* "rados.pyx":760
12258 * return self
12259 *
12260 * def __exit__(self, type_, value, traceback): # <<<<<<<<<<<<<<
12261 * self.shutdown()
12262 * return False
12263 */
12264
12265/* Python wrapper */
12266static PyObject *__pyx_pw_5rados_5Rados_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12267static char __pyx_doc_5rados_5Rados_10__exit__[] = "Rados.__exit__(self, type_, value, traceback)";
12268static PyObject *__pyx_pw_5rados_5Rados_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12269 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type_ = 0;
12270 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_value = 0;
12271 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback = 0;
12272 int __pyx_lineno = 0;
12273 const char *__pyx_filename = NULL((void*)0);
12274 int __pyx_clineno = 0;
12275 PyObject *__pyx_r = 0;
12276 __Pyx_RefNannyDeclarations
12277 __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
12278 {
12279 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_type,&__pyx_n_s_value,&__pyx_n_s_traceback,0};
12280 PyObject* values[3] = {0,0,0};
12281 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
12282 Py_ssize_t kw_args;
12283 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
12284 switch (pos_args) {
12285 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
12286 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
12287 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
12288 case 0: break;
12289 default: goto __pyx_L5_argtuple_error;
12290 }
12291 kw_args = PyDict_Size(__pyx_kwds);
12292 switch (pos_args) {
12293 case 0:
12294 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type
)) != 0), 1)
) kw_args--;
12295 else goto __pyx_L5_argtuple_error;
12296 case 1:
12297 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value
)) != 0), 1)
) kw_args--;
12298 else {
12299 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__12299; goto __pyx_L3_error;}
12300 }
12301 case 2:
12302 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_traceback)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_traceback
)) != 0), 1)
) kw_args--;
12303 else {
12304 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__12304; goto __pyx_L3_error;}
12305 }
12306 }
12307 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
12308 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__exit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__12308; goto __pyx_L3_error;}
12309 }
12310 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
12311 goto __pyx_L5_argtuple_error;
12312 } else {
12313 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
12314 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
12315 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
12316 }
12317 __pyx_v_type_ = values[0];
12318 __pyx_v_value = values[1];
12319 __pyx_v_traceback = values[2];
12320 }
12321 goto __pyx_L4_argument_unpacking_done;
12322 __pyx_L5_argtuple_error:;
12323 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__12323; goto __pyx_L3_error;}
12324 __pyx_L3_error:;
12325 __Pyx_AddTraceback("rados.Rados.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12326 __Pyx_RefNannyFinishContext();
12327 return NULL((void*)0);
12328 __pyx_L4_argument_unpacking_done:;
12329 __pyx_r = __pyx_pf_5rados_5Rados_10__exit__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_type_, __pyx_v_value, __pyx_v_traceback);
12330
12331 /* function exit code */
12332 __Pyx_RefNannyFinishContext();
12333 return __pyx_r;
12334}
12335
12336static PyObject *__pyx_pf_5rados_5Rados_10__exit__(struct __pyx_obj_5rados_Rados *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type_, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_value, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback) {
12337 PyObject *__pyx_r = NULL((void*)0);
12338 __Pyx_RefNannyDeclarations
12339 PyObject *__pyx_t_1 = NULL((void*)0);
12340 PyObject *__pyx_t_2 = NULL((void*)0);
12341 PyObject *__pyx_t_3 = NULL((void*)0);
12342 int __pyx_lineno = 0;
12343 const char *__pyx_filename = NULL((void*)0);
12344 int __pyx_clineno = 0;
12345 __Pyx_RefNannySetupContext("__exit__", 0);
12346
12347 /* "rados.pyx":761
12348 *
12349 * def __exit__(self, type_, value, traceback):
12350 * self.shutdown() # <<<<<<<<<<<<<<
12351 * return False
12352 *
12353 */
12354 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shutdown); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__12354; goto __pyx_L1_error;}
12355 __Pyx_GOTREF(__pyx_t_2);
12356 __pyx_t_3 = NULL((void*)0);
12357 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
12358 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
12359 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
12360 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
12361 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
12362 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
12363 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
12364 }
12365 }
12366 if (__pyx_t_3) {
12367 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__12367; goto __pyx_L1_error;}
12368 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
12369 } else {
12370 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__12370; goto __pyx_L1_error;}
12371 }
12372 __Pyx_GOTREF(__pyx_t_1);
12373 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
12374 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
12375
12376 /* "rados.pyx":762
12377 * def __exit__(self, type_, value, traceback):
12378 * self.shutdown()
12379 * return False # <<<<<<<<<<<<<<
12380 *
12381 * def version(self):
12382 */
12383 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
12384 __Pyx_INCREF(Py_False)( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++)
;
12385 __pyx_r = Py_False((PyObject *) &_Py_ZeroStruct);
12386 goto __pyx_L0;
12387
12388 /* "rados.pyx":760
12389 * return self
12390 *
12391 * def __exit__(self, type_, value, traceback): # <<<<<<<<<<<<<<
12392 * self.shutdown()
12393 * return False
12394 */
12395
12396 /* function exit code */
12397 __pyx_L1_error:;
12398 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
12399 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
12400 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
12401 __Pyx_AddTraceback("rados.Rados.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
12402 __pyx_r = NULL((void*)0);
12403 __pyx_L0:;
12404 __Pyx_XGIVEREF(__pyx_r);
12405 __Pyx_RefNannyFinishContext();
12406 return __pyx_r;
12407}
12408
12409/* "rados.pyx":764
12410 * return False
12411 *
12412 * def version(self): # <<<<<<<<<<<<<<
12413 * """
12414 * Get the version number of the ``librados`` C library.
12415 */
12416
12417/* Python wrapper */
12418static PyObject *__pyx_pw_5rados_5Rados_13version(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
12419static char __pyx_doc_5rados_5Rados_12version[] = "Rados.version(self)\n\n Get the version number of the ``librados`` C library.\n\n :returns: a tuple of ``(major, minor, extra)`` components of the\n librados version\n ";
12420static PyObject *__pyx_pw_5rados_5Rados_13version(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
12421 PyObject *__pyx_r = 0;
12422 __Pyx_RefNannyDeclarations
12423 __Pyx_RefNannySetupContext("version (wrapper)", 0);
12424 __pyx_r = __pyx_pf_5rados_5Rados_12version(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
12425
12426 /* function exit code */
12427 __Pyx_RefNannyFinishContext();
12428 return __pyx_r;
12429}
12430
12431static PyObject *__pyx_pf_5rados_5Rados_12version(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Rados *__pyx_v_self) {
12432 int __pyx_v_major;
12433 int __pyx_v_minor;
12434 int __pyx_v_extra;
12435 PyObject *__pyx_r = NULL((void*)0);
12436 __Pyx_RefNannyDeclarations
12437 PyObject *__pyx_t_1 = NULL((void*)0);
12438 PyObject *__pyx_t_2 = NULL((void*)0);
12439 PyObject *__pyx_t_3 = NULL((void*)0);
12440 PyObject *__pyx_t_4 = NULL((void*)0);
12441 PyObject *__pyx_t_5 = NULL((void*)0);
12442 PyObject *__pyx_t_6 = NULL((void*)0);
12443 Py_ssize_t __pyx_t_7;
12444 PyObject *__pyx_t_8 = NULL((void*)0);
12445 int __pyx_lineno = 0;
12446 const char *__pyx_filename = NULL((void*)0);
12447 int __pyx_clineno = 0;
12448 __Pyx_RefNannySetupContext("version", 0);
12449
12450 /* "rados.pyx":771
12451 * librados version
12452 * """
12453 * cdef int major = 0 # <<<<<<<<<<<<<<
12454 * cdef int minor = 0
12455 * cdef int extra = 0
12456 */
12457 __pyx_v_major = 0;
12458
12459 /* "rados.pyx":772
12460 * """
12461 * cdef int major = 0
12462 * cdef int minor = 0 # <<<<<<<<<<<<<<
12463 * cdef int extra = 0
12464 * with nogil:
12465 */
12466 __pyx_v_minor = 0;
12467
12468 /* "rados.pyx":773
12469 * cdef int major = 0
12470 * cdef int minor = 0
12471 * cdef int extra = 0 # <<<<<<<<<<<<<<
12472 * with nogil:
12473 * rados_version(&major, &minor, &extra)
12474 */
12475 __pyx_v_extra = 0;
12476
12477 /* "rados.pyx":774
12478 * cdef int minor = 0
12479 * cdef int extra = 0
12480 * with nogil: # <<<<<<<<<<<<<<
12481 * rados_version(&major, &minor, &extra)
12482 * return Version(major, minor, extra)
12483 */
12484 {
12485 #ifdef WITH_THREAD1
12486 PyThreadState *_save;
12487 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
12488 #endif
12489 /*try:*/ {
12490
12491 /* "rados.pyx":775
12492 * cdef int extra = 0
12493 * with nogil:
12494 * rados_version(&major, &minor, &extra) # <<<<<<<<<<<<<<
12495 * return Version(major, minor, extra)
12496 *
12497 */
12498 rados_version((&__pyx_v_major), (&__pyx_v_minor), (&__pyx_v_extra));
12499 }
12500
12501 /* "rados.pyx":774
12502 * cdef int minor = 0
12503 * cdef int extra = 0
12504 * with nogil: # <<<<<<<<<<<<<<
12505 * rados_version(&major, &minor, &extra)
12506 * return Version(major, minor, extra)
12507 */
12508 /*finally:*/ {
12509 /*normal exit:*/{
12510 #ifdef WITH_THREAD1
12511 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
12512 #endif
12513 goto __pyx_L5;
12514 }
12515 __pyx_L5:;
12516 }
12517 }
12518
12519 /* "rados.pyx":776
12520 * with nogil:
12521 * rados_version(&major, &minor, &extra)
12522 * return Version(major, minor, extra) # <<<<<<<<<<<<<<
12523 *
12524 * @requires(('path', opt(str_type)))
12525 */
12526 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
12527 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_Version); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__12527; goto __pyx_L1_error;}
12528 __Pyx_GOTREF(__pyx_t_2);
12529 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_major); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__12529; goto __pyx_L1_error;}
12530 __Pyx_GOTREF(__pyx_t_3);
12531 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_minor); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__12531; goto __pyx_L1_error;}
12532 __Pyx_GOTREF(__pyx_t_4);
12533 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_extra); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__12533; goto __pyx_L1_error;}
12534 __Pyx_GOTREF(__pyx_t_5);
12535 __pyx_t_6 = NULL((void*)0);
12536 __pyx_t_7 = 0;
12537 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
12538 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
12539 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
12540 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
12541 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
12542 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
12543 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
12544 __pyx_t_7 = 1;
12545 }
12546 }
12547 __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__12547; goto __pyx_L1_error;}
12548 __Pyx_GOTREF(__pyx_t_8);
12549 if (__pyx_t_6) {
12550 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
12551 }
12552 __Pyx_GIVEREF(__pyx_t_3);
12553 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_7] = __pyx_t_3
)
;
12554 __Pyx_GIVEREF(__pyx_t_4);
12555 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_7] = __pyx_t_4
)
;
12556 __Pyx_GIVEREF(__pyx_t_5);
12557 PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_5)(((PyTupleObject *)(__pyx_t_8))->ob_item[2+__pyx_t_7] = __pyx_t_5
)
;
12558 __pyx_t_3 = 0;
12559 __pyx_t_4 = 0;
12560 __pyx_t_5 = 0;
12561 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 776; __pyx_clineno = __LINE__12561; goto __pyx_L1_error;}
12562 __Pyx_GOTREF(__pyx_t_1);
12563 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
12564 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
12565 __pyx_r = __pyx_t_1;
12566 __pyx_t_1 = 0;
12567 goto __pyx_L0;
12568
12569 /* "rados.pyx":764
12570 * return False
12571 *
12572 * def version(self): # <<<<<<<<<<<<<<
12573 * """
12574 * Get the version number of the ``librados`` C library.
12575 */
12576
12577 /* function exit code */
12578 __pyx_L1_error:;
12579 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
12580 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
12581 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
12582 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
12583 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
12584 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
12585 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
12586 __Pyx_AddTraceback("rados.Rados.version", __pyx_clineno, __pyx_lineno, __pyx_filename);
12587 __pyx_r = NULL((void*)0);
12588 __pyx_L0:;
12589 __Pyx_XGIVEREF(__pyx_r);
12590 __Pyx_RefNannyFinishContext();
12591 return __pyx_r;
12592}
12593
12594/* "rados.pyx":779
12595 *
12596 * @requires(('path', opt(str_type)))
12597 * def conf_read_file(self, path=None): # <<<<<<<<<<<<<<
12598 * """
12599 * Configure the cluster handle using a Ceph config file.
12600 */
12601
12602/* Python wrapper */
12603static PyObject *__pyx_pw_5rados_5Rados_15conf_read_file(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
12604static char __pyx_doc_5rados_5Rados_14conf_read_file[] = "Rados.conf_read_file(self, path=None)\n\n Configure the cluster handle using a Ceph config file.\n\n :param path: path to the config file\n :type path: str\n ";
12605static PyObject *__pyx_pw_5rados_5Rados_15conf_read_file(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
12606 PyObject *__pyx_v_path = 0;
12607 int __pyx_lineno = 0;
12608 const char *__pyx_filename = NULL((void*)0);
12609 int __pyx_clineno = 0;
12610 PyObject *__pyx_r = 0;
12611 __Pyx_RefNannyDeclarations
12612 __Pyx_RefNannySetupContext("conf_read_file (wrapper)", 0);
12613 {
12614 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,0};
12615 PyObject* values[1] = {0};
12616 values[0] = ((PyObject *)Py_None(&_Py_NoneStruct));
12617 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
12618 Py_ssize_t kw_args;
12619 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
12620 switch (pos_args) {
12621 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
12622 case 0: break;
12623 default: goto __pyx_L5_argtuple_error;
12624 }
12625 kw_args = PyDict_Size(__pyx_kwds);
12626 switch (pos_args) {
12627 case 0:
12628 if (kw_args > 0) {
12629 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_path);
12630 if (value) { values[0] = value; kw_args--; }
12631 }
12632 }
12633 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
12634 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "conf_read_file") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "conf_read_file") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__12634; goto __pyx_L3_error;}
12635 }
12636 } else {
12637 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
12638 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
12639 case 0: break;
12640 default: goto __pyx_L5_argtuple_error;
12641 }
12642 }
12643 __pyx_v_path = values[0];
12644 }
12645 goto __pyx_L4_argument_unpacking_done;
12646 __pyx_L5_argtuple_error:;
12647 __Pyx_RaiseArgtupleInvalid("conf_read_file", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__12647; goto __pyx_L3_error;}
12648 __pyx_L3_error:;
12649 __Pyx_AddTraceback("rados.Rados.conf_read_file", __pyx_clineno, __pyx_lineno, __pyx_filename);
12650 __Pyx_RefNannyFinishContext();
12651 return NULL((void*)0);
12652 __pyx_L4_argument_unpacking_done:;
12653 __pyx_r = __pyx_pf_5rados_5Rados_14conf_read_file(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_path);
12654
12655 /* function exit code */
12656 __Pyx_RefNannyFinishContext();
12657 return __pyx_r;
12658}
12659
12660static PyObject *__pyx_pf_5rados_5Rados_14conf_read_file(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_path) {
12661 char *__pyx_v__path;
12662 int __pyx_v_ret;
12663 PyObject *__pyx_r = NULL((void*)0);
12664 __Pyx_RefNannyDeclarations
12665 PyObject *__pyx_t_1 = NULL((void*)0);
12666 PyObject *__pyx_t_2 = NULL((void*)0);
12667 PyObject *__pyx_t_3 = NULL((void*)0);
12668 PyObject *__pyx_t_4 = NULL((void*)0);
12669 char *__pyx_t_5;
12670 int __pyx_t_6;
12671 int __pyx_lineno = 0;
12672 const char *__pyx_filename = NULL((void*)0);
12673 int __pyx_clineno = 0;
12674 __Pyx_RefNannySetupContext("conf_read_file", 0);
12675 __Pyx_INCREF(__pyx_v_path)( ((PyObject*)(__pyx_v_path))->ob_refcnt++);
12676
12677 /* "rados.pyx":786
12678 * :type path: str
12679 * """
12680 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
12681 * path = cstr(path, 'path', opt=True)
12682 * cdef:
12683 */
12684 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__12684; goto __pyx_L1_error;}
12685 __Pyx_GOTREF(__pyx_t_1);
12686 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__15, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__12686; goto __pyx_L1_error;}
12687 __Pyx_GOTREF(__pyx_t_2);
12688 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
12689 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
12690
12691 /* "rados.pyx":787
12692 * """
12693 * self.require_state("configuring", "connected")
12694 * path = cstr(path, 'path', opt=True) # <<<<<<<<<<<<<<
12695 * cdef:
12696 * char *_path = opt_str(path)
12697 */
12698 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 787; __pyx_clineno = __LINE__12698; goto __pyx_L1_error;}
12699 __Pyx_GOTREF(__pyx_t_2);
12700 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 787; __pyx_clineno = __LINE__12700; goto __pyx_L1_error;}
12701 __Pyx_GOTREF(__pyx_t_1);
12702 __Pyx_INCREF(__pyx_v_path)( ((PyObject*)(__pyx_v_path))->ob_refcnt++);
12703 __Pyx_GIVEREF(__pyx_v_path);
12704 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_path)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_v_path
)
;
12705 __Pyx_INCREF(__pyx_n_s_path)( ((PyObject*)(__pyx_n_s_path))->ob_refcnt++);
12706 __Pyx_GIVEREF(__pyx_n_s_path);
12707 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_path)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_n_s_path
)
;
12708 __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 787; __pyx_clineno = __LINE__12708; goto __pyx_L1_error;}
12709 __Pyx_GOTREF(__pyx_t_3);
12710 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_opt, Py_True((PyObject *) &_Py_TrueStruct)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 787; __pyx_clineno = __LINE__12710; goto __pyx_L1_error;}
12711 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 787; __pyx_clineno = __LINE__12711; goto __pyx_L1_error;}
12712 __Pyx_GOTREF(__pyx_t_4);
12713 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
12714 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
12715 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
12716 __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_v_path; __pyx_v_path =
__pyx_t_4; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
12717 __pyx_t_4 = 0;
12718
12719 /* "rados.pyx":789
12720 * path = cstr(path, 'path', opt=True)
12721 * cdef:
12722 * char *_path = opt_str(path) # <<<<<<<<<<<<<<
12723 * with nogil:
12724 * ret = rados_conf_read_file(self.cluster, _path)
12725 */
12726 __pyx_t_5 = __pyx_f_5rados_opt_str(__pyx_v_path); if (unlikely(__pyx_t_5 == NULL && PyErr_Occurred())__builtin_expect(!!(__pyx_t_5 == ((void*)0) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__12726; goto __pyx_L1_error;}
12727 __pyx_v__path = __pyx_t_5;
12728
12729 /* "rados.pyx":790
12730 * cdef:
12731 * char *_path = opt_str(path)
12732 * with nogil: # <<<<<<<<<<<<<<
12733 * ret = rados_conf_read_file(self.cluster, _path)
12734 * if ret != 0:
12735 */
12736 {
12737 #ifdef WITH_THREAD1
12738 PyThreadState *_save;
12739 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
12740 #endif
12741 /*try:*/ {
12742
12743 /* "rados.pyx":791
12744 * char *_path = opt_str(path)
12745 * with nogil:
12746 * ret = rados_conf_read_file(self.cluster, _path) # <<<<<<<<<<<<<<
12747 * if ret != 0:
12748 * raise make_ex(ret, "error calling conf_read_file")
12749 */
12750 __pyx_v_ret = rados_conf_read_file(__pyx_v_self->cluster, __pyx_v__path);
12751 }
12752
12753 /* "rados.pyx":790
12754 * cdef:
12755 * char *_path = opt_str(path)
12756 * with nogil: # <<<<<<<<<<<<<<
12757 * ret = rados_conf_read_file(self.cluster, _path)
12758 * if ret != 0:
12759 */
12760 /*finally:*/ {
12761 /*normal exit:*/{
12762 #ifdef WITH_THREAD1
12763 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
12764 #endif
12765 goto __pyx_L5;
12766 }
12767 __pyx_L5:;
12768 }
12769 }
12770
12771 /* "rados.pyx":792
12772 * with nogil:
12773 * ret = rados_conf_read_file(self.cluster, _path)
12774 * if ret != 0: # <<<<<<<<<<<<<<
12775 * raise make_ex(ret, "error calling conf_read_file")
12776 *
12777 */
12778 __pyx_t_6 = ((__pyx_v_ret != 0) != 0);
12779 if (__pyx_t_6) {
12780
12781 /* "rados.pyx":793
12782 * ret = rados_conf_read_file(self.cluster, _path)
12783 * if ret != 0:
12784 * raise make_ex(ret, "error calling conf_read_file") # <<<<<<<<<<<<<<
12785 *
12786 * def conf_parse_argv(self, args):
12787 */
12788 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 793; __pyx_clineno = __LINE__12788; goto __pyx_L1_error;}
12789 __Pyx_GOTREF(__pyx_t_4);
12790 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_4, __pyx_kp_s_error_calling_conf_read_file); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 793; __pyx_clineno = __LINE__12790; goto __pyx_L1_error;}
12791 __Pyx_GOTREF(__pyx_t_3);
12792 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
12793 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
12794 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
12795 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 793; __pyx_clineno = __LINE__12795; goto __pyx_L1_error;}
12796
12797 /* "rados.pyx":792
12798 * with nogil:
12799 * ret = rados_conf_read_file(self.cluster, _path)
12800 * if ret != 0: # <<<<<<<<<<<<<<
12801 * raise make_ex(ret, "error calling conf_read_file")
12802 *
12803 */
12804 }
12805
12806 /* "rados.pyx":779
12807 *
12808 * @requires(('path', opt(str_type)))
12809 * def conf_read_file(self, path=None): # <<<<<<<<<<<<<<
12810 * """
12811 * Configure the cluster handle using a Ceph config file.
12812 */
12813
12814 /* function exit code */
12815 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
12816 goto __pyx_L0;
12817 __pyx_L1_error:;
12818 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
12819 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
12820 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
12821 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
12822 __Pyx_AddTraceback("rados.Rados.conf_read_file", __pyx_clineno, __pyx_lineno, __pyx_filename);
12823 __pyx_r = NULL((void*)0);
12824 __pyx_L0:;
12825 __Pyx_XDECREF(__pyx_v_path)do { if ((__pyx_v_path) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_path))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_path)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_path)))); } while (0); } while
(0)
;
12826 __Pyx_XGIVEREF(__pyx_r);
12827 __Pyx_RefNannyFinishContext();
12828 return __pyx_r;
12829}
12830
12831/* "rados.pyx":795
12832 * raise make_ex(ret, "error calling conf_read_file")
12833 *
12834 * def conf_parse_argv(self, args): # <<<<<<<<<<<<<<
12835 * """
12836 * Parse known arguments from args, and remove; returned
12837 */
12838
12839/* Python wrapper */
12840static PyObject *__pyx_pw_5rados_5Rados_17conf_parse_argv(PyObject *__pyx_v_self, PyObject *__pyx_v_args); /*proto*/
12841static char __pyx_doc_5rados_5Rados_16conf_parse_argv[] = "Rados.conf_parse_argv(self, args)\n\n Parse known arguments from args, and remove; returned\n args contain only those unknown to ceph\n ";
12842static PyObject *__pyx_pw_5rados_5Rados_17conf_parse_argv(PyObject *__pyx_v_self, PyObject *__pyx_v_args) {
12843 PyObject *__pyx_r = 0;
12844 __Pyx_RefNannyDeclarations
12845 __Pyx_RefNannySetupContext("conf_parse_argv (wrapper)", 0);
12846 __pyx_r = __pyx_pf_5rados_5Rados_16conf_parse_argv(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_args));
12847
12848 /* function exit code */
12849 __Pyx_RefNannyFinishContext();
12850 return __pyx_r;
12851}
12852
12853static PyObject *__pyx_pf_5rados_5Rados_16conf_parse_argv(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_args) {
12854 PyObject *__pyx_v_cargs = NULL((void*)0);
12855 int __pyx_v__argc;
12856 char **__pyx_v__argv;
12857 char **__pyx_v__remargv;
12858 int __pyx_v_ret;
12859 PyObject *__pyx_v_retargs = NULL((void*)0);
12860 char *__pyx_v_a;
12861 PyObject *__pyx_r = NULL((void*)0);
12862 __Pyx_RefNannyDeclarations
12863 PyObject *__pyx_t_1 = NULL((void*)0);
12864 PyObject *__pyx_t_2 = NULL((void*)0);
12865 int __pyx_t_3;
12866 int __pyx_t_4;
12867 PyObject *__pyx_t_5 = NULL((void*)0);
12868 Py_ssize_t __pyx_t_6;
12869 PyObject *__pyx_t_7 = NULL((void*)0);
12870 char **__pyx_t_8;
12871 char **__pyx_t_9;
12872 char **__pyx_t_10;
12873 PyObject *__pyx_t_11 = NULL((void*)0);
12874 PyObject *__pyx_t_12 = NULL((void*)0);
12875 int __pyx_t_13;
12876 int __pyx_t_14;
12877 char const *__pyx_t_15;
12878 PyObject *__pyx_t_16 = NULL((void*)0);
12879 PyObject *__pyx_t_17 = NULL((void*)0);
12880 PyObject *__pyx_t_18 = NULL((void*)0);
12881 PyObject *__pyx_t_19 = NULL((void*)0);
12882 PyObject *__pyx_t_20 = NULL((void*)0);
12883 PyObject *__pyx_t_21 = NULL((void*)0);
12884 int __pyx_lineno = 0;
12885 const char *__pyx_filename = NULL((void*)0);
12886 int __pyx_clineno = 0;
12887 __Pyx_RefNannySetupContext("conf_parse_argv", 0);
12888
12889 /* "rados.pyx":800
12890 * args contain only those unknown to ceph
12891 * """
12892 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
12893 * if not args:
12894 * return
12895 */
12896 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__12896; goto __pyx_L1_error;}
12897 __Pyx_GOTREF(__pyx_t_1);
12898 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__16, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__12898; goto __pyx_L1_error;}
12899 __Pyx_GOTREF(__pyx_t_2);
12900 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
12901 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
12902
12903 /* "rados.pyx":801
12904 * """
12905 * self.require_state("configuring", "connected")
12906 * if not args: # <<<<<<<<<<<<<<
12907 * return
12908 *
12909 */
12910 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; __pyx_clineno = __LINE__12910; goto __pyx_L1_error;}
12911 __pyx_t_4 = ((!__pyx_t_3) != 0);
12912 if (__pyx_t_4) {
12913
12914 /* "rados.pyx":802
12915 * self.require_state("configuring", "connected")
12916 * if not args:
12917 * return # <<<<<<<<<<<<<<
12918 *
12919 * cargs = cstr_list(args, 'args')
12920 */
12921 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
12922 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
12923 goto __pyx_L0;
12924
12925 /* "rados.pyx":801
12926 * """
12927 * self.require_state("configuring", "connected")
12928 * if not args: # <<<<<<<<<<<<<<
12929 * return
12930 *
12931 */
12932 }
12933
12934 /* "rados.pyx":804
12935 * return
12936 *
12937 * cargs = cstr_list(args, 'args') # <<<<<<<<<<<<<<
12938 * cdef:
12939 * int _argc = len(args)
12940 */
12941 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__12941; goto __pyx_L1_error;}
12942 __Pyx_GOTREF(__pyx_t_1);
12943 __pyx_t_5 = NULL((void*)0);
12944 __pyx_t_6 = 0;
12945 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
12946 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
12947 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
12948 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
12949 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
12950 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
12951 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
12952 __pyx_t_6 = 1;
12953 }
12954 }
12955 __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__12955; goto __pyx_L1_error;}
12956 __Pyx_GOTREF(__pyx_t_7);
12957 if (__pyx_t_5) {
12958 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
12959 }
12960 __Pyx_INCREF(__pyx_v_args)( ((PyObject*)(__pyx_v_args))->ob_refcnt++);
12961 __Pyx_GIVEREF(__pyx_v_args);
12962 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_args)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_v_args
)
;
12963 __Pyx_INCREF(__pyx_n_s_args)( ((PyObject*)(__pyx_n_s_args))->ob_refcnt++);
12964 __Pyx_GIVEREF(__pyx_n_s_args);
12965 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_s_args)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_n_s_args
)
;
12966 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__12966; goto __pyx_L1_error;}
12967 __Pyx_GOTREF(__pyx_t_2);
12968 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
12969 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
12970 __pyx_v_cargs = __pyx_t_2;
12971 __pyx_t_2 = 0;
12972
12973 /* "rados.pyx":806
12974 * cargs = cstr_list(args, 'args')
12975 * cdef:
12976 * int _argc = len(args) # <<<<<<<<<<<<<<
12977 * char **_argv = to_bytes_array(cargs)
12978 * char **_remargv = NULL
12979 */
12980 __pyx_t_6 = PyObject_LengthPyObject_Size(__pyx_v_args); if (unlikely(__pyx_t_6 == -1)__builtin_expect(!!(__pyx_t_6 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__12980; goto __pyx_L1_error;}
12981 __pyx_v__argc = __pyx_t_6;
12982
12983 /* "rados.pyx":807
12984 * cdef:
12985 * int _argc = len(args)
12986 * char **_argv = to_bytes_array(cargs) # <<<<<<<<<<<<<<
12987 * char **_remargv = NULL
12988 *
12989 */
12990 __pyx_v__argv = __pyx_f_5rados_to_bytes_array(__pyx_v_cargs);
12991
12992 /* "rados.pyx":808
12993 * int _argc = len(args)
12994 * char **_argv = to_bytes_array(cargs)
12995 * char **_remargv = NULL # <<<<<<<<<<<<<<
12996 *
12997 * try:
12998 */
12999 __pyx_v__remargv = NULL((void*)0);
13000
13001 /* "rados.pyx":810
13002 * char **_remargv = NULL
13003 *
13004 * try: # <<<<<<<<<<<<<<
13005 * _remargv = <char **>malloc(_argc * sizeof(char *))
13006 * with nogil:
13007 */
13008 /*try:*/ {
13009
13010 /* "rados.pyx":811
13011 *
13012 * try:
13013 * _remargv = <char **>malloc(_argc * sizeof(char *)) # <<<<<<<<<<<<<<
13014 * with nogil:
13015 * ret = rados_conf_parse_argv_remainder(self.cluster, _argc,
13016 */
13017 __pyx_v__remargv = ((char **)malloc((__pyx_v__argc * (sizeof(char *)))));
13018
13019 /* "rados.pyx":812
13020 * try:
13021 * _remargv = <char **>malloc(_argc * sizeof(char *))
13022 * with nogil: # <<<<<<<<<<<<<<
13023 * ret = rados_conf_parse_argv_remainder(self.cluster, _argc,
13024 * <const char**>_argv,
13025 */
13026 {
13027 #ifdef WITH_THREAD1
13028 PyThreadState *_save;
13029 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
13030 #endif
13031 /*try:*/ {
13032
13033 /* "rados.pyx":813
13034 * _remargv = <char **>malloc(_argc * sizeof(char *))
13035 * with nogil:
13036 * ret = rados_conf_parse_argv_remainder(self.cluster, _argc, # <<<<<<<<<<<<<<
13037 * <const char**>_argv,
13038 * <const char**>_remargv)
13039 */
13040 __pyx_v_ret = rados_conf_parse_argv_remainder(__pyx_v_self->cluster, __pyx_v__argc, ((char const **)__pyx_v__argv), ((char const **)__pyx_v__remargv));
13041 }
13042
13043 /* "rados.pyx":812
13044 * try:
13045 * _remargv = <char **>malloc(_argc * sizeof(char *))
13046 * with nogil: # <<<<<<<<<<<<<<
13047 * ret = rados_conf_parse_argv_remainder(self.cluster, _argc,
13048 * <const char**>_argv,
13049 */
13050 /*finally:*/ {
13051 /*normal exit:*/{
13052 #ifdef WITH_THREAD1
13053 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
13054 #endif
13055 goto __pyx_L9;
13056 }
13057 __pyx_L9:;
13058 }
13059 }
13060
13061 /* "rados.pyx":816
13062 * <const char**>_argv,
13063 * <const char**>_remargv)
13064 * if ret: # <<<<<<<<<<<<<<
13065 * raise make_ex(ret, "error calling conf_parse_argv_remainder")
13066 *
13067 */
13068 __pyx_t_4 = (__pyx_v_ret != 0);
13069 if (__pyx_t_4) {
13070
13071 /* "rados.pyx":817
13072 * <const char**>_remargv)
13073 * if ret:
13074 * raise make_ex(ret, "error calling conf_parse_argv_remainder") # <<<<<<<<<<<<<<
13075 *
13076 * # _remargv was allocated with fixed argc; collapse return
13077 */
13078 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; __pyx_clineno = __LINE__13078; goto __pyx_L5_error;}
13079 __Pyx_GOTREF(__pyx_t_2);
13080 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_calling_conf_parse_argv_re); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; __pyx_clineno = __LINE__13080; goto __pyx_L5_error;}
13081 __Pyx_GOTREF(__pyx_t_1);
13082 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
13083 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
13084 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13085 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 817; __pyx_clineno = __LINE__13085; goto __pyx_L5_error;}
13086
13087 /* "rados.pyx":816
13088 * <const char**>_argv,
13089 * <const char**>_remargv)
13090 * if ret: # <<<<<<<<<<<<<<
13091 * raise make_ex(ret, "error calling conf_parse_argv_remainder")
13092 *
13093 */
13094 }
13095
13096 /* "rados.pyx":821
13097 * # _remargv was allocated with fixed argc; collapse return
13098 * # list to eliminate any missing args
13099 * retargs = [decode_cstr(a) for a in _remargv[:_argc] # <<<<<<<<<<<<<<
13100 * if a != NULL]
13101 * self.parsed_args = args
13102 */
13103 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__13103; goto __pyx_L5_error;}
13104 __Pyx_GOTREF(__pyx_t_1);
13105 __pyx_t_9 = (__pyx_v__remargv + __pyx_v__argc);
13106 for (__pyx_t_10 = __pyx_v__remargv; __pyx_t_10 < __pyx_t_9; __pyx_t_10++) {
13107 __pyx_t_8 = __pyx_t_10;
13108 __pyx_v_a = (__pyx_t_8[0]);
13109
13110 /* "rados.pyx":822
13111 * # list to eliminate any missing args
13112 * retargs = [decode_cstr(a) for a in _remargv[:_argc]
13113 * if a != NULL] # <<<<<<<<<<<<<<
13114 * self.parsed_args = args
13115 * return retargs
13116 */
13117 __pyx_t_4 = ((__pyx_v_a != NULL((void*)0)) != 0);
13118 if (__pyx_t_4) {
13119
13120 /* "rados.pyx":821
13121 * # _remargv was allocated with fixed argc; collapse return
13122 * # list to eliminate any missing args
13123 * retargs = [decode_cstr(a) for a in _remargv[:_argc] # <<<<<<<<<<<<<<
13124 * if a != NULL]
13125 * self.parsed_args = args
13126 */
13127 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__13127; goto __pyx_L5_error;}
13128 __Pyx_GOTREF(__pyx_t_7);
13129 __pyx_t_5 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_a); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__13129; goto __pyx_L5_error;}
13130 __Pyx_GOTREF(__pyx_t_5);
13131 __pyx_t_11 = NULL((void*)0);
13132 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_7))__builtin_expect(!!(((__pyx_t_7)->ob_type == &PyMethod_Type
)), 0)
) {
13133 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_self);
13134 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
13135 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_func);
13136 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
13137 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
13138 __Pyx_DECREF_SET(__pyx_t_7, function)do { PyObject *tmp = (PyObject *) __pyx_t_7; __pyx_t_7 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
13139 }
13140 }
13141 if (!__pyx_t_11) {
13142 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__13142; goto __pyx_L5_error;}
13143 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
13144 __Pyx_GOTREF(__pyx_t_2);
13145 } else {
13146 __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__13146; goto __pyx_L5_error;}
13147 __Pyx_GOTREF(__pyx_t_12);
13148 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
13149 __Pyx_GIVEREF(__pyx_t_5);
13150 PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_12))->ob_item[0+1] = __pyx_t_5
)
;
13151 __pyx_t_5 = 0;
13152 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__13152; goto __pyx_L5_error;}
13153 __Pyx_GOTREF(__pyx_t_2);
13154 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
13155 }
13156 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
13157 if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_1, (PyObject
*)__pyx_t_2)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__13157; goto __pyx_L5_error;}
13158 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
13159
13160 /* "rados.pyx":822
13161 * # list to eliminate any missing args
13162 * retargs = [decode_cstr(a) for a in _remargv[:_argc]
13163 * if a != NULL] # <<<<<<<<<<<<<<
13164 * self.parsed_args = args
13165 * return retargs
13166 */
13167 }
13168 }
13169 __pyx_v_retargs = ((PyObject*)__pyx_t_1);
13170 __pyx_t_1 = 0;
13171
13172 /* "rados.pyx":823
13173 * retargs = [decode_cstr(a) for a in _remargv[:_argc]
13174 * if a != NULL]
13175 * self.parsed_args = args # <<<<<<<<<<<<<<
13176 * return retargs
13177 * finally:
13178 */
13179 __Pyx_INCREF(__pyx_v_args)( ((PyObject*)(__pyx_v_args))->ob_refcnt++);
13180 __Pyx_GIVEREF(__pyx_v_args);
13181 __Pyx_GOTREF(__pyx_v_self->parsed_args);
13182 __Pyx_DECREF(__pyx_v_self->parsed_args)do { if ( --((PyObject*)(__pyx_v_self->parsed_args))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
parsed_args)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->parsed_args)))); } while (0)
;
13183 __pyx_v_self->parsed_args = __pyx_v_args;
13184
13185 /* "rados.pyx":824
13186 * if a != NULL]
13187 * self.parsed_args = args
13188 * return retargs # <<<<<<<<<<<<<<
13189 * finally:
13190 * free(_argv)
13191 */
13192 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
13193 __Pyx_INCREF(__pyx_v_retargs)( ((PyObject*)(__pyx_v_retargs))->ob_refcnt++);
13194 __pyx_r = __pyx_v_retargs;
13195 goto __pyx_L4_return;
13196 }
13197
13198 /* "rados.pyx":826
13199 * return retargs
13200 * finally:
13201 * free(_argv) # <<<<<<<<<<<<<<
13202 * free(_remargv)
13203 *
13204 */
13205 /*finally:*/ {
13206 /*exception exit:*/{
13207 __pyx_L5_error:;
13208 __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
13209 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
; __pyx_t_11 = 0;
13210 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
13211 __Pyx_XDECREF(__pyx_t_12)do { if ((__pyx_t_12) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_12))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_12)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_12)))); } while (0); } while (0)
; __pyx_t_12 = 0;
13212 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
13213 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
13214 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
13215 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
13216 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_16, &
__pyx_t_17, &__pyx_t_18) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
13217 __Pyx_XGOTREF(__pyx_t_16);
13218 __Pyx_XGOTREF(__pyx_t_17);
13219 __Pyx_XGOTREF(__pyx_t_18);
13220 __Pyx_XGOTREF(__pyx_t_19);
13221 __Pyx_XGOTREF(__pyx_t_20);
13222 __Pyx_XGOTREF(__pyx_t_21);
13223 __pyx_t_13 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
13224 {
13225 free(__pyx_v__argv);
13226
13227 /* "rados.pyx":827
13228 * finally:
13229 * free(_argv)
13230 * free(_remargv) # <<<<<<<<<<<<<<
13231 *
13232 * def conf_parse_env(self, var='CEPH_ARGS'):
13233 */
13234 free(__pyx_v__remargv);
13235 }
13236 if (PY_MAJOR_VERSION2 >= 3) {
13237 __Pyx_XGIVEREF(__pyx_t_19);
13238 __Pyx_XGIVEREF(__pyx_t_20);
13239 __Pyx_XGIVEREF(__pyx_t_21);
13240 __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
13241 }
13242 __Pyx_XGIVEREF(__pyx_t_16);
13243 __Pyx_XGIVEREF(__pyx_t_17);
13244 __Pyx_XGIVEREF(__pyx_t_18);
13245 __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
13246 __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
13247 __pyx_lineno = __pyx_t_13; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
13248 goto __pyx_L1_error;
13249 }
13250 __pyx_L4_return: {
13251 __pyx_t_21 = __pyx_r;
13252 __pyx_r = 0;
13253
13254 /* "rados.pyx":826
13255 * return retargs
13256 * finally:
13257 * free(_argv) # <<<<<<<<<<<<<<
13258 * free(_remargv)
13259 *
13260 */
13261 free(__pyx_v__argv);
13262
13263 /* "rados.pyx":827
13264 * finally:
13265 * free(_argv)
13266 * free(_remargv) # <<<<<<<<<<<<<<
13267 *
13268 * def conf_parse_env(self, var='CEPH_ARGS'):
13269 */
13270 free(__pyx_v__remargv);
13271 __pyx_r = __pyx_t_21;
13272 __pyx_t_21 = 0;
13273 goto __pyx_L0;
13274 }
13275 }
13276
13277 /* "rados.pyx":795
13278 * raise make_ex(ret, "error calling conf_read_file")
13279 *
13280 * def conf_parse_argv(self, args): # <<<<<<<<<<<<<<
13281 * """
13282 * Parse known arguments from args, and remove; returned
13283 */
13284
13285 /* function exit code */
13286 __pyx_L1_error:;
13287 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
13288 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
13289 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
13290 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
13291 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
;
13292 __Pyx_XDECREF(__pyx_t_12)do { if ((__pyx_t_12) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_12))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_12)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_12)))); } while (0); } while (0)
;
13293 __Pyx_AddTraceback("rados.Rados.conf_parse_argv", __pyx_clineno, __pyx_lineno, __pyx_filename);
13294 __pyx_r = NULL((void*)0);
13295 __pyx_L0:;
13296 __Pyx_XDECREF(__pyx_v_cargs)do { if ((__pyx_v_cargs) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_cargs))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_cargs)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_cargs)))); } while (0); }
while (0)
;
13297 __Pyx_XDECREF(__pyx_v_retargs)do { if ((__pyx_v_retargs) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_retargs))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_retargs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_retargs)))); } while
(0); } while (0)
;
13298 __Pyx_XGIVEREF(__pyx_r);
13299 __Pyx_RefNannyFinishContext();
13300 return __pyx_r;
13301}
13302
13303/* "rados.pyx":829
13304 * free(_remargv)
13305 *
13306 * def conf_parse_env(self, var='CEPH_ARGS'): # <<<<<<<<<<<<<<
13307 * """
13308 * Parse known arguments from an environment variable, normally
13309 */
13310
13311/* Python wrapper */
13312static PyObject *__pyx_pw_5rados_5Rados_19conf_parse_env(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
13313static char __pyx_doc_5rados_5Rados_18conf_parse_env[] = "Rados.conf_parse_env(self, var='CEPH_ARGS')\n\n Parse known arguments from an environment variable, normally\n CEPH_ARGS.\n ";
13314static PyObject *__pyx_pw_5rados_5Rados_19conf_parse_env(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
13315 PyObject *__pyx_v_var = 0;
13316 int __pyx_lineno = 0;
13317 const char *__pyx_filename = NULL((void*)0);
13318 int __pyx_clineno = 0;
13319 PyObject *__pyx_r = 0;
13320 __Pyx_RefNannyDeclarations
13321 __Pyx_RefNannySetupContext("conf_parse_env (wrapper)", 0);
13322 {
13323 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_var,0};
13324 PyObject* values[1] = {0};
13325 values[0] = ((PyObject *)__pyx_n_s_CEPH_ARGS);
13326 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
13327 Py_ssize_t kw_args;
13328 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
13329 switch (pos_args) {
13330 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
13331 case 0: break;
13332 default: goto __pyx_L5_argtuple_error;
13333 }
13334 kw_args = PyDict_Size(__pyx_kwds);
13335 switch (pos_args) {
13336 case 0:
13337 if (kw_args > 0) {
13338 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_var);
13339 if (value) { values[0] = value; kw_args--; }
13340 }
13341 }
13342 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
13343 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "conf_parse_env") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "conf_parse_env") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__13343; goto __pyx_L3_error;}
13344 }
13345 } else {
13346 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
13347 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
13348 case 0: break;
13349 default: goto __pyx_L5_argtuple_error;
13350 }
13351 }
13352 __pyx_v_var = values[0];
13353 }
13354 goto __pyx_L4_argument_unpacking_done;
13355 __pyx_L5_argtuple_error:;
13356 __Pyx_RaiseArgtupleInvalid("conf_parse_env", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__13356; goto __pyx_L3_error;}
13357 __pyx_L3_error:;
13358 __Pyx_AddTraceback("rados.Rados.conf_parse_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
13359 __Pyx_RefNannyFinishContext();
13360 return NULL((void*)0);
13361 __pyx_L4_argument_unpacking_done:;
13362 __pyx_r = __pyx_pf_5rados_5Rados_18conf_parse_env(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_var);
13363
13364 /* function exit code */
13365 __Pyx_RefNannyFinishContext();
13366 return __pyx_r;
13367}
13368
13369static PyObject *__pyx_pf_5rados_5Rados_18conf_parse_env(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_var) {
13370 char *__pyx_v__var;
13371 int __pyx_v_ret;
13372 PyObject *__pyx_r = NULL((void*)0);
13373 __Pyx_RefNannyDeclarations
13374 PyObject *__pyx_t_1 = NULL((void*)0);
13375 PyObject *__pyx_t_2 = NULL((void*)0);
13376 int __pyx_t_3;
13377 int __pyx_t_4;
13378 PyObject *__pyx_t_5 = NULL((void*)0);
13379 Py_ssize_t __pyx_t_6;
13380 PyObject *__pyx_t_7 = NULL((void*)0);
13381 char *__pyx_t_8;
13382 int __pyx_lineno = 0;
13383 const char *__pyx_filename = NULL((void*)0);
13384 int __pyx_clineno = 0;
13385 __Pyx_RefNannySetupContext("conf_parse_env", 0);
13386 __Pyx_INCREF(__pyx_v_var)( ((PyObject*)(__pyx_v_var))->ob_refcnt++);
13387
13388 /* "rados.pyx":834
13389 * CEPH_ARGS.
13390 * """
13391 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
13392 * if not var:
13393 * return
13394 */
13395 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__13395; goto __pyx_L1_error;}
13396 __Pyx_GOTREF(__pyx_t_1);
13397 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__17, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__13397; goto __pyx_L1_error;}
13398 __Pyx_GOTREF(__pyx_t_2);
13399 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13400 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
13401
13402 /* "rados.pyx":835
13403 * """
13404 * self.require_state("configuring", "connected")
13405 * if not var: # <<<<<<<<<<<<<<
13406 * return
13407 *
13408 */
13409 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_var); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__13409; goto __pyx_L1_error;}
13410 __pyx_t_4 = ((!__pyx_t_3) != 0);
13411 if (__pyx_t_4) {
13412
13413 /* "rados.pyx":836
13414 * self.require_state("configuring", "connected")
13415 * if not var:
13416 * return # <<<<<<<<<<<<<<
13417 *
13418 * var = cstr(var, 'var')
13419 */
13420 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
13421 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
13422 goto __pyx_L0;
13423
13424 /* "rados.pyx":835
13425 * """
13426 * self.require_state("configuring", "connected")
13427 * if not var: # <<<<<<<<<<<<<<
13428 * return
13429 *
13430 */
13431 }
13432
13433 /* "rados.pyx":838
13434 * return
13435 *
13436 * var = cstr(var, 'var') # <<<<<<<<<<<<<<
13437 * cdef:
13438 * char *_var = var
13439 */
13440 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; __pyx_clineno = __LINE__13440; goto __pyx_L1_error;}
13441 __Pyx_GOTREF(__pyx_t_1);
13442 __pyx_t_5 = NULL((void*)0);
13443 __pyx_t_6 = 0;
13444 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
13445 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
13446 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
13447 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
13448 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
13449 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
13450 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
13451 __pyx_t_6 = 1;
13452 }
13453 }
13454 __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; __pyx_clineno = __LINE__13454; goto __pyx_L1_error;}
13455 __Pyx_GOTREF(__pyx_t_7);
13456 if (__pyx_t_5) {
13457 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
13458 }
13459 __Pyx_INCREF(__pyx_v_var)( ((PyObject*)(__pyx_v_var))->ob_refcnt++);
13460 __Pyx_GIVEREF(__pyx_v_var);
13461 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_var)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_v_var
)
;
13462 __Pyx_INCREF(__pyx_n_s_var)( ((PyObject*)(__pyx_n_s_var))->ob_refcnt++);
13463 __Pyx_GIVEREF(__pyx_n_s_var);
13464 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_s_var)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_n_s_var
)
;
13465 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; __pyx_clineno = __LINE__13465; goto __pyx_L1_error;}
13466 __Pyx_GOTREF(__pyx_t_2);
13467 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
13468 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13469 __Pyx_DECREF_SET(__pyx_v_var, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_var; __pyx_v_var = __pyx_t_2
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
13470 __pyx_t_2 = 0;
13471
13472 /* "rados.pyx":840
13473 * var = cstr(var, 'var')
13474 * cdef:
13475 * char *_var = var # <<<<<<<<<<<<<<
13476 * with nogil:
13477 * ret = rados_conf_parse_env(self.cluster, _var)
13478 */
13479 __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_var); if (unlikely((!__pyx_t_8) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_8) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; __pyx_clineno = __LINE__13479; goto __pyx_L1_error;}
13480 __pyx_v__var = __pyx_t_8;
13481
13482 /* "rados.pyx":841
13483 * cdef:
13484 * char *_var = var
13485 * with nogil: # <<<<<<<<<<<<<<
13486 * ret = rados_conf_parse_env(self.cluster, _var)
13487 * if ret != 0:
13488 */
13489 {
13490 #ifdef WITH_THREAD1
13491 PyThreadState *_save;
13492 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
13493 #endif
13494 /*try:*/ {
13495
13496 /* "rados.pyx":842
13497 * char *_var = var
13498 * with nogil:
13499 * ret = rados_conf_parse_env(self.cluster, _var) # <<<<<<<<<<<<<<
13500 * if ret != 0:
13501 * raise make_ex(ret, "error calling conf_parse_env")
13502 */
13503 __pyx_v_ret = rados_conf_parse_env(__pyx_v_self->cluster, __pyx_v__var);
13504 }
13505
13506 /* "rados.pyx":841
13507 * cdef:
13508 * char *_var = var
13509 * with nogil: # <<<<<<<<<<<<<<
13510 * ret = rados_conf_parse_env(self.cluster, _var)
13511 * if ret != 0:
13512 */
13513 /*finally:*/ {
13514 /*normal exit:*/{
13515 #ifdef WITH_THREAD1
13516 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
13517 #endif
13518 goto __pyx_L6;
13519 }
13520 __pyx_L6:;
13521 }
13522 }
13523
13524 /* "rados.pyx":843
13525 * with nogil:
13526 * ret = rados_conf_parse_env(self.cluster, _var)
13527 * if ret != 0: # <<<<<<<<<<<<<<
13528 * raise make_ex(ret, "error calling conf_parse_env")
13529 *
13530 */
13531 __pyx_t_4 = ((__pyx_v_ret != 0) != 0);
13532 if (__pyx_t_4) {
13533
13534 /* "rados.pyx":844
13535 * ret = rados_conf_parse_env(self.cluster, _var)
13536 * if ret != 0:
13537 * raise make_ex(ret, "error calling conf_parse_env") # <<<<<<<<<<<<<<
13538 *
13539 * @requires(('option', str_type))
13540 */
13541 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__13541; goto __pyx_L1_error;}
13542 __Pyx_GOTREF(__pyx_t_2);
13543 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_calling_conf_parse_env); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__13543; goto __pyx_L1_error;}
13544 __Pyx_GOTREF(__pyx_t_1);
13545 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
13546 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
13547 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13548 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__13548; goto __pyx_L1_error;}
13549
13550 /* "rados.pyx":843
13551 * with nogil:
13552 * ret = rados_conf_parse_env(self.cluster, _var)
13553 * if ret != 0: # <<<<<<<<<<<<<<
13554 * raise make_ex(ret, "error calling conf_parse_env")
13555 *
13556 */
13557 }
13558
13559 /* "rados.pyx":829
13560 * free(_remargv)
13561 *
13562 * def conf_parse_env(self, var='CEPH_ARGS'): # <<<<<<<<<<<<<<
13563 * """
13564 * Parse known arguments from an environment variable, normally
13565 */
13566
13567 /* function exit code */
13568 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
13569 goto __pyx_L0;
13570 __pyx_L1_error:;
13571 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
13572 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
13573 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
13574 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
13575 __Pyx_AddTraceback("rados.Rados.conf_parse_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
13576 __pyx_r = NULL((void*)0);
13577 __pyx_L0:;
13578 __Pyx_XDECREF(__pyx_v_var)do { if ((__pyx_v_var) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_var))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_var)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_var)))); } while (0); } while (0)
;
13579 __Pyx_XGIVEREF(__pyx_r);
13580 __Pyx_RefNannyFinishContext();
13581 return __pyx_r;
13582}
13583
13584/* "rados.pyx":847
13585 *
13586 * @requires(('option', str_type))
13587 * def conf_get(self, option): # <<<<<<<<<<<<<<
13588 * """
13589 * Get the value of a configuration option
13590 */
13591
13592/* Python wrapper */
13593static PyObject *__pyx_pw_5rados_5Rados_21conf_get(PyObject *__pyx_v_self, PyObject *__pyx_v_option); /*proto*/
13594static char __pyx_doc_5rados_5Rados_20conf_get[] = "Rados.conf_get(self, option)\n\n Get the value of a configuration option\n\n :param option: which option to read\n :type option: str\n\n :returns: str - value of the option or None\n :raises: :class:`TypeError`\n ";
13595static PyObject *__pyx_pw_5rados_5Rados_21conf_get(PyObject *__pyx_v_self, PyObject *__pyx_v_option) {
13596 PyObject *__pyx_r = 0;
13597 __Pyx_RefNannyDeclarations
13598 __Pyx_RefNannySetupContext("conf_get (wrapper)", 0);
13599 __pyx_r = __pyx_pf_5rados_5Rados_20conf_get(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_option));
13600
13601 /* function exit code */
13602 __Pyx_RefNannyFinishContext();
13603 return __pyx_r;
13604}
13605
13606static PyObject *__pyx_pf_5rados_5Rados_20conf_get(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_option) {
13607 char *__pyx_v__option;
13608 size_t __pyx_v_length;
13609 char *__pyx_v_ret_buf;
13610 int __pyx_v_ret;
13611 PyObject *__pyx_r = NULL((void*)0);
13612 __Pyx_RefNannyDeclarations
13613 PyObject *__pyx_t_1 = NULL((void*)0);
13614 PyObject *__pyx_t_2 = NULL((void*)0);
13615 PyObject *__pyx_t_3 = NULL((void*)0);
13616 Py_ssize_t __pyx_t_4;
13617 PyObject *__pyx_t_5 = NULL((void*)0);
13618 char *__pyx_t_6;
13619 void *__pyx_t_7;
13620 int __pyx_t_8;
13621 PyObject *__pyx_t_9 = NULL((void*)0);
13622 int __pyx_t_10;
13623 int __pyx_t_11;
13624 char const *__pyx_t_12;
13625 PyObject *__pyx_t_13 = NULL((void*)0);
13626 PyObject *__pyx_t_14 = NULL((void*)0);
13627 PyObject *__pyx_t_15 = NULL((void*)0);
13628 PyObject *__pyx_t_16 = NULL((void*)0);
13629 PyObject *__pyx_t_17 = NULL((void*)0);
13630 PyObject *__pyx_t_18 = NULL((void*)0);
13631 int __pyx_lineno = 0;
13632 const char *__pyx_filename = NULL((void*)0);
13633 int __pyx_clineno = 0;
13634 __Pyx_RefNannySetupContext("conf_get", 0);
13635 __Pyx_INCREF(__pyx_v_option)( ((PyObject*)(__pyx_v_option))->ob_refcnt++);
13636
13637 /* "rados.pyx":857
13638 * :raises: :class:`TypeError`
13639 * """
13640 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
13641 * option = cstr(option, 'option')
13642 * cdef:
13643 */
13644 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__13644; goto __pyx_L1_error;}
13645 __Pyx_GOTREF(__pyx_t_1);
13646 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__18, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__13646; goto __pyx_L1_error;}
13647 __Pyx_GOTREF(__pyx_t_2);
13648 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13649 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
13650
13651 /* "rados.pyx":858
13652 * """
13653 * self.require_state("configuring", "connected")
13654 * option = cstr(option, 'option') # <<<<<<<<<<<<<<
13655 * cdef:
13656 * char *_option = option
13657 */
13658 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__13658; goto __pyx_L1_error;}
13659 __Pyx_GOTREF(__pyx_t_1);
13660 __pyx_t_3 = NULL((void*)0);
13661 __pyx_t_4 = 0;
13662 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
13663 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
13664 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
13665 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
13666 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
13667 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
13668 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
13669 __pyx_t_4 = 1;
13670 }
13671 }
13672 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__13672; goto __pyx_L1_error;}
13673 __Pyx_GOTREF(__pyx_t_5);
13674 if (__pyx_t_3) {
13675 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
13676 }
13677 __Pyx_INCREF(__pyx_v_option)( ((PyObject*)(__pyx_v_option))->ob_refcnt++);
13678 __Pyx_GIVEREF(__pyx_v_option);
13679 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_option)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_option
)
;
13680 __Pyx_INCREF(__pyx_n_s_option)( ((PyObject*)(__pyx_n_s_option))->ob_refcnt++);
13681 __Pyx_GIVEREF(__pyx_n_s_option);
13682 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_option)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_option
)
;
13683 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__13683; goto __pyx_L1_error;}
13684 __Pyx_GOTREF(__pyx_t_2);
13685 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
13686 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13687 __Pyx_DECREF_SET(__pyx_v_option, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_option; __pyx_v_option
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
13688 __pyx_t_2 = 0;
13689
13690 /* "rados.pyx":860
13691 * option = cstr(option, 'option')
13692 * cdef:
13693 * char *_option = option # <<<<<<<<<<<<<<
13694 * size_t length = 20
13695 * char *ret_buf = NULL
13696 */
13697 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_option); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 860; __pyx_clineno = __LINE__13697; goto __pyx_L1_error;}
13698 __pyx_v__option = __pyx_t_6;
13699
13700 /* "rados.pyx":861
13701 * cdef:
13702 * char *_option = option
13703 * size_t length = 20 # <<<<<<<<<<<<<<
13704 * char *ret_buf = NULL
13705 *
13706 */
13707 __pyx_v_length = 20;
13708
13709 /* "rados.pyx":862
13710 * char *_option = option
13711 * size_t length = 20
13712 * char *ret_buf = NULL # <<<<<<<<<<<<<<
13713 *
13714 * try:
13715 */
13716 __pyx_v_ret_buf = NULL((void*)0);
13717
13718 /* "rados.pyx":864
13719 * char *ret_buf = NULL
13720 *
13721 * try: # <<<<<<<<<<<<<<
13722 * while True:
13723 * ret_buf = <char *>realloc_chk(ret_buf, length)
13724 */
13725 /*try:*/ {
13726
13727 /* "rados.pyx":865
13728 *
13729 * try:
13730 * while True: # <<<<<<<<<<<<<<
13731 * ret_buf = <char *>realloc_chk(ret_buf, length)
13732 * with nogil:
13733 */
13734 while (1) {
13735
13736 /* "rados.pyx":866
13737 * try:
13738 * while True:
13739 * ret_buf = <char *>realloc_chk(ret_buf, length) # <<<<<<<<<<<<<<
13740 * with nogil:
13741 * ret = rados_conf_get(self.cluster, _option, ret_buf, length)
13742 */
13743 __pyx_t_7 = __pyx_f_5rados_realloc_chk(__pyx_v_ret_buf, __pyx_v_length); if (unlikely(__pyx_t_7 == NULL)__builtin_expect(!!(__pyx_t_7 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 866; __pyx_clineno = __LINE__13743; goto __pyx_L4_error;}
13744 __pyx_v_ret_buf = ((char *)__pyx_t_7);
13745
13746 /* "rados.pyx":867
13747 * while True:
13748 * ret_buf = <char *>realloc_chk(ret_buf, length)
13749 * with nogil: # <<<<<<<<<<<<<<
13750 * ret = rados_conf_get(self.cluster, _option, ret_buf, length)
13751 * if ret == 0:
13752 */
13753 {
13754 #ifdef WITH_THREAD1
13755 PyThreadState *_save;
13756 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
13757 #endif
13758 /*try:*/ {
13759
13760 /* "rados.pyx":868
13761 * ret_buf = <char *>realloc_chk(ret_buf, length)
13762 * with nogil:
13763 * ret = rados_conf_get(self.cluster, _option, ret_buf, length) # <<<<<<<<<<<<<<
13764 * if ret == 0:
13765 * return decode_cstr(ret_buf)
13766 */
13767 __pyx_v_ret = rados_conf_get(__pyx_v_self->cluster, __pyx_v__option, __pyx_v_ret_buf, __pyx_v_length);
13768 }
13769
13770 /* "rados.pyx":867
13771 * while True:
13772 * ret_buf = <char *>realloc_chk(ret_buf, length)
13773 * with nogil: # <<<<<<<<<<<<<<
13774 * ret = rados_conf_get(self.cluster, _option, ret_buf, length)
13775 * if ret == 0:
13776 */
13777 /*finally:*/ {
13778 /*normal exit:*/{
13779 #ifdef WITH_THREAD1
13780 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
13781 #endif
13782 goto __pyx_L12;
13783 }
13784 __pyx_L12:;
13785 }
13786 }
13787
13788 /* "rados.pyx":869
13789 * with nogil:
13790 * ret = rados_conf_get(self.cluster, _option, ret_buf, length)
13791 * if ret == 0: # <<<<<<<<<<<<<<
13792 * return decode_cstr(ret_buf)
13793 * elif ret == -errno.ENAMETOOLONG:
13794 */
13795 __pyx_t_8 = ((__pyx_v_ret == 0) != 0);
13796 if (__pyx_t_8) {
13797
13798 /* "rados.pyx":870
13799 * ret = rados_conf_get(self.cluster, _option, ret_buf, length)
13800 * if ret == 0:
13801 * return decode_cstr(ret_buf) # <<<<<<<<<<<<<<
13802 * elif ret == -errno.ENAMETOOLONG:
13803 * length = length * 2
13804 */
13805 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
13806 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__13806; goto __pyx_L4_error;}
13807 __Pyx_GOTREF(__pyx_t_1);
13808 __pyx_t_5 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_ret_buf); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__13808; goto __pyx_L4_error;}
13809 __Pyx_GOTREF(__pyx_t_5);
13810 __pyx_t_3 = NULL((void*)0);
13811 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
13812 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
13813 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
13814 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
13815 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
13816 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
13817 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
13818 }
13819 }
13820 if (!__pyx_t_3) {
13821 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__13821; goto __pyx_L4_error;}
13822 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
13823 __Pyx_GOTREF(__pyx_t_2);
13824 } else {
13825 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__13825; goto __pyx_L4_error;}
13826 __Pyx_GOTREF(__pyx_t_9);
13827 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
13828 __Pyx_GIVEREF(__pyx_t_5);
13829 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_5);
13830 __pyx_t_5 = 0;
13831 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__13831; goto __pyx_L4_error;}
13832 __Pyx_GOTREF(__pyx_t_2);
13833 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
13834 }
13835 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13836 __pyx_r = __pyx_t_2;
13837 __pyx_t_2 = 0;
13838 goto __pyx_L3_return;
13839
13840 /* "rados.pyx":869
13841 * with nogil:
13842 * ret = rados_conf_get(self.cluster, _option, ret_buf, length)
13843 * if ret == 0: # <<<<<<<<<<<<<<
13844 * return decode_cstr(ret_buf)
13845 * elif ret == -errno.ENAMETOOLONG:
13846 */
13847 }
13848
13849 /* "rados.pyx":871
13850 * if ret == 0:
13851 * return decode_cstr(ret_buf)
13852 * elif ret == -errno.ENAMETOOLONG: # <<<<<<<<<<<<<<
13853 * length = length * 2
13854 * elif ret == -errno.ENOENT:
13855 */
13856 __pyx_t_8 = ((__pyx_v_ret == (-ENAMETOOLONG36)) != 0);
13857 if (__pyx_t_8) {
13858
13859 /* "rados.pyx":872
13860 * return decode_cstr(ret_buf)
13861 * elif ret == -errno.ENAMETOOLONG:
13862 * length = length * 2 # <<<<<<<<<<<<<<
13863 * elif ret == -errno.ENOENT:
13864 * return None
13865 */
13866 __pyx_v_length = (__pyx_v_length * 2);
13867
13868 /* "rados.pyx":871
13869 * if ret == 0:
13870 * return decode_cstr(ret_buf)
13871 * elif ret == -errno.ENAMETOOLONG: # <<<<<<<<<<<<<<
13872 * length = length * 2
13873 * elif ret == -errno.ENOENT:
13874 */
13875 goto __pyx_L13;
13876 }
13877
13878 /* "rados.pyx":873
13879 * elif ret == -errno.ENAMETOOLONG:
13880 * length = length * 2
13881 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
13882 * return None
13883 * else:
13884 */
13885 __pyx_t_8 = ((__pyx_v_ret == (-ENOENT2)) != 0);
13886 if (__pyx_t_8) {
13887
13888 /* "rados.pyx":874
13889 * length = length * 2
13890 * elif ret == -errno.ENOENT:
13891 * return None # <<<<<<<<<<<<<<
13892 * else:
13893 * raise make_ex(ret, "error calling conf_get")
13894 */
13895 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
13896 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
13897 __pyx_r = Py_None(&_Py_NoneStruct);
13898 goto __pyx_L3_return;
13899
13900 /* "rados.pyx":873
13901 * elif ret == -errno.ENAMETOOLONG:
13902 * length = length * 2
13903 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
13904 * return None
13905 * else:
13906 */
13907 }
13908
13909 /* "rados.pyx":876
13910 * return None
13911 * else:
13912 * raise make_ex(ret, "error calling conf_get") # <<<<<<<<<<<<<<
13913 * finally:
13914 * free(ret_buf)
13915 */
13916 /*else*/ {
13917 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__13917; goto __pyx_L4_error;}
13918 __Pyx_GOTREF(__pyx_t_2);
13919 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_calling_conf_get); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__13919; goto __pyx_L4_error;}
13920 __Pyx_GOTREF(__pyx_t_1);
13921 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
13922 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
13923 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
13924 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__13924; goto __pyx_L4_error;}
13925 }
13926 __pyx_L13:;
13927 }
13928 }
13929
13930 /* "rados.pyx":878
13931 * raise make_ex(ret, "error calling conf_get")
13932 * finally:
13933 * free(ret_buf) # <<<<<<<<<<<<<<
13934 *
13935 * @requires(('option', str_type), ('val', str_type))
13936 */
13937 /*finally:*/ {
13938 /*normal exit:*/{
13939 free(__pyx_v_ret_buf);
13940 goto __pyx_L5;
13941 }
13942 /*exception exit:*/{
13943 __pyx_L4_error:;
13944 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
13945 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
13946 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
13947 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
; __pyx_t_9 = 0;
13948 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
13949 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
13950 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
13951 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_13, &
__pyx_t_14, &__pyx_t_15) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
13952 __Pyx_XGOTREF(__pyx_t_13);
13953 __Pyx_XGOTREF(__pyx_t_14);
13954 __Pyx_XGOTREF(__pyx_t_15);
13955 __Pyx_XGOTREF(__pyx_t_16);
13956 __Pyx_XGOTREF(__pyx_t_17);
13957 __Pyx_XGOTREF(__pyx_t_18);
13958 __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename;
13959 {
13960 free(__pyx_v_ret_buf);
13961 }
13962 if (PY_MAJOR_VERSION2 >= 3) {
13963 __Pyx_XGIVEREF(__pyx_t_16);
13964 __Pyx_XGIVEREF(__pyx_t_17);
13965 __Pyx_XGIVEREF(__pyx_t_18);
13966 __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
13967 }
13968 __Pyx_XGIVEREF(__pyx_t_13);
13969 __Pyx_XGIVEREF(__pyx_t_14);
13970 __Pyx_XGIVEREF(__pyx_t_15);
13971 __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15);
13972 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
13973 __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12;
13974 goto __pyx_L1_error;
13975 }
13976 __pyx_L3_return: {
13977 __pyx_t_18 = __pyx_r;
13978 __pyx_r = 0;
13979 free(__pyx_v_ret_buf);
13980 __pyx_r = __pyx_t_18;
13981 __pyx_t_18 = 0;
13982 goto __pyx_L0;
13983 }
13984 __pyx_L5:;
13985 }
13986
13987 /* "rados.pyx":847
13988 *
13989 * @requires(('option', str_type))
13990 * def conf_get(self, option): # <<<<<<<<<<<<<<
13991 * """
13992 * Get the value of a configuration option
13993 */
13994
13995 /* function exit code */
13996 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
13997 goto __pyx_L0;
13998 __pyx_L1_error:;
13999 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
14000 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
14001 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
14002 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
14003 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
14004 __Pyx_AddTraceback("rados.Rados.conf_get", __pyx_clineno, __pyx_lineno, __pyx_filename);
14005 __pyx_r = NULL((void*)0);
14006 __pyx_L0:;
14007 __Pyx_XDECREF(__pyx_v_option)do { if ((__pyx_v_option) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_option))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_option)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_option)))); } while
(0); } while (0)
;
14008 __Pyx_XGIVEREF(__pyx_r);
14009 __Pyx_RefNannyFinishContext();
14010 return __pyx_r;
14011}
14012
14013/* "rados.pyx":881
14014 *
14015 * @requires(('option', str_type), ('val', str_type))
14016 * def conf_set(self, option, val): # <<<<<<<<<<<<<<
14017 * """
14018 * Set the value of a configuration option
14019 */
14020
14021/* Python wrapper */
14022static PyObject *__pyx_pw_5rados_5Rados_23conf_set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14023static char __pyx_doc_5rados_5Rados_22conf_set[] = "Rados.conf_set(self, option, val)\n\n Set the value of a configuration option\n\n :param option: which option to set\n :type option: str\n :param option: value of the option\n :type option: str\n\n :raises: :class:`TypeError`, :class:`ObjectNotFound`\n ";
14024static PyObject *__pyx_pw_5rados_5Rados_23conf_set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14025 PyObject *__pyx_v_option = 0;
14026 PyObject *__pyx_v_val = 0;
14027 int __pyx_lineno = 0;
14028 const char *__pyx_filename = NULL((void*)0);
14029 int __pyx_clineno = 0;
14030 PyObject *__pyx_r = 0;
14031 __Pyx_RefNannyDeclarations
14032 __Pyx_RefNannySetupContext("conf_set (wrapper)", 0);
14033 {
14034 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_option,&__pyx_n_s_val,0};
14035 PyObject* values[2] = {0,0};
14036 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
14037 Py_ssize_t kw_args;
14038 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
14039 switch (pos_args) {
14040 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
14041 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
14042 case 0: break;
14043 default: goto __pyx_L5_argtuple_error;
14044 }
14045 kw_args = PyDict_Size(__pyx_kwds);
14046 switch (pos_args) {
14047 case 0:
14048 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_option)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_option
)) != 0), 1)
) kw_args--;
14049 else goto __pyx_L5_argtuple_error;
14050 case 1:
14051 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val
)) != 0), 1)
) kw_args--;
14052 else {
14053 __Pyx_RaiseArgtupleInvalid("conf_set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__14053; goto __pyx_L3_error;}
14054 }
14055 }
14056 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
14057 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "conf_set") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "conf_set") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__14057; goto __pyx_L3_error;}
14058 }
14059 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
14060 goto __pyx_L5_argtuple_error;
14061 } else {
14062 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
14063 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
14064 }
14065 __pyx_v_option = values[0];
14066 __pyx_v_val = values[1];
14067 }
14068 goto __pyx_L4_argument_unpacking_done;
14069 __pyx_L5_argtuple_error:;
14070 __Pyx_RaiseArgtupleInvalid("conf_set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__14070; goto __pyx_L3_error;}
14071 __pyx_L3_error:;
14072 __Pyx_AddTraceback("rados.Rados.conf_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
14073 __Pyx_RefNannyFinishContext();
14074 return NULL((void*)0);
14075 __pyx_L4_argument_unpacking_done:;
14076 __pyx_r = __pyx_pf_5rados_5Rados_22conf_set(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_option, __pyx_v_val);
14077
14078 /* function exit code */
14079 __Pyx_RefNannyFinishContext();
14080 return __pyx_r;
14081}
14082
14083static PyObject *__pyx_pf_5rados_5Rados_22conf_set(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_option, PyObject *__pyx_v_val) {
14084 char *__pyx_v__option;
14085 char *__pyx_v__val;
14086 int __pyx_v_ret;
14087 PyObject *__pyx_r = NULL((void*)0);
14088 __Pyx_RefNannyDeclarations
14089 PyObject *__pyx_t_1 = NULL((void*)0);
14090 PyObject *__pyx_t_2 = NULL((void*)0);
14091 PyObject *__pyx_t_3 = NULL((void*)0);
14092 Py_ssize_t __pyx_t_4;
14093 PyObject *__pyx_t_5 = NULL((void*)0);
14094 char *__pyx_t_6;
14095 int __pyx_t_7;
14096 int __pyx_lineno = 0;
14097 const char *__pyx_filename = NULL((void*)0);
14098 int __pyx_clineno = 0;
14099 __Pyx_RefNannySetupContext("conf_set", 0);
14100 __Pyx_INCREF(__pyx_v_option)( ((PyObject*)(__pyx_v_option))->ob_refcnt++);
14101 __Pyx_INCREF(__pyx_v_val)( ((PyObject*)(__pyx_v_val))->ob_refcnt++);
14102
14103 /* "rados.pyx":892
14104 * :raises: :class:`TypeError`, :class:`ObjectNotFound`
14105 * """
14106 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
14107 * option = cstr(option, 'option')
14108 * val = cstr(val, 'val')
14109 */
14110 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__14110; goto __pyx_L1_error;}
14111 __Pyx_GOTREF(__pyx_t_1);
14112 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__19, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__14112; goto __pyx_L1_error;}
14113 __Pyx_GOTREF(__pyx_t_2);
14114 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14115 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14116
14117 /* "rados.pyx":893
14118 * """
14119 * self.require_state("configuring", "connected")
14120 * option = cstr(option, 'option') # <<<<<<<<<<<<<<
14121 * val = cstr(val, 'val')
14122 * cdef:
14123 */
14124 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__14124; goto __pyx_L1_error;}
14125 __Pyx_GOTREF(__pyx_t_1);
14126 __pyx_t_3 = NULL((void*)0);
14127 __pyx_t_4 = 0;
14128 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
14129 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
14130 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
14131 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
14132 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
14133 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
14134 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
14135 __pyx_t_4 = 1;
14136 }
14137 }
14138 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__14138; goto __pyx_L1_error;}
14139 __Pyx_GOTREF(__pyx_t_5);
14140 if (__pyx_t_3) {
14141 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
14142 }
14143 __Pyx_INCREF(__pyx_v_option)( ((PyObject*)(__pyx_v_option))->ob_refcnt++);
14144 __Pyx_GIVEREF(__pyx_v_option);
14145 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_option)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_option
)
;
14146 __Pyx_INCREF(__pyx_n_s_option)( ((PyObject*)(__pyx_n_s_option))->ob_refcnt++);
14147 __Pyx_GIVEREF(__pyx_n_s_option);
14148 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_option)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_option
)
;
14149 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__14149; goto __pyx_L1_error;}
14150 __Pyx_GOTREF(__pyx_t_2);
14151 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
14152 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14153 __Pyx_DECREF_SET(__pyx_v_option, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_option; __pyx_v_option
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
14154 __pyx_t_2 = 0;
14155
14156 /* "rados.pyx":894
14157 * self.require_state("configuring", "connected")
14158 * option = cstr(option, 'option')
14159 * val = cstr(val, 'val') # <<<<<<<<<<<<<<
14160 * cdef:
14161 * char *_option = option
14162 */
14163 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__14163; goto __pyx_L1_error;}
14164 __Pyx_GOTREF(__pyx_t_1);
14165 __pyx_t_5 = NULL((void*)0);
14166 __pyx_t_4 = 0;
14167 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
14168 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
14169 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
14170 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
14171 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
14172 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
14173 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
14174 __pyx_t_4 = 1;
14175 }
14176 }
14177 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__14177; goto __pyx_L1_error;}
14178 __Pyx_GOTREF(__pyx_t_3);
14179 if (__pyx_t_5) {
14180 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
14181 }
14182 __Pyx_INCREF(__pyx_v_val)( ((PyObject*)(__pyx_v_val))->ob_refcnt++);
14183 __Pyx_GIVEREF(__pyx_v_val);
14184 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_val)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_val
)
;
14185 __Pyx_INCREF(__pyx_n_s_val)( ((PyObject*)(__pyx_n_s_val))->ob_refcnt++);
14186 __Pyx_GIVEREF(__pyx_n_s_val);
14187 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_val)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_val
)
;
14188 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__14188; goto __pyx_L1_error;}
14189 __Pyx_GOTREF(__pyx_t_2);
14190 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
14191 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14192 __Pyx_DECREF_SET(__pyx_v_val, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_val; __pyx_v_val = __pyx_t_2
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
14193 __pyx_t_2 = 0;
14194
14195 /* "rados.pyx":896
14196 * val = cstr(val, 'val')
14197 * cdef:
14198 * char *_option = option # <<<<<<<<<<<<<<
14199 * char *_val = val
14200 *
14201 */
14202 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_option); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__14202; goto __pyx_L1_error;}
14203 __pyx_v__option = __pyx_t_6;
14204
14205 /* "rados.pyx":897
14206 * cdef:
14207 * char *_option = option
14208 * char *_val = val # <<<<<<<<<<<<<<
14209 *
14210 * with nogil:
14211 */
14212 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_val); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 897; __pyx_clineno = __LINE__14212; goto __pyx_L1_error;}
14213 __pyx_v__val = __pyx_t_6;
14214
14215 /* "rados.pyx":899
14216 * char *_val = val
14217 *
14218 * with nogil: # <<<<<<<<<<<<<<
14219 * ret = rados_conf_set(self.cluster, _option, _val)
14220 * if ret != 0:
14221 */
14222 {
14223 #ifdef WITH_THREAD1
14224 PyThreadState *_save;
14225 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
14226 #endif
14227 /*try:*/ {
14228
14229 /* "rados.pyx":900
14230 *
14231 * with nogil:
14232 * ret = rados_conf_set(self.cluster, _option, _val) # <<<<<<<<<<<<<<
14233 * if ret != 0:
14234 * raise make_ex(ret, "error calling conf_set")
14235 */
14236 __pyx_v_ret = rados_conf_set(__pyx_v_self->cluster, __pyx_v__option, __pyx_v__val);
14237 }
14238
14239 /* "rados.pyx":899
14240 * char *_val = val
14241 *
14242 * with nogil: # <<<<<<<<<<<<<<
14243 * ret = rados_conf_set(self.cluster, _option, _val)
14244 * if ret != 0:
14245 */
14246 /*finally:*/ {
14247 /*normal exit:*/{
14248 #ifdef WITH_THREAD1
14249 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
14250 #endif
14251 goto __pyx_L5;
14252 }
14253 __pyx_L5:;
14254 }
14255 }
14256
14257 /* "rados.pyx":901
14258 * with nogil:
14259 * ret = rados_conf_set(self.cluster, _option, _val)
14260 * if ret != 0: # <<<<<<<<<<<<<<
14261 * raise make_ex(ret, "error calling conf_set")
14262 *
14263 */
14264 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
14265 if (__pyx_t_7) {
14266
14267 /* "rados.pyx":902
14268 * ret = rados_conf_set(self.cluster, _option, _val)
14269 * if ret != 0:
14270 * raise make_ex(ret, "error calling conf_set") # <<<<<<<<<<<<<<
14271 *
14272 * def ping_monitor(self, mon_id):
14273 */
14274 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; __pyx_clineno = __LINE__14274; goto __pyx_L1_error;}
14275 __Pyx_GOTREF(__pyx_t_2);
14276 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_calling_conf_set); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; __pyx_clineno = __LINE__14276; goto __pyx_L1_error;}
14277 __Pyx_GOTREF(__pyx_t_1);
14278 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14279 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
14280 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14281 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 902; __pyx_clineno = __LINE__14281; goto __pyx_L1_error;}
14282
14283 /* "rados.pyx":901
14284 * with nogil:
14285 * ret = rados_conf_set(self.cluster, _option, _val)
14286 * if ret != 0: # <<<<<<<<<<<<<<
14287 * raise make_ex(ret, "error calling conf_set")
14288 *
14289 */
14290 }
14291
14292 /* "rados.pyx":881
14293 *
14294 * @requires(('option', str_type), ('val', str_type))
14295 * def conf_set(self, option, val): # <<<<<<<<<<<<<<
14296 * """
14297 * Set the value of a configuration option
14298 */
14299
14300 /* function exit code */
14301 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
14302 goto __pyx_L0;
14303 __pyx_L1_error:;
14304 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
14305 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
14306 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
14307 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
14308 __Pyx_AddTraceback("rados.Rados.conf_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
14309 __pyx_r = NULL((void*)0);
14310 __pyx_L0:;
14311 __Pyx_XDECREF(__pyx_v_option)do { if ((__pyx_v_option) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_option))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_option)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_option)))); } while
(0); } while (0)
;
14312 __Pyx_XDECREF(__pyx_v_val)do { if ((__pyx_v_val) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_val))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_val)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_val)))); } while (0); } while (0)
;
14313 __Pyx_XGIVEREF(__pyx_r);
14314 __Pyx_RefNannyFinishContext();
14315 return __pyx_r;
14316}
14317
14318/* "rados.pyx":904
14319 * raise make_ex(ret, "error calling conf_set")
14320 *
14321 * def ping_monitor(self, mon_id): # <<<<<<<<<<<<<<
14322 * """
14323 * Ping a monitor to assess liveness
14324 */
14325
14326/* Python wrapper */
14327static PyObject *__pyx_pw_5rados_5Rados_25ping_monitor(PyObject *__pyx_v_self, PyObject *__pyx_v_mon_id); /*proto*/
14328static char __pyx_doc_5rados_5Rados_24ping_monitor[] = "Rados.ping_monitor(self, mon_id)\n\n Ping a monitor to assess liveness\n\n May be used as a simply way to assess liveness, or to obtain\n information about the monitor in a simple way even in the\n absence of quorum.\n\n :param mon_id: the ID portion of the monitor's name (i.e., mon.<ID>)\n :type mon_id: str\n :returns: the string reply from the monitor\n ";
14329static PyObject *__pyx_pw_5rados_5Rados_25ping_monitor(PyObject *__pyx_v_self, PyObject *__pyx_v_mon_id) {
14330 PyObject *__pyx_r = 0;
14331 __Pyx_RefNannyDeclarations
14332 __Pyx_RefNannySetupContext("ping_monitor (wrapper)", 0);
14333 __pyx_r = __pyx_pf_5rados_5Rados_24ping_monitor(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_mon_id));
14334
14335 /* function exit code */
14336 __Pyx_RefNannyFinishContext();
14337 return __pyx_r;
14338}
14339
14340static PyObject *__pyx_pf_5rados_5Rados_24ping_monitor(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_mon_id) {
14341 char *__pyx_v__mon_id;
14342 size_t __pyx_v_outstrlen;
14343 char *__pyx_v_outstr;
14344 int __pyx_v_ret;
14345 PyObject *__pyx_v_my_outstr = NULL((void*)0);
14346 PyObject *__pyx_r = NULL((void*)0);
14347 __Pyx_RefNannyDeclarations
14348 PyObject *__pyx_t_1 = NULL((void*)0);
14349 PyObject *__pyx_t_2 = NULL((void*)0);
14350 PyObject *__pyx_t_3 = NULL((void*)0);
14351 Py_ssize_t __pyx_t_4;
14352 PyObject *__pyx_t_5 = NULL((void*)0);
14353 char *__pyx_t_6;
14354 int __pyx_t_7;
14355 int __pyx_lineno = 0;
14356 const char *__pyx_filename = NULL((void*)0);
14357 int __pyx_clineno = 0;
14358 __Pyx_RefNannySetupContext("ping_monitor", 0);
14359 __Pyx_INCREF(__pyx_v_mon_id)( ((PyObject*)(__pyx_v_mon_id))->ob_refcnt++);
14360
14361 /* "rados.pyx":917
14362 * """
14363 *
14364 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
14365 *
14366 * mon_id = cstr(mon_id, 'mon_id')
14367 */
14368 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__14368; goto __pyx_L1_error;}
14369 __Pyx_GOTREF(__pyx_t_1);
14370 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__20, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__14370; goto __pyx_L1_error;}
14371 __Pyx_GOTREF(__pyx_t_2);
14372 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14373 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14374
14375 /* "rados.pyx":919
14376 * self.require_state("configuring", "connected")
14377 *
14378 * mon_id = cstr(mon_id, 'mon_id') # <<<<<<<<<<<<<<
14379 * cdef:
14380 * char *_mon_id = mon_id
14381 */
14382 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__14382; goto __pyx_L1_error;}
14383 __Pyx_GOTREF(__pyx_t_1);
14384 __pyx_t_3 = NULL((void*)0);
14385 __pyx_t_4 = 0;
14386 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
14387 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
14388 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
14389 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
14390 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
14391 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
14392 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
14393 __pyx_t_4 = 1;
14394 }
14395 }
14396 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__14396; goto __pyx_L1_error;}
14397 __Pyx_GOTREF(__pyx_t_5);
14398 if (__pyx_t_3) {
14399 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
14400 }
14401 __Pyx_INCREF(__pyx_v_mon_id)( ((PyObject*)(__pyx_v_mon_id))->ob_refcnt++);
14402 __Pyx_GIVEREF(__pyx_v_mon_id);
14403 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_mon_id)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_mon_id
)
;
14404 __Pyx_INCREF(__pyx_n_s_mon_id)( ((PyObject*)(__pyx_n_s_mon_id))->ob_refcnt++);
14405 __Pyx_GIVEREF(__pyx_n_s_mon_id);
14406 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_mon_id)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_mon_id
)
;
14407 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__14407; goto __pyx_L1_error;}
14408 __Pyx_GOTREF(__pyx_t_2);
14409 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
14410 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14411 __Pyx_DECREF_SET(__pyx_v_mon_id, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_mon_id; __pyx_v_mon_id
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
14412 __pyx_t_2 = 0;
14413
14414 /* "rados.pyx":921
14415 * mon_id = cstr(mon_id, 'mon_id')
14416 * cdef:
14417 * char *_mon_id = mon_id # <<<<<<<<<<<<<<
14418 * size_t outstrlen = 0
14419 * char *outstr
14420 */
14421 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_mon_id); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__14421; goto __pyx_L1_error;}
14422 __pyx_v__mon_id = __pyx_t_6;
14423
14424 /* "rados.pyx":922
14425 * cdef:
14426 * char *_mon_id = mon_id
14427 * size_t outstrlen = 0 # <<<<<<<<<<<<<<
14428 * char *outstr
14429 *
14430 */
14431 __pyx_v_outstrlen = 0;
14432
14433 /* "rados.pyx":925
14434 * char *outstr
14435 *
14436 * with nogil: # <<<<<<<<<<<<<<
14437 * ret = rados_ping_monitor(self.cluster, _mon_id, &outstr, &outstrlen)
14438 *
14439 */
14440 {
14441 #ifdef WITH_THREAD1
14442 PyThreadState *_save;
14443 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
14444 #endif
14445 /*try:*/ {
14446
14447 /* "rados.pyx":926
14448 *
14449 * with nogil:
14450 * ret = rados_ping_monitor(self.cluster, _mon_id, &outstr, &outstrlen) # <<<<<<<<<<<<<<
14451 *
14452 * if ret != 0:
14453 */
14454 __pyx_v_ret = rados_ping_monitor(__pyx_v_self->cluster, __pyx_v__mon_id, (&__pyx_v_outstr), (&__pyx_v_outstrlen));
14455 }
14456
14457 /* "rados.pyx":925
14458 * char *outstr
14459 *
14460 * with nogil: # <<<<<<<<<<<<<<
14461 * ret = rados_ping_monitor(self.cluster, _mon_id, &outstr, &outstrlen)
14462 *
14463 */
14464 /*finally:*/ {
14465 /*normal exit:*/{
14466 #ifdef WITH_THREAD1
14467 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
14468 #endif
14469 goto __pyx_L5;
14470 }
14471 __pyx_L5:;
14472 }
14473 }
14474
14475 /* "rados.pyx":928
14476 * ret = rados_ping_monitor(self.cluster, _mon_id, &outstr, &outstrlen)
14477 *
14478 * if ret != 0: # <<<<<<<<<<<<<<
14479 * raise make_ex(ret, "error calling ping_monitor")
14480 *
14481 */
14482 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
14483 if (__pyx_t_7) {
14484
14485 /* "rados.pyx":929
14486 *
14487 * if ret != 0:
14488 * raise make_ex(ret, "error calling ping_monitor") # <<<<<<<<<<<<<<
14489 *
14490 * if outstrlen:
14491 */
14492 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__14492; goto __pyx_L1_error;}
14493 __Pyx_GOTREF(__pyx_t_2);
14494 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_calling_ping_monitor); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__14494; goto __pyx_L1_error;}
14495 __Pyx_GOTREF(__pyx_t_1);
14496 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14497 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
14498 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14499 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__14499; goto __pyx_L1_error;}
14500
14501 /* "rados.pyx":928
14502 * ret = rados_ping_monitor(self.cluster, _mon_id, &outstr, &outstrlen)
14503 *
14504 * if ret != 0: # <<<<<<<<<<<<<<
14505 * raise make_ex(ret, "error calling ping_monitor")
14506 *
14507 */
14508 }
14509
14510 /* "rados.pyx":931
14511 * raise make_ex(ret, "error calling ping_monitor")
14512 *
14513 * if outstrlen: # <<<<<<<<<<<<<<
14514 * my_outstr = outstr[:outstrlen]
14515 * rados_buffer_free(outstr)
14516 */
14517 __pyx_t_7 = (__pyx_v_outstrlen != 0);
14518 if (__pyx_t_7) {
14519
14520 /* "rados.pyx":932
14521 *
14522 * if outstrlen:
14523 * my_outstr = outstr[:outstrlen] # <<<<<<<<<<<<<<
14524 * rados_buffer_free(outstr)
14525 * return decode_cstr(my_outstr)
14526 */
14527 __pyx_t_1 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_outstr + 0, __pyx_v_outstrlen - 0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; __pyx_clineno = __LINE__14527; goto __pyx_L1_error;}
14528 __Pyx_GOTREF(__pyx_t_1);
14529 __pyx_v_my_outstr = ((PyObject*)__pyx_t_1);
14530 __pyx_t_1 = 0;
14531
14532 /* "rados.pyx":933
14533 * if outstrlen:
14534 * my_outstr = outstr[:outstrlen]
14535 * rados_buffer_free(outstr) # <<<<<<<<<<<<<<
14536 * return decode_cstr(my_outstr)
14537 *
14538 */
14539 rados_buffer_free(__pyx_v_outstr);
14540
14541 /* "rados.pyx":934
14542 * my_outstr = outstr[:outstrlen]
14543 * rados_buffer_free(outstr)
14544 * return decode_cstr(my_outstr) # <<<<<<<<<<<<<<
14545 *
14546 * def connect(self, timeout=0):
14547 */
14548 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
14549 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__14549; goto __pyx_L1_error;}
14550 __Pyx_GOTREF(__pyx_t_2);
14551 __pyx_t_5 = NULL((void*)0);
14552 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
14553 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
14554 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
14555 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
14556 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
14557 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
14558 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
14559 }
14560 }
14561 if (!__pyx_t_5) {
14562 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_my_outstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__14562; goto __pyx_L1_error;}
14563 __Pyx_GOTREF(__pyx_t_1);
14564 } else {
14565 __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__14565; goto __pyx_L1_error;}
14566 __Pyx_GOTREF(__pyx_t_3);
14567 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
14568 __Pyx_INCREF(__pyx_v_my_outstr)( ((PyObject*)(__pyx_v_my_outstr))->ob_refcnt++);
14569 __Pyx_GIVEREF(__pyx_v_my_outstr);
14570 PyTuple_SET_ITEM(__pyx_t_3, 0+1, __pyx_v_my_outstr)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+1] = __pyx_v_my_outstr
)
;
14571 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__14571; goto __pyx_L1_error;}
14572 __Pyx_GOTREF(__pyx_t_1);
14573 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
14574 }
14575 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14576 __pyx_r = __pyx_t_1;
14577 __pyx_t_1 = 0;
14578 goto __pyx_L0;
14579
14580 /* "rados.pyx":931
14581 * raise make_ex(ret, "error calling ping_monitor")
14582 *
14583 * if outstrlen: # <<<<<<<<<<<<<<
14584 * my_outstr = outstr[:outstrlen]
14585 * rados_buffer_free(outstr)
14586 */
14587 }
14588
14589 /* "rados.pyx":904
14590 * raise make_ex(ret, "error calling conf_set")
14591 *
14592 * def ping_monitor(self, mon_id): # <<<<<<<<<<<<<<
14593 * """
14594 * Ping a monitor to assess liveness
14595 */
14596
14597 /* function exit code */
14598 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
14599 goto __pyx_L0;
14600 __pyx_L1_error:;
14601 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
14602 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
14603 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
14604 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
14605 __Pyx_AddTraceback("rados.Rados.ping_monitor", __pyx_clineno, __pyx_lineno, __pyx_filename);
14606 __pyx_r = NULL((void*)0);
14607 __pyx_L0:;
14608 __Pyx_XDECREF(__pyx_v_my_outstr)do { if ((__pyx_v_my_outstr) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outstr))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_my_outstr)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outstr
)))); } while (0); } while (0)
;
14609 __Pyx_XDECREF(__pyx_v_mon_id)do { if ((__pyx_v_mon_id) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_mon_id))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_mon_id)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_mon_id)))); } while
(0); } while (0)
;
14610 __Pyx_XGIVEREF(__pyx_r);
14611 __Pyx_RefNannyFinishContext();
14612 return __pyx_r;
14613}
14614
14615/* "rados.pyx":936
14616 * return decode_cstr(my_outstr)
14617 *
14618 * def connect(self, timeout=0): # <<<<<<<<<<<<<<
14619 * """
14620 * Connect to the cluster. Use shutdown() to release resources.
14621 */
14622
14623/* Python wrapper */
14624static PyObject *__pyx_pw_5rados_5Rados_27connect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
14625static char __pyx_doc_5rados_5Rados_26connect[] = "Rados.connect(self, timeout=0)\n\n Connect to the cluster. Use shutdown() to release resources.\n ";
14626static PyObject *__pyx_pw_5rados_5Rados_27connect(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
14627 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout = 0;
14628 int __pyx_lineno = 0;
14629 const char *__pyx_filename = NULL((void*)0);
14630 int __pyx_clineno = 0;
14631 PyObject *__pyx_r = 0;
14632 __Pyx_RefNannyDeclarations
14633 __Pyx_RefNannySetupContext("connect (wrapper)", 0);
14634 {
14635 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_timeout,0};
14636 PyObject* values[1] = {0};
14637 values[0] = ((PyObject *)__pyx_int_0);
14638 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
14639 Py_ssize_t kw_args;
14640 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
14641 switch (pos_args) {
14642 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
14643 case 0: break;
14644 default: goto __pyx_L5_argtuple_error;
14645 }
14646 kw_args = PyDict_Size(__pyx_kwds);
14647 switch (pos_args) {
14648 case 0:
14649 if (kw_args > 0) {
14650 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_timeout);
14651 if (value) { values[0] = value; kw_args--; }
14652 }
14653 }
14654 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
14655 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "connect") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "connect") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 936; __pyx_clineno = __LINE__14655; goto __pyx_L3_error;}
14656 }
14657 } else {
14658 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
14659 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
14660 case 0: break;
14661 default: goto __pyx_L5_argtuple_error;
14662 }
14663 }
14664 __pyx_v_timeout = values[0];
14665 }
14666 goto __pyx_L4_argument_unpacking_done;
14667 __pyx_L5_argtuple_error:;
14668 __Pyx_RaiseArgtupleInvalid("connect", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 936; __pyx_clineno = __LINE__14668; goto __pyx_L3_error;}
14669 __pyx_L3_error:;
14670 __Pyx_AddTraceback("rados.Rados.connect", __pyx_clineno, __pyx_lineno, __pyx_filename);
14671 __Pyx_RefNannyFinishContext();
14672 return NULL((void*)0);
14673 __pyx_L4_argument_unpacking_done:;
14674 __pyx_r = __pyx_pf_5rados_5Rados_26connect(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_timeout);
14675
14676 /* function exit code */
14677 __Pyx_RefNannyFinishContext();
14678 return __pyx_r;
14679}
14680
14681static PyObject *__pyx_pf_5rados_5Rados_26connect(struct __pyx_obj_5rados_Rados *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout) {
14682 int __pyx_v_ret;
14683 PyObject *__pyx_r = NULL((void*)0);
14684 __Pyx_RefNannyDeclarations
14685 PyObject *__pyx_t_1 = NULL((void*)0);
14686 PyObject *__pyx_t_2 = NULL((void*)0);
14687 int __pyx_t_3;
14688 int __pyx_lineno = 0;
14689 const char *__pyx_filename = NULL((void*)0);
14690 int __pyx_clineno = 0;
14691 __Pyx_RefNannySetupContext("connect", 0);
14692
14693 /* "rados.pyx":940
14694 * Connect to the cluster. Use shutdown() to release resources.
14695 * """
14696 * self.require_state("configuring") # <<<<<<<<<<<<<<
14697 * # NOTE(sileht): timeout was supported by old python API,
14698 * # but this is not something available in C API, so ignore
14699 */
14700 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__14700; goto __pyx_L1_error;}
14701 __Pyx_GOTREF(__pyx_t_1);
14702 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__21, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__14702; goto __pyx_L1_error;}
14703 __Pyx_GOTREF(__pyx_t_2);
14704 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14705 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14706
14707 /* "rados.pyx":944
14708 * # but this is not something available in C API, so ignore
14709 * # for now and remove it later
14710 * with nogil: # <<<<<<<<<<<<<<
14711 * ret = rados_connect(self.cluster)
14712 * if ret != 0:
14713 */
14714 {
14715 #ifdef WITH_THREAD1
14716 PyThreadState *_save;
14717 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
14718 #endif
14719 /*try:*/ {
14720
14721 /* "rados.pyx":945
14722 * # for now and remove it later
14723 * with nogil:
14724 * ret = rados_connect(self.cluster) # <<<<<<<<<<<<<<
14725 * if ret != 0:
14726 * raise make_ex(ret, "error connecting to the cluster")
14727 */
14728 __pyx_v_ret = rados_connect(__pyx_v_self->cluster);
14729 }
14730
14731 /* "rados.pyx":944
14732 * # but this is not something available in C API, so ignore
14733 * # for now and remove it later
14734 * with nogil: # <<<<<<<<<<<<<<
14735 * ret = rados_connect(self.cluster)
14736 * if ret != 0:
14737 */
14738 /*finally:*/ {
14739 /*normal exit:*/{
14740 #ifdef WITH_THREAD1
14741 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
14742 #endif
14743 goto __pyx_L5;
14744 }
14745 __pyx_L5:;
14746 }
14747 }
14748
14749 /* "rados.pyx":946
14750 * with nogil:
14751 * ret = rados_connect(self.cluster)
14752 * if ret != 0: # <<<<<<<<<<<<<<
14753 * raise make_ex(ret, "error connecting to the cluster")
14754 * self.state = "connected"
14755 */
14756 __pyx_t_3 = ((__pyx_v_ret != 0) != 0);
14757 if (__pyx_t_3) {
14758
14759 /* "rados.pyx":947
14760 * ret = rados_connect(self.cluster)
14761 * if ret != 0:
14762 * raise make_ex(ret, "error connecting to the cluster") # <<<<<<<<<<<<<<
14763 * self.state = "connected"
14764 *
14765 */
14766 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__14766; goto __pyx_L1_error;}
14767 __Pyx_GOTREF(__pyx_t_2);
14768 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_connecting_to_the_cluster); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__14768; goto __pyx_L1_error;}
14769 __Pyx_GOTREF(__pyx_t_1);
14770 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14771 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
14772 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14773 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__14773; goto __pyx_L1_error;}
14774
14775 /* "rados.pyx":946
14776 * with nogil:
14777 * ret = rados_connect(self.cluster)
14778 * if ret != 0: # <<<<<<<<<<<<<<
14779 * raise make_ex(ret, "error connecting to the cluster")
14780 * self.state = "connected"
14781 */
14782 }
14783
14784 /* "rados.pyx":948
14785 * if ret != 0:
14786 * raise make_ex(ret, "error connecting to the cluster")
14787 * self.state = "connected" # <<<<<<<<<<<<<<
14788 *
14789 * def get_instance_id(self):
14790 */
14791 __Pyx_INCREF(__pyx_n_s_connected)( ((PyObject*)(__pyx_n_s_connected))->ob_refcnt++);
14792 __Pyx_GIVEREF(__pyx_n_s_connected);
14793 __Pyx_GOTREF(__pyx_v_self->state);
14794 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
14795 __pyx_v_self->state = __pyx_n_s_connected;
14796
14797 /* "rados.pyx":936
14798 * return decode_cstr(my_outstr)
14799 *
14800 * def connect(self, timeout=0): # <<<<<<<<<<<<<<
14801 * """
14802 * Connect to the cluster. Use shutdown() to release resources.
14803 */
14804
14805 /* function exit code */
14806 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
14807 goto __pyx_L0;
14808 __pyx_L1_error:;
14809 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
14810 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
14811 __Pyx_AddTraceback("rados.Rados.connect", __pyx_clineno, __pyx_lineno, __pyx_filename);
14812 __pyx_r = NULL((void*)0);
14813 __pyx_L0:;
14814 __Pyx_XGIVEREF(__pyx_r);
14815 __Pyx_RefNannyFinishContext();
14816 return __pyx_r;
14817}
14818
14819/* "rados.pyx":950
14820 * self.state = "connected"
14821 *
14822 * def get_instance_id(self): # <<<<<<<<<<<<<<
14823 * """
14824 * Get a global id for current instance
14825 */
14826
14827/* Python wrapper */
14828static PyObject *__pyx_pw_5rados_5Rados_29get_instance_id(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
14829static char __pyx_doc_5rados_5Rados_28get_instance_id[] = "Rados.get_instance_id(self)\n\n Get a global id for current instance\n ";
14830static PyObject *__pyx_pw_5rados_5Rados_29get_instance_id(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
14831 PyObject *__pyx_r = 0;
14832 __Pyx_RefNannyDeclarations
14833 __Pyx_RefNannySetupContext("get_instance_id (wrapper)", 0);
14834 __pyx_r = __pyx_pf_5rados_5Rados_28get_instance_id(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
14835
14836 /* function exit code */
14837 __Pyx_RefNannyFinishContext();
14838 return __pyx_r;
14839}
14840
14841static PyObject *__pyx_pf_5rados_5Rados_28get_instance_id(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
14842 uint64_t __pyx_v_ret;
14843 PyObject *__pyx_r = NULL((void*)0);
14844 __Pyx_RefNannyDeclarations
14845 PyObject *__pyx_t_1 = NULL((void*)0);
14846 PyObject *__pyx_t_2 = NULL((void*)0);
14847 int __pyx_lineno = 0;
14848 const char *__pyx_filename = NULL((void*)0);
14849 int __pyx_clineno = 0;
14850 __Pyx_RefNannySetupContext("get_instance_id", 0);
14851
14852 /* "rados.pyx":954
14853 * Get a global id for current instance
14854 * """
14855 * self.require_state("connected") # <<<<<<<<<<<<<<
14856 * with nogil:
14857 * ret = rados_get_instance_id(self.cluster)
14858 */
14859 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__14859; goto __pyx_L1_error;}
14860 __Pyx_GOTREF(__pyx_t_1);
14861 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__22, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__14861; goto __pyx_L1_error;}
14862 __Pyx_GOTREF(__pyx_t_2);
14863 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
14864 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
14865
14866 /* "rados.pyx":955
14867 * """
14868 * self.require_state("connected")
14869 * with nogil: # <<<<<<<<<<<<<<
14870 * ret = rados_get_instance_id(self.cluster)
14871 * return ret;
14872 */
14873 {
14874 #ifdef WITH_THREAD1
14875 PyThreadState *_save;
14876 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
14877 #endif
14878 /*try:*/ {
14879
14880 /* "rados.pyx":956
14881 * self.require_state("connected")
14882 * with nogil:
14883 * ret = rados_get_instance_id(self.cluster) # <<<<<<<<<<<<<<
14884 * return ret;
14885 *
14886 */
14887 __pyx_v_ret = rados_get_instance_id(__pyx_v_self->cluster);
14888 }
14889
14890 /* "rados.pyx":955
14891 * """
14892 * self.require_state("connected")
14893 * with nogil: # <<<<<<<<<<<<<<
14894 * ret = rados_get_instance_id(self.cluster)
14895 * return ret;
14896 */
14897 /*finally:*/ {
14898 /*normal exit:*/{
14899 #ifdef WITH_THREAD1
14900 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
14901 #endif
14902 goto __pyx_L5;
14903 }
14904 __pyx_L5:;
14905 }
14906 }
14907
14908 /* "rados.pyx":957
14909 * with nogil:
14910 * ret = rados_get_instance_id(self.cluster)
14911 * return ret; # <<<<<<<<<<<<<<
14912 *
14913 * def get_cluster_stats(self):
14914 */
14915 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
14916 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__14916; goto __pyx_L1_error;}
14917 __Pyx_GOTREF(__pyx_t_2);
14918 __pyx_r = __pyx_t_2;
14919 __pyx_t_2 = 0;
14920 goto __pyx_L0;
14921
14922 /* "rados.pyx":950
14923 * self.state = "connected"
14924 *
14925 * def get_instance_id(self): # <<<<<<<<<<<<<<
14926 * """
14927 * Get a global id for current instance
14928 */
14929
14930 /* function exit code */
14931 __pyx_L1_error:;
14932 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
14933 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
14934 __Pyx_AddTraceback("rados.Rados.get_instance_id", __pyx_clineno, __pyx_lineno, __pyx_filename);
14935 __pyx_r = NULL((void*)0);
14936 __pyx_L0:;
14937 __Pyx_XGIVEREF(__pyx_r);
14938 __Pyx_RefNannyFinishContext();
14939 return __pyx_r;
14940}
14941
14942/* "rados.pyx":959
14943 * return ret;
14944 *
14945 * def get_cluster_stats(self): # <<<<<<<<<<<<<<
14946 * """
14947 * Read usage info about the cluster
14948 */
14949
14950/* Python wrapper */
14951static PyObject *__pyx_pw_5rados_5Rados_31get_cluster_stats(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
14952static char __pyx_doc_5rados_5Rados_30get_cluster_stats[] = "Rados.get_cluster_stats(self)\n\n Read usage info about the cluster\n\n This tells you total space, space used, space available, and number\n of objects. These are not updated immediately when data is written,\n they are eventually consistent.\n\n :returns: dict - contains the following keys:\n\n - ``kb`` (int) - total space\n\n - ``kb_used`` (int) - space used\n\n - ``kb_avail`` (int) - free space available\n\n - ``num_objects`` (int) - number of objects\n\n ";
14953static PyObject *__pyx_pw_5rados_5Rados_31get_cluster_stats(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
14954 PyObject *__pyx_r = 0;
14955 __Pyx_RefNannyDeclarations
14956 __Pyx_RefNannySetupContext("get_cluster_stats (wrapper)", 0);
14957 __pyx_r = __pyx_pf_5rados_5Rados_30get_cluster_stats(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
14958
14959 /* function exit code */
14960 __Pyx_RefNannyFinishContext();
14961 return __pyx_r;
14962}
14963
14964static PyObject *__pyx_pf_5rados_5Rados_30get_cluster_stats(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
14965 struct rados_cluster_stat_t __pyx_v_stats;
14966 int __pyx_v_ret;
14967 PyObject *__pyx_r = NULL((void*)0);
14968 __Pyx_RefNannyDeclarations
14969 int __pyx_t_1;
14970 PyObject *__pyx_t_2 = NULL((void*)0);
14971 PyObject *__pyx_t_3 = NULL((void*)0);
14972 PyObject *__pyx_t_4 = NULL((void*)0);
14973 int __pyx_lineno = 0;
14974 const char *__pyx_filename = NULL((void*)0);
14975 int __pyx_clineno = 0;
14976 __Pyx_RefNannySetupContext("get_cluster_stats", 0);
14977
14978 /* "rados.pyx":981
14979 * rados_cluster_stat_t stats
14980 *
14981 * with nogil: # <<<<<<<<<<<<<<
14982 * ret = rados_cluster_stat(self.cluster, &stats)
14983 *
14984 */
14985 {
14986 #ifdef WITH_THREAD1
14987 PyThreadState *_save;
14988 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
14989 #endif
14990 /*try:*/ {
14991
14992 /* "rados.pyx":982
14993 *
14994 * with nogil:
14995 * ret = rados_cluster_stat(self.cluster, &stats) # <<<<<<<<<<<<<<
14996 *
14997 * if ret < 0:
14998 */
14999 __pyx_v_ret = rados_cluster_stat(__pyx_v_self->cluster, (&__pyx_v_stats));
15000 }
15001
15002 /* "rados.pyx":981
15003 * rados_cluster_stat_t stats
15004 *
15005 * with nogil: # <<<<<<<<<<<<<<
15006 * ret = rados_cluster_stat(self.cluster, &stats)
15007 *
15008 */
15009 /*finally:*/ {
15010 /*normal exit:*/{
15011 #ifdef WITH_THREAD1
15012 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
15013 #endif
15014 goto __pyx_L5;
15015 }
15016 __pyx_L5:;
15017 }
15018 }
15019
15020 /* "rados.pyx":984
15021 * ret = rados_cluster_stat(self.cluster, &stats)
15022 *
15023 * if ret < 0: # <<<<<<<<<<<<<<
15024 * raise make_ex(
15025 * ret, "Rados.get_cluster_stats(%s): get_stats failed" % self.rados_id)
15026 */
15027 __pyx_t_1 = ((__pyx_v_ret < 0) != 0);
15028 if (__pyx_t_1) {
15029
15030 /* "rados.pyx":986
15031 * if ret < 0:
15032 * raise make_ex(
15033 * ret, "Rados.get_cluster_stats(%s): get_stats failed" % self.rados_id) # <<<<<<<<<<<<<<
15034 * return {'kb': stats.kb,
15035 * 'kb_used': stats.kb_used,
15036 */
15037 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__15037; goto __pyx_L1_error;}
15038 __Pyx_GOTREF(__pyx_t_2);
15039 __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_Rados_get_cluster_stats_s_get_st, __pyx_v_self->rados_id)PyString_Format(__pyx_kp_s_Rados_get_cluster_stats_s_get_st, __pyx_v_self
->rados_id)
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__15039; goto __pyx_L1_error;}
15040 __Pyx_GOTREF(__pyx_t_3);
15041
15042 /* "rados.pyx":985
15043 *
15044 * if ret < 0:
15045 * raise make_ex( # <<<<<<<<<<<<<<
15046 * ret, "Rados.get_cluster_stats(%s): get_stats failed" % self.rados_id)
15047 * return {'kb': stats.kb,
15048 */
15049 __pyx_t_4 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 985; __pyx_clineno = __LINE__15049; goto __pyx_L1_error;}
15050 __Pyx_GOTREF(__pyx_t_4);
15051 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15052 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
15053 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
15054 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
15055 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 985; __pyx_clineno = __LINE__15055; goto __pyx_L1_error;}
15056
15057 /* "rados.pyx":984
15058 * ret = rados_cluster_stat(self.cluster, &stats)
15059 *
15060 * if ret < 0: # <<<<<<<<<<<<<<
15061 * raise make_ex(
15062 * ret, "Rados.get_cluster_stats(%s): get_stats failed" % self.rados_id)
15063 */
15064 }
15065
15066 /* "rados.pyx":987
15067 * raise make_ex(
15068 * ret, "Rados.get_cluster_stats(%s): get_stats failed" % self.rados_id)
15069 * return {'kb': stats.kb, # <<<<<<<<<<<<<<
15070 * 'kb_used': stats.kb_used,
15071 * 'kb_avail': stats.kb_avail,
15072 */
15073 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
15074 __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__15074; goto __pyx_L1_error;}
15075 __Pyx_GOTREF(__pyx_t_4);
15076 __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.kb); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__15076; goto __pyx_L1_error;}
15077 __Pyx_GOTREF(__pyx_t_3);
15078 if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_kb, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__15078; goto __pyx_L1_error;}
15079 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
15080
15081 /* "rados.pyx":988
15082 * ret, "Rados.get_cluster_stats(%s): get_stats failed" % self.rados_id)
15083 * return {'kb': stats.kb,
15084 * 'kb_used': stats.kb_used, # <<<<<<<<<<<<<<
15085 * 'kb_avail': stats.kb_avail,
15086 * 'num_objects': stats.num_objects}
15087 */
15088 __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.kb_used); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__15088; goto __pyx_L1_error;}
15089 __Pyx_GOTREF(__pyx_t_3);
15090 if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_kb_used, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__15090; goto __pyx_L1_error;}
15091 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
15092
15093 /* "rados.pyx":989
15094 * return {'kb': stats.kb,
15095 * 'kb_used': stats.kb_used,
15096 * 'kb_avail': stats.kb_avail, # <<<<<<<<<<<<<<
15097 * 'num_objects': stats.num_objects}
15098 *
15099 */
15100 __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.kb_avail); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; __pyx_clineno = __LINE__15100; goto __pyx_L1_error;}
15101 __Pyx_GOTREF(__pyx_t_3);
15102 if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_kb_avail, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__15102; goto __pyx_L1_error;}
15103 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
15104
15105 /* "rados.pyx":990
15106 * 'kb_used': stats.kb_used,
15107 * 'kb_avail': stats.kb_avail,
15108 * 'num_objects': stats.num_objects} # <<<<<<<<<<<<<<
15109 *
15110 * @requires(('pool_name', str_type))
15111 */
15112 __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_objects); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__15112; goto __pyx_L1_error;}
15113 __Pyx_GOTREF(__pyx_t_3);
15114 if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_num_objects, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 987; __pyx_clineno = __LINE__15114; goto __pyx_L1_error;}
15115 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
15116 __pyx_r = __pyx_t_4;
15117 __pyx_t_4 = 0;
15118 goto __pyx_L0;
15119
15120 /* "rados.pyx":959
15121 * return ret;
15122 *
15123 * def get_cluster_stats(self): # <<<<<<<<<<<<<<
15124 * """
15125 * Read usage info about the cluster
15126 */
15127
15128 /* function exit code */
15129 __pyx_L1_error:;
15130 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
15131 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
15132 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
15133 __Pyx_AddTraceback("rados.Rados.get_cluster_stats", __pyx_clineno, __pyx_lineno, __pyx_filename);
15134 __pyx_r = NULL((void*)0);
15135 __pyx_L0:;
15136 __Pyx_XGIVEREF(__pyx_r);
15137 __Pyx_RefNannyFinishContext();
15138 return __pyx_r;
15139}
15140
15141/* "rados.pyx":993
15142 *
15143 * @requires(('pool_name', str_type))
15144 * def pool_exists(self, pool_name): # <<<<<<<<<<<<<<
15145 * """
15146 * Checks if a given pool exists.
15147 */
15148
15149/* Python wrapper */
15150static PyObject *__pyx_pw_5rados_5Rados_33pool_exists(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_name); /*proto*/
15151static char __pyx_doc_5rados_5Rados_32pool_exists[] = "Rados.pool_exists(self, pool_name)\n\n Checks if a given pool exists.\n\n :param pool_name: name of the pool to check\n :type pool_name: str\n\n :raises: :class:`TypeError`, :class:`Error`\n :returns: bool - whether the pool exists, false otherwise.\n ";
15152static PyObject *__pyx_pw_5rados_5Rados_33pool_exists(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_name) {
15153 PyObject *__pyx_r = 0;
15154 __Pyx_RefNannyDeclarations
15155 __Pyx_RefNannySetupContext("pool_exists (wrapper)", 0);
15156 __pyx_r = __pyx_pf_5rados_5Rados_32pool_exists(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_pool_name));
15157
15158 /* function exit code */
15159 __Pyx_RefNannyFinishContext();
15160 return __pyx_r;
15161}
15162
15163static PyObject *__pyx_pf_5rados_5Rados_32pool_exists(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name) {
15164 char *__pyx_v__pool_name;
15165 int64_t __pyx_v_ret;
15166 PyObject *__pyx_r = NULL((void*)0);
15167 __Pyx_RefNannyDeclarations
15168 PyObject *__pyx_t_1 = NULL((void*)0);
15169 PyObject *__pyx_t_2 = NULL((void*)0);
15170 PyObject *__pyx_t_3 = NULL((void*)0);
15171 Py_ssize_t __pyx_t_4;
15172 PyObject *__pyx_t_5 = NULL((void*)0);
15173 char *__pyx_t_6;
15174 int __pyx_t_7;
15175 int __pyx_lineno = 0;
15176 const char *__pyx_filename = NULL((void*)0);
15177 int __pyx_clineno = 0;
15178 __Pyx_RefNannySetupContext("pool_exists", 0);
15179 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
15180
15181 /* "rados.pyx":1003
15182 * :returns: bool - whether the pool exists, false otherwise.
15183 * """
15184 * self.require_state("connected") # <<<<<<<<<<<<<<
15185 *
15186 * pool_name = cstr(pool_name, 'pool_name')
15187 */
15188 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__15188; goto __pyx_L1_error;}
15189 __Pyx_GOTREF(__pyx_t_1);
15190 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__23, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__15190; goto __pyx_L1_error;}
15191 __Pyx_GOTREF(__pyx_t_2);
15192 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15193 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15194
15195 /* "rados.pyx":1005
15196 * self.require_state("connected")
15197 *
15198 * pool_name = cstr(pool_name, 'pool_name') # <<<<<<<<<<<<<<
15199 * cdef:
15200 * char *_pool_name = pool_name
15201 */
15202 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__15202; goto __pyx_L1_error;}
15203 __Pyx_GOTREF(__pyx_t_1);
15204 __pyx_t_3 = NULL((void*)0);
15205 __pyx_t_4 = 0;
15206 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
15207 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
15208 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
15209 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
15210 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
15211 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
15212 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
15213 __pyx_t_4 = 1;
15214 }
15215 }
15216 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__15216; goto __pyx_L1_error;}
15217 __Pyx_GOTREF(__pyx_t_5);
15218 if (__pyx_t_3) {
15219 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
15220 }
15221 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
15222 __Pyx_GIVEREF(__pyx_v_pool_name);
15223 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_pool_name
)
;
15224 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
15225 __Pyx_GIVEREF(__pyx_n_s_pool_name);
15226 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_pool_name
)
;
15227 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__15227; goto __pyx_L1_error;}
15228 __Pyx_GOTREF(__pyx_t_2);
15229 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
15230 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15231 __Pyx_DECREF_SET(__pyx_v_pool_name, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_pool_name; __pyx_v_pool_name
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
15232 __pyx_t_2 = 0;
15233
15234 /* "rados.pyx":1007
15235 * pool_name = cstr(pool_name, 'pool_name')
15236 * cdef:
15237 * char *_pool_name = pool_name # <<<<<<<<<<<<<<
15238 *
15239 * with nogil:
15240 */
15241 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_pool_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__15241; goto __pyx_L1_error;}
15242 __pyx_v__pool_name = __pyx_t_6;
15243
15244 /* "rados.pyx":1009
15245 * char *_pool_name = pool_name
15246 *
15247 * with nogil: # <<<<<<<<<<<<<<
15248 * ret = rados_pool_lookup(self.cluster, _pool_name)
15249 * if ret >= 0:
15250 */
15251 {
15252 #ifdef WITH_THREAD1
15253 PyThreadState *_save;
15254 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
15255 #endif
15256 /*try:*/ {
15257
15258 /* "rados.pyx":1010
15259 *
15260 * with nogil:
15261 * ret = rados_pool_lookup(self.cluster, _pool_name) # <<<<<<<<<<<<<<
15262 * if ret >= 0:
15263 * return True
15264 */
15265 __pyx_v_ret = rados_pool_lookup(__pyx_v_self->cluster, __pyx_v__pool_name);
15266 }
15267
15268 /* "rados.pyx":1009
15269 * char *_pool_name = pool_name
15270 *
15271 * with nogil: # <<<<<<<<<<<<<<
15272 * ret = rados_pool_lookup(self.cluster, _pool_name)
15273 * if ret >= 0:
15274 */
15275 /*finally:*/ {
15276 /*normal exit:*/{
15277 #ifdef WITH_THREAD1
15278 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
15279 #endif
15280 goto __pyx_L5;
15281 }
15282 __pyx_L5:;
15283 }
15284 }
15285
15286 /* "rados.pyx":1011
15287 * with nogil:
15288 * ret = rados_pool_lookup(self.cluster, _pool_name)
15289 * if ret >= 0: # <<<<<<<<<<<<<<
15290 * return True
15291 * elif ret == -errno.ENOENT:
15292 */
15293 __pyx_t_7 = ((__pyx_v_ret >= 0) != 0);
15294 if (__pyx_t_7) {
15295
15296 /* "rados.pyx":1012
15297 * ret = rados_pool_lookup(self.cluster, _pool_name)
15298 * if ret >= 0:
15299 * return True # <<<<<<<<<<<<<<
15300 * elif ret == -errno.ENOENT:
15301 * return False
15302 */
15303 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
15304 __Pyx_INCREF(Py_True)( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->ob_refcnt
++)
;
15305 __pyx_r = Py_True((PyObject *) &_Py_TrueStruct);
15306 goto __pyx_L0;
15307
15308 /* "rados.pyx":1011
15309 * with nogil:
15310 * ret = rados_pool_lookup(self.cluster, _pool_name)
15311 * if ret >= 0: # <<<<<<<<<<<<<<
15312 * return True
15313 * elif ret == -errno.ENOENT:
15314 */
15315 }
15316
15317 /* "rados.pyx":1013
15318 * if ret >= 0:
15319 * return True
15320 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
15321 * return False
15322 * else:
15323 */
15324 __pyx_t_7 = ((__pyx_v_ret == (-ENOENT2)) != 0);
15325 if (__pyx_t_7) {
15326
15327 /* "rados.pyx":1014
15328 * return True
15329 * elif ret == -errno.ENOENT:
15330 * return False # <<<<<<<<<<<<<<
15331 * else:
15332 * raise make_ex(ret, "error looking up pool '%s'" % pool_name)
15333 */
15334 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
15335 __Pyx_INCREF(Py_False)( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++)
;
15336 __pyx_r = Py_False((PyObject *) &_Py_ZeroStruct);
15337 goto __pyx_L0;
15338
15339 /* "rados.pyx":1013
15340 * if ret >= 0:
15341 * return True
15342 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
15343 * return False
15344 * else:
15345 */
15346 }
15347
15348 /* "rados.pyx":1016
15349 * return False
15350 * else:
15351 * raise make_ex(ret, "error looking up pool '%s'" % pool_name) # <<<<<<<<<<<<<<
15352 *
15353 * @requires(('pool_name', str_type))
15354 */
15355 /*else*/ {
15356 __pyx_t_2 = __Pyx_PyInt_From_int64_t(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__15356; goto __pyx_L1_error;}
15357 __Pyx_GOTREF(__pyx_t_2);
15358 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_looking_up_pool_s, __pyx_v_pool_name)PyString_Format(__pyx_kp_s_error_looking_up_pool_s, __pyx_v_pool_name
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__15358; goto __pyx_L1_error;}
15359 __Pyx_GOTREF(__pyx_t_1);
15360 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__15360; goto __pyx_L1_error;}
15361 __Pyx_GOTREF(__pyx_t_5);
15362 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15363 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15364 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
15365 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
15366 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__15366; goto __pyx_L1_error;}
15367 }
15368
15369 /* "rados.pyx":993
15370 *
15371 * @requires(('pool_name', str_type))
15372 * def pool_exists(self, pool_name): # <<<<<<<<<<<<<<
15373 * """
15374 * Checks if a given pool exists.
15375 */
15376
15377 /* function exit code */
15378 __pyx_L1_error:;
15379 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
15380 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
15381 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
15382 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
15383 __Pyx_AddTraceback("rados.Rados.pool_exists", __pyx_clineno, __pyx_lineno, __pyx_filename);
15384 __pyx_r = NULL((void*)0);
15385 __pyx_L0:;
15386 __Pyx_XDECREF(__pyx_v_pool_name)do { if ((__pyx_v_pool_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_pool_name))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_pool_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_pool_name
)))); } while (0); } while (0)
;
15387 __Pyx_XGIVEREF(__pyx_r);
15388 __Pyx_RefNannyFinishContext();
15389 return __pyx_r;
15390}
15391
15392/* "rados.pyx":1019
15393 *
15394 * @requires(('pool_name', str_type))
15395 * def pool_lookup(self, pool_name): # <<<<<<<<<<<<<<
15396 * """
15397 * Returns a pool's ID based on its name.
15398 */
15399
15400/* Python wrapper */
15401static PyObject *__pyx_pw_5rados_5Rados_35pool_lookup(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_name); /*proto*/
15402static char __pyx_doc_5rados_5Rados_34pool_lookup[] = "Rados.pool_lookup(self, pool_name)\n\n Returns a pool's ID based on its name.\n\n :param pool_name: name of the pool to look up\n :type pool_name: str\n\n :raises: :class:`TypeError`, :class:`Error`\n :returns: int - pool ID, or None if it doesn't exist\n ";
15403static PyObject *__pyx_pw_5rados_5Rados_35pool_lookup(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_name) {
15404 PyObject *__pyx_r = 0;
15405 __Pyx_RefNannyDeclarations
15406 __Pyx_RefNannySetupContext("pool_lookup (wrapper)", 0);
15407 __pyx_r = __pyx_pf_5rados_5Rados_34pool_lookup(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_pool_name));
15408
15409 /* function exit code */
15410 __Pyx_RefNannyFinishContext();
15411 return __pyx_r;
15412}
15413
15414static PyObject *__pyx_pf_5rados_5Rados_34pool_lookup(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name) {
15415 char *__pyx_v__pool_name;
15416 int64_t __pyx_v_ret;
15417 PyObject *__pyx_r = NULL((void*)0);
15418 __Pyx_RefNannyDeclarations
15419 PyObject *__pyx_t_1 = NULL((void*)0);
15420 PyObject *__pyx_t_2 = NULL((void*)0);
15421 PyObject *__pyx_t_3 = NULL((void*)0);
15422 Py_ssize_t __pyx_t_4;
15423 PyObject *__pyx_t_5 = NULL((void*)0);
15424 char *__pyx_t_6;
15425 int __pyx_t_7;
15426 int __pyx_lineno = 0;
15427 const char *__pyx_filename = NULL((void*)0);
15428 int __pyx_clineno = 0;
15429 __Pyx_RefNannySetupContext("pool_lookup", 0);
15430 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
15431
15432 /* "rados.pyx":1029
15433 * :returns: int - pool ID, or None if it doesn't exist
15434 * """
15435 * self.require_state("connected") # <<<<<<<<<<<<<<
15436 * pool_name = cstr(pool_name, 'pool_name')
15437 * cdef:
15438 */
15439 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__15439; goto __pyx_L1_error;}
15440 __Pyx_GOTREF(__pyx_t_1);
15441 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__24, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__15441; goto __pyx_L1_error;}
15442 __Pyx_GOTREF(__pyx_t_2);
15443 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15444 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15445
15446 /* "rados.pyx":1030
15447 * """
15448 * self.require_state("connected")
15449 * pool_name = cstr(pool_name, 'pool_name') # <<<<<<<<<<<<<<
15450 * cdef:
15451 * char *_pool_name = pool_name
15452 */
15453 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__15453; goto __pyx_L1_error;}
15454 __Pyx_GOTREF(__pyx_t_1);
15455 __pyx_t_3 = NULL((void*)0);
15456 __pyx_t_4 = 0;
15457 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
15458 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
15459 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
15460 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
15461 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
15462 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
15463 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
15464 __pyx_t_4 = 1;
15465 }
15466 }
15467 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__15467; goto __pyx_L1_error;}
15468 __Pyx_GOTREF(__pyx_t_5);
15469 if (__pyx_t_3) {
15470 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
15471 }
15472 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
15473 __Pyx_GIVEREF(__pyx_v_pool_name);
15474 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_pool_name
)
;
15475 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
15476 __Pyx_GIVEREF(__pyx_n_s_pool_name);
15477 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_pool_name
)
;
15478 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__15478; goto __pyx_L1_error;}
15479 __Pyx_GOTREF(__pyx_t_2);
15480 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
15481 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15482 __Pyx_DECREF_SET(__pyx_v_pool_name, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_pool_name; __pyx_v_pool_name
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
15483 __pyx_t_2 = 0;
15484
15485 /* "rados.pyx":1032
15486 * pool_name = cstr(pool_name, 'pool_name')
15487 * cdef:
15488 * char *_pool_name = pool_name # <<<<<<<<<<<<<<
15489 *
15490 * with nogil:
15491 */
15492 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_pool_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__15492; goto __pyx_L1_error;}
15493 __pyx_v__pool_name = __pyx_t_6;
15494
15495 /* "rados.pyx":1034
15496 * char *_pool_name = pool_name
15497 *
15498 * with nogil: # <<<<<<<<<<<<<<
15499 * ret = rados_pool_lookup(self.cluster, _pool_name)
15500 * if ret >= 0:
15501 */
15502 {
15503 #ifdef WITH_THREAD1
15504 PyThreadState *_save;
15505 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
15506 #endif
15507 /*try:*/ {
15508
15509 /* "rados.pyx":1035
15510 *
15511 * with nogil:
15512 * ret = rados_pool_lookup(self.cluster, _pool_name) # <<<<<<<<<<<<<<
15513 * if ret >= 0:
15514 * return int(ret)
15515 */
15516 __pyx_v_ret = rados_pool_lookup(__pyx_v_self->cluster, __pyx_v__pool_name);
15517 }
15518
15519 /* "rados.pyx":1034
15520 * char *_pool_name = pool_name
15521 *
15522 * with nogil: # <<<<<<<<<<<<<<
15523 * ret = rados_pool_lookup(self.cluster, _pool_name)
15524 * if ret >= 0:
15525 */
15526 /*finally:*/ {
15527 /*normal exit:*/{
15528 #ifdef WITH_THREAD1
15529 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
15530 #endif
15531 goto __pyx_L5;
15532 }
15533 __pyx_L5:;
15534 }
15535 }
15536
15537 /* "rados.pyx":1036
15538 * with nogil:
15539 * ret = rados_pool_lookup(self.cluster, _pool_name)
15540 * if ret >= 0: # <<<<<<<<<<<<<<
15541 * return int(ret)
15542 * elif ret == -errno.ENOENT:
15543 */
15544 __pyx_t_7 = ((__pyx_v_ret >= 0) != 0);
15545 if (__pyx_t_7) {
15546
15547 /* "rados.pyx":1037
15548 * ret = rados_pool_lookup(self.cluster, _pool_name)
15549 * if ret >= 0:
15550 * return int(ret) # <<<<<<<<<<<<<<
15551 * elif ret == -errno.ENOENT:
15552 * return None
15553 */
15554 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
15555 __pyx_t_2 = __Pyx_PyInt_From_int64_t(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1037; __pyx_clineno = __LINE__15555; goto __pyx_L1_error;}
15556 __Pyx_GOTREF(__pyx_t_2);
15557 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1037; __pyx_clineno = __LINE__15557; goto __pyx_L1_error;}
15558 __Pyx_GOTREF(__pyx_t_1);
15559 __Pyx_GIVEREF(__pyx_t_2);
15560 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_2);
15561 __pyx_t_2 = 0;
15562 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1037; __pyx_clineno = __LINE__15562; goto __pyx_L1_error;}
15563 __Pyx_GOTREF(__pyx_t_2);
15564 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15565 __pyx_r = __pyx_t_2;
15566 __pyx_t_2 = 0;
15567 goto __pyx_L0;
15568
15569 /* "rados.pyx":1036
15570 * with nogil:
15571 * ret = rados_pool_lookup(self.cluster, _pool_name)
15572 * if ret >= 0: # <<<<<<<<<<<<<<
15573 * return int(ret)
15574 * elif ret == -errno.ENOENT:
15575 */
15576 }
15577
15578 /* "rados.pyx":1038
15579 * if ret >= 0:
15580 * return int(ret)
15581 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
15582 * return None
15583 * else:
15584 */
15585 __pyx_t_7 = ((__pyx_v_ret == (-ENOENT2)) != 0);
15586 if (__pyx_t_7) {
15587
15588 /* "rados.pyx":1039
15589 * return int(ret)
15590 * elif ret == -errno.ENOENT:
15591 * return None # <<<<<<<<<<<<<<
15592 * else:
15593 * raise make_ex(ret, "error looking up pool '%s'" % pool_name)
15594 */
15595 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
15596 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
15597 __pyx_r = Py_None(&_Py_NoneStruct);
15598 goto __pyx_L0;
15599
15600 /* "rados.pyx":1038
15601 * if ret >= 0:
15602 * return int(ret)
15603 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
15604 * return None
15605 * else:
15606 */
15607 }
15608
15609 /* "rados.pyx":1041
15610 * return None
15611 * else:
15612 * raise make_ex(ret, "error looking up pool '%s'" % pool_name) # <<<<<<<<<<<<<<
15613 *
15614 * @requires(('pool_id', int))
15615 */
15616 /*else*/ {
15617 __pyx_t_2 = __Pyx_PyInt_From_int64_t(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__15617; goto __pyx_L1_error;}
15618 __Pyx_GOTREF(__pyx_t_2);
15619 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_looking_up_pool_s, __pyx_v_pool_name)PyString_Format(__pyx_kp_s_error_looking_up_pool_s, __pyx_v_pool_name
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__15619; goto __pyx_L1_error;}
15620 __Pyx_GOTREF(__pyx_t_1);
15621 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__15621; goto __pyx_L1_error;}
15622 __Pyx_GOTREF(__pyx_t_5);
15623 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15624 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15625 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
15626 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
15627 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__15627; goto __pyx_L1_error;}
15628 }
15629
15630 /* "rados.pyx":1019
15631 *
15632 * @requires(('pool_name', str_type))
15633 * def pool_lookup(self, pool_name): # <<<<<<<<<<<<<<
15634 * """
15635 * Returns a pool's ID based on its name.
15636 */
15637
15638 /* function exit code */
15639 __pyx_L1_error:;
15640 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
15641 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
15642 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
15643 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
15644 __Pyx_AddTraceback("rados.Rados.pool_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
15645 __pyx_r = NULL((void*)0);
15646 __pyx_L0:;
15647 __Pyx_XDECREF(__pyx_v_pool_name)do { if ((__pyx_v_pool_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_pool_name))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_pool_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_pool_name
)))); } while (0); } while (0)
;
15648 __Pyx_XGIVEREF(__pyx_r);
15649 __Pyx_RefNannyFinishContext();
15650 return __pyx_r;
15651}
15652
15653/* "rados.pyx":1044
15654 *
15655 * @requires(('pool_id', int))
15656 * def pool_reverse_lookup(self, pool_id): # <<<<<<<<<<<<<<
15657 * """
15658 * Returns a pool's name based on its ID.
15659 */
15660
15661/* Python wrapper */
15662static PyObject *__pyx_pw_5rados_5Rados_37pool_reverse_lookup(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id); /*proto*/
15663static char __pyx_doc_5rados_5Rados_36pool_reverse_lookup[] = "Rados.pool_reverse_lookup(self, pool_id)\n\n Returns a pool's name based on its ID.\n\n :param pool_id: ID of the pool to look up\n :type pool_id: int\n\n :raises: :class:`TypeError`, :class:`Error`\n :returns: string - pool name, or None if it doesn't exist\n ";
15664static PyObject *__pyx_pw_5rados_5Rados_37pool_reverse_lookup(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id) {
15665 PyObject *__pyx_r = 0;
15666 __Pyx_RefNannyDeclarations
15667 __Pyx_RefNannySetupContext("pool_reverse_lookup (wrapper)", 0);
15668 __pyx_r = __pyx_pf_5rados_5Rados_36pool_reverse_lookup(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_pool_id));
15669
15670 /* function exit code */
15671 __Pyx_RefNannyFinishContext();
15672 return __pyx_r;
15673}
15674
15675static PyObject *__pyx_pf_5rados_5Rados_36pool_reverse_lookup(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id) {
15676 int64_t __pyx_v__pool_id;
15677 size_t __pyx_v_size;
15678 char *__pyx_v_name;
15679 int __pyx_v_ret;
15680 PyObject *__pyx_r = NULL((void*)0);
15681 __Pyx_RefNannyDeclarations
15682 PyObject *__pyx_t_1 = NULL((void*)0);
15683 PyObject *__pyx_t_2 = NULL((void*)0);
15684 int64_t __pyx_t_3;
15685 void *__pyx_t_4;
15686 int __pyx_t_5;
15687 int __pyx_t_6;
15688 PyObject *__pyx_t_7 = NULL((void*)0);
15689 PyObject *__pyx_t_8 = NULL((void*)0);
15690 PyObject *__pyx_t_9 = NULL((void*)0);
15691 int __pyx_t_10;
15692 int __pyx_t_11;
15693 char const *__pyx_t_12;
15694 PyObject *__pyx_t_13 = NULL((void*)0);
15695 PyObject *__pyx_t_14 = NULL((void*)0);
15696 PyObject *__pyx_t_15 = NULL((void*)0);
15697 PyObject *__pyx_t_16 = NULL((void*)0);
15698 PyObject *__pyx_t_17 = NULL((void*)0);
15699 PyObject *__pyx_t_18 = NULL((void*)0);
15700 int __pyx_lineno = 0;
15701 const char *__pyx_filename = NULL((void*)0);
15702 int __pyx_clineno = 0;
15703 __Pyx_RefNannySetupContext("pool_reverse_lookup", 0);
15704
15705 /* "rados.pyx":1054
15706 * :returns: string - pool name, or None if it doesn't exist
15707 * """
15708 * self.require_state("connected") # <<<<<<<<<<<<<<
15709 * cdef:
15710 * int64_t _pool_id = pool_id
15711 */
15712 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__15712; goto __pyx_L1_error;}
15713 __Pyx_GOTREF(__pyx_t_1);
15714 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__25, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__15714; goto __pyx_L1_error;}
15715 __Pyx_GOTREF(__pyx_t_2);
15716 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15717 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15718
15719 /* "rados.pyx":1056
15720 * self.require_state("connected")
15721 * cdef:
15722 * int64_t _pool_id = pool_id # <<<<<<<<<<<<<<
15723 * size_t size = 512
15724 * char *name = NULL
15725 */
15726 __pyx_t_3 = __Pyx_PyInt_As_int64_t(__pyx_v_pool_id); if (unlikely((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1056; __pyx_clineno = __LINE__15726; goto __pyx_L1_error;}
15727 __pyx_v__pool_id = __pyx_t_3;
15728
15729 /* "rados.pyx":1057
15730 * cdef:
15731 * int64_t _pool_id = pool_id
15732 * size_t size = 512 # <<<<<<<<<<<<<<
15733 * char *name = NULL
15734 *
15735 */
15736 __pyx_v_size = 0x200;
15737
15738 /* "rados.pyx":1058
15739 * int64_t _pool_id = pool_id
15740 * size_t size = 512
15741 * char *name = NULL # <<<<<<<<<<<<<<
15742 *
15743 * try:
15744 */
15745 __pyx_v_name = NULL((void*)0);
15746
15747 /* "rados.pyx":1060
15748 * char *name = NULL
15749 *
15750 * try: # <<<<<<<<<<<<<<
15751 * while True:
15752 * name = <char *>realloc_chk(name, size)
15753 */
15754 /*try:*/ {
15755
15756 /* "rados.pyx":1061
15757 *
15758 * try:
15759 * while True: # <<<<<<<<<<<<<<
15760 * name = <char *>realloc_chk(name, size)
15761 * with nogil:
15762 */
15763 while (1) {
15764
15765 /* "rados.pyx":1062
15766 * try:
15767 * while True:
15768 * name = <char *>realloc_chk(name, size) # <<<<<<<<<<<<<<
15769 * with nogil:
15770 * ret = rados_pool_reverse_lookup(self.cluster, _pool_id, name, size)
15771 */
15772 __pyx_t_4 = __pyx_f_5rados_realloc_chk(__pyx_v_name, __pyx_v_size); if (unlikely(__pyx_t_4 == NULL)__builtin_expect(!!(__pyx_t_4 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; __pyx_clineno = __LINE__15772; goto __pyx_L4_error;}
15773 __pyx_v_name = ((char *)__pyx_t_4);
15774
15775 /* "rados.pyx":1063
15776 * while True:
15777 * name = <char *>realloc_chk(name, size)
15778 * with nogil: # <<<<<<<<<<<<<<
15779 * ret = rados_pool_reverse_lookup(self.cluster, _pool_id, name, size)
15780 * if ret >= 0:
15781 */
15782 {
15783 #ifdef WITH_THREAD1
15784 PyThreadState *_save;
15785 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
15786 #endif
15787 /*try:*/ {
15788
15789 /* "rados.pyx":1064
15790 * name = <char *>realloc_chk(name, size)
15791 * with nogil:
15792 * ret = rados_pool_reverse_lookup(self.cluster, _pool_id, name, size) # <<<<<<<<<<<<<<
15793 * if ret >= 0:
15794 * break
15795 */
15796 __pyx_v_ret = rados_pool_reverse_lookup(__pyx_v_self->cluster, __pyx_v__pool_id, __pyx_v_name, __pyx_v_size);
15797 }
15798
15799 /* "rados.pyx":1063
15800 * while True:
15801 * name = <char *>realloc_chk(name, size)
15802 * with nogil: # <<<<<<<<<<<<<<
15803 * ret = rados_pool_reverse_lookup(self.cluster, _pool_id, name, size)
15804 * if ret >= 0:
15805 */
15806 /*finally:*/ {
15807 /*normal exit:*/{
15808 #ifdef WITH_THREAD1
15809 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
15810 #endif
15811 goto __pyx_L12;
15812 }
15813 __pyx_L12:;
15814 }
15815 }
15816
15817 /* "rados.pyx":1065
15818 * with nogil:
15819 * ret = rados_pool_reverse_lookup(self.cluster, _pool_id, name, size)
15820 * if ret >= 0: # <<<<<<<<<<<<<<
15821 * break
15822 * elif ret != -errno.ERANGE and size <= 4096:
15823 */
15824 __pyx_t_5 = ((__pyx_v_ret >= 0) != 0);
15825 if (__pyx_t_5) {
15826
15827 /* "rados.pyx":1066
15828 * ret = rados_pool_reverse_lookup(self.cluster, _pool_id, name, size)
15829 * if ret >= 0:
15830 * break # <<<<<<<<<<<<<<
15831 * elif ret != -errno.ERANGE and size <= 4096:
15832 * size *= 2
15833 */
15834 goto __pyx_L7_break;
15835
15836 /* "rados.pyx":1065
15837 * with nogil:
15838 * ret = rados_pool_reverse_lookup(self.cluster, _pool_id, name, size)
15839 * if ret >= 0: # <<<<<<<<<<<<<<
15840 * break
15841 * elif ret != -errno.ERANGE and size <= 4096:
15842 */
15843 }
15844
15845 /* "rados.pyx":1067
15846 * if ret >= 0:
15847 * break
15848 * elif ret != -errno.ERANGE and size <= 4096: # <<<<<<<<<<<<<<
15849 * size *= 2
15850 * elif ret == -errno.ENOENT:
15851 */
15852 __pyx_t_6 = ((__pyx_v_ret != (-ERANGE34)) != 0);
15853 if (__pyx_t_6) {
15854 } else {
15855 __pyx_t_5 = __pyx_t_6;
15856 goto __pyx_L14_bool_binop_done;
15857 }
15858 __pyx_t_6 = ((__pyx_v_size <= 0x1000) != 0);
15859 __pyx_t_5 = __pyx_t_6;
15860 __pyx_L14_bool_binop_done:;
15861 if (__pyx_t_5) {
15862
15863 /* "rados.pyx":1068
15864 * break
15865 * elif ret != -errno.ERANGE and size <= 4096:
15866 * size *= 2 # <<<<<<<<<<<<<<
15867 * elif ret == -errno.ENOENT:
15868 * return None
15869 */
15870 __pyx_v_size = (__pyx_v_size * 2);
15871
15872 /* "rados.pyx":1067
15873 * if ret >= 0:
15874 * break
15875 * elif ret != -errno.ERANGE and size <= 4096: # <<<<<<<<<<<<<<
15876 * size *= 2
15877 * elif ret == -errno.ENOENT:
15878 */
15879 goto __pyx_L13;
15880 }
15881
15882 /* "rados.pyx":1069
15883 * elif ret != -errno.ERANGE and size <= 4096:
15884 * size *= 2
15885 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
15886 * return None
15887 * elif ret < 0:
15888 */
15889 __pyx_t_5 = ((__pyx_v_ret == (-ENOENT2)) != 0);
15890 if (__pyx_t_5) {
15891
15892 /* "rados.pyx":1070
15893 * size *= 2
15894 * elif ret == -errno.ENOENT:
15895 * return None # <<<<<<<<<<<<<<
15896 * elif ret < 0:
15897 * raise make_ex(ret, "error reverse looking up pool '%s'" % pool_id)
15898 */
15899 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
15900 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
15901 __pyx_r = Py_None(&_Py_NoneStruct);
15902 goto __pyx_L3_return;
15903
15904 /* "rados.pyx":1069
15905 * elif ret != -errno.ERANGE and size <= 4096:
15906 * size *= 2
15907 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
15908 * return None
15909 * elif ret < 0:
15910 */
15911 }
15912
15913 /* "rados.pyx":1071
15914 * elif ret == -errno.ENOENT:
15915 * return None
15916 * elif ret < 0: # <<<<<<<<<<<<<<
15917 * raise make_ex(ret, "error reverse looking up pool '%s'" % pool_id)
15918 *
15919 */
15920 __pyx_t_5 = ((__pyx_v_ret < 0) != 0);
15921 if (__pyx_t_5) {
15922
15923 /* "rados.pyx":1072
15924 * return None
15925 * elif ret < 0:
15926 * raise make_ex(ret, "error reverse looking up pool '%s'" % pool_id) # <<<<<<<<<<<<<<
15927 *
15928 * return decode_cstr(name)
15929 */
15930 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__15930; goto __pyx_L4_error;}
15931 __Pyx_GOTREF(__pyx_t_2);
15932 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_reverse_looking_up_pool_s, __pyx_v_pool_id)PyString_Format(__pyx_kp_s_error_reverse_looking_up_pool_s, __pyx_v_pool_id
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__15932; goto __pyx_L4_error;}
15933 __Pyx_GOTREF(__pyx_t_1);
15934 __pyx_t_7 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__15934; goto __pyx_L4_error;}
15935 __Pyx_GOTREF(__pyx_t_7);
15936 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15937 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15938 __Pyx_Raise(__pyx_t_7, 0, 0, 0);
15939 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
15940 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__15940; goto __pyx_L4_error;}
15941
15942 /* "rados.pyx":1071
15943 * elif ret == -errno.ENOENT:
15944 * return None
15945 * elif ret < 0: # <<<<<<<<<<<<<<
15946 * raise make_ex(ret, "error reverse looking up pool '%s'" % pool_id)
15947 *
15948 */
15949 }
15950 __pyx_L13:;
15951 }
15952 __pyx_L7_break:;
15953
15954 /* "rados.pyx":1074
15955 * raise make_ex(ret, "error reverse looking up pool '%s'" % pool_id)
15956 *
15957 * return decode_cstr(name) # <<<<<<<<<<<<<<
15958 *
15959 * finally:
15960 */
15961 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
15962 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__15962; goto __pyx_L4_error;}
15963 __Pyx_GOTREF(__pyx_t_1);
15964 __pyx_t_2 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_name); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__15964; goto __pyx_L4_error;}
15965 __Pyx_GOTREF(__pyx_t_2);
15966 __pyx_t_8 = NULL((void*)0);
15967 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
15968 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
15969 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
15970 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
15971 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
15972 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
15973 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
15974 }
15975 }
15976 if (!__pyx_t_8) {
15977 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__15977; goto __pyx_L4_error;}
15978 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
15979 __Pyx_GOTREF(__pyx_t_7);
15980 } else {
15981 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__15981; goto __pyx_L4_error;}
15982 __Pyx_GOTREF(__pyx_t_9);
15983 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
15984 __Pyx_GIVEREF(__pyx_t_2);
15985 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_2);
15986 __pyx_t_2 = 0;
15987 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__15987; goto __pyx_L4_error;}
15988 __Pyx_GOTREF(__pyx_t_7);
15989 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
15990 }
15991 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
15992 __pyx_r = __pyx_t_7;
15993 __pyx_t_7 = 0;
15994 goto __pyx_L3_return;
15995 }
15996
15997 /* "rados.pyx":1077
15998 *
15999 * finally:
16000 * free(name) # <<<<<<<<<<<<<<
16001 *
16002 * @requires(('pool_name', str_type), ('crush_rule', opt(int)))
16003 */
16004 /*finally:*/ {
16005 /*exception exit:*/{
16006 __pyx_L4_error:;
16007 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
16008 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
16009 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
16010 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
; __pyx_t_9 = 0;
16011 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
16012 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
16013 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
16014 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_13, &
__pyx_t_14, &__pyx_t_15) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
16015 __Pyx_XGOTREF(__pyx_t_13);
16016 __Pyx_XGOTREF(__pyx_t_14);
16017 __Pyx_XGOTREF(__pyx_t_15);
16018 __Pyx_XGOTREF(__pyx_t_16);
16019 __Pyx_XGOTREF(__pyx_t_17);
16020 __Pyx_XGOTREF(__pyx_t_18);
16021 __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename;
16022 {
16023 free(__pyx_v_name);
16024 }
16025 if (PY_MAJOR_VERSION2 >= 3) {
16026 __Pyx_XGIVEREF(__pyx_t_16);
16027 __Pyx_XGIVEREF(__pyx_t_17);
16028 __Pyx_XGIVEREF(__pyx_t_18);
16029 __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
16030 }
16031 __Pyx_XGIVEREF(__pyx_t_13);
16032 __Pyx_XGIVEREF(__pyx_t_14);
16033 __Pyx_XGIVEREF(__pyx_t_15);
16034 __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15);
16035 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
16036 __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12;
16037 goto __pyx_L1_error;
16038 }
16039 __pyx_L3_return: {
16040 __pyx_t_18 = __pyx_r;
16041 __pyx_r = 0;
16042 free(__pyx_v_name);
16043 __pyx_r = __pyx_t_18;
16044 __pyx_t_18 = 0;
16045 goto __pyx_L0;
16046 }
16047 }
16048
16049 /* "rados.pyx":1044
16050 *
16051 * @requires(('pool_id', int))
16052 * def pool_reverse_lookup(self, pool_id): # <<<<<<<<<<<<<<
16053 * """
16054 * Returns a pool's name based on its ID.
16055 */
16056
16057 /* function exit code */
16058 __pyx_L1_error:;
16059 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
16060 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
16061 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
16062 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
16063 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
16064 __Pyx_AddTraceback("rados.Rados.pool_reverse_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
16065 __pyx_r = NULL((void*)0);
16066 __pyx_L0:;
16067 __Pyx_XGIVEREF(__pyx_r);
16068 __Pyx_RefNannyFinishContext();
16069 return __pyx_r;
16070}
16071
16072/* "rados.pyx":1080
16073 *
16074 * @requires(('pool_name', str_type), ('crush_rule', opt(int)))
16075 * def create_pool(self, pool_name, crush_rule=None): # <<<<<<<<<<<<<<
16076 * """
16077 * Create a pool:
16078 */
16079
16080/* Python wrapper */
16081static PyObject *__pyx_pw_5rados_5Rados_39create_pool(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
16082static char __pyx_doc_5rados_5Rados_38create_pool[] = "Rados.create_pool(self, pool_name, crush_rule=None)\n\n Create a pool:\n - with default settings: if crush_rule=None\n - with a specific CRUSH rule: crush_rule given\n\n :param pool_name: name of the pool to create\n :type pool_name: str\n :param crush_rule: rule to use for placement in the new pool\n :type crush_rule: int\n\n :raises: :class:`TypeError`, :class:`Error`\n ";
16083static PyObject *__pyx_pw_5rados_5Rados_39create_pool(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
16084 PyObject *__pyx_v_pool_name = 0;
16085 PyObject *__pyx_v_crush_rule = 0;
16086 int __pyx_lineno = 0;
16087 const char *__pyx_filename = NULL((void*)0);
16088 int __pyx_clineno = 0;
16089 PyObject *__pyx_r = 0;
16090 __Pyx_RefNannyDeclarations
16091 __Pyx_RefNannySetupContext("create_pool (wrapper)", 0);
16092 {
16093 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pool_name,&__pyx_n_s_crush_rule,0};
16094 PyObject* values[2] = {0,0};
16095 values[1] = ((PyObject *)Py_None(&_Py_NoneStruct));
16096 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
16097 Py_ssize_t kw_args;
16098 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
16099 switch (pos_args) {
16100 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
16101 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
16102 case 0: break;
16103 default: goto __pyx_L5_argtuple_error;
16104 }
16105 kw_args = PyDict_Size(__pyx_kwds);
16106 switch (pos_args) {
16107 case 0:
16108 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pool_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pool_name
)) != 0), 1)
) kw_args--;
16109 else goto __pyx_L5_argtuple_error;
16110 case 1:
16111 if (kw_args > 0) {
16112 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_crush_rule);
16113 if (value) { values[1] = value; kw_args--; }
16114 }
16115 }
16116 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
16117 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create_pool") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "create_pool") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__16117; goto __pyx_L3_error;}
16118 }
16119 } else {
16120 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
16121 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
16122 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
16123 break;
16124 default: goto __pyx_L5_argtuple_error;
16125 }
16126 }
16127 __pyx_v_pool_name = values[0];
16128 __pyx_v_crush_rule = values[1];
16129 }
16130 goto __pyx_L4_argument_unpacking_done;
16131 __pyx_L5_argtuple_error:;
16132 __Pyx_RaiseArgtupleInvalid("create_pool", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__16132; goto __pyx_L3_error;}
16133 __pyx_L3_error:;
16134 __Pyx_AddTraceback("rados.Rados.create_pool", __pyx_clineno, __pyx_lineno, __pyx_filename);
16135 __Pyx_RefNannyFinishContext();
16136 return NULL((void*)0);
16137 __pyx_L4_argument_unpacking_done:;
16138 __pyx_r = __pyx_pf_5rados_5Rados_38create_pool(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_pool_name, __pyx_v_crush_rule);
16139
16140 /* function exit code */
16141 __Pyx_RefNannyFinishContext();
16142 return __pyx_r;
16143}
16144
16145static PyObject *__pyx_pf_5rados_5Rados_38create_pool(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name, PyObject *__pyx_v_crush_rule) {
16146 char *__pyx_v__pool_name;
16147 uint8_t __pyx_v__crush_rule;
16148 int __pyx_v_ret;
16149 PyObject *__pyx_r = NULL((void*)0);
16150 __Pyx_RefNannyDeclarations
16151 PyObject *__pyx_t_1 = NULL((void*)0);
16152 PyObject *__pyx_t_2 = NULL((void*)0);
16153 PyObject *__pyx_t_3 = NULL((void*)0);
16154 Py_ssize_t __pyx_t_4;
16155 PyObject *__pyx_t_5 = NULL((void*)0);
16156 char *__pyx_t_6;
16157 int __pyx_t_7;
16158 int __pyx_t_8;
16159 uint8_t __pyx_t_9;
16160 int __pyx_lineno = 0;
16161 const char *__pyx_filename = NULL((void*)0);
16162 int __pyx_clineno = 0;
16163 __Pyx_RefNannySetupContext("create_pool", 0);
16164 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
16165
16166 /* "rados.pyx":1093
16167 * :raises: :class:`TypeError`, :class:`Error`
16168 * """
16169 * self.require_state("connected") # <<<<<<<<<<<<<<
16170 *
16171 * pool_name = cstr(pool_name, 'pool_name')
16172 */
16173 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1093; __pyx_clineno = __LINE__16173; goto __pyx_L1_error;}
16174 __Pyx_GOTREF(__pyx_t_1);
16175 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__26, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1093; __pyx_clineno = __LINE__16175; goto __pyx_L1_error;}
16176 __Pyx_GOTREF(__pyx_t_2);
16177 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16178 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
16179
16180 /* "rados.pyx":1095
16181 * self.require_state("connected")
16182 *
16183 * pool_name = cstr(pool_name, 'pool_name') # <<<<<<<<<<<<<<
16184 * cdef:
16185 * char *_pool_name = pool_name
16186 */
16187 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__16187; goto __pyx_L1_error;}
16188 __Pyx_GOTREF(__pyx_t_1);
16189 __pyx_t_3 = NULL((void*)0);
16190 __pyx_t_4 = 0;
16191 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
16192 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
16193 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
16194 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
16195 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
16196 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
16197 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
16198 __pyx_t_4 = 1;
16199 }
16200 }
16201 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__16201; goto __pyx_L1_error;}
16202 __Pyx_GOTREF(__pyx_t_5);
16203 if (__pyx_t_3) {
16204 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
16205 }
16206 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
16207 __Pyx_GIVEREF(__pyx_v_pool_name);
16208 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_pool_name
)
;
16209 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
16210 __Pyx_GIVEREF(__pyx_n_s_pool_name);
16211 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_pool_name
)
;
16212 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__16212; goto __pyx_L1_error;}
16213 __Pyx_GOTREF(__pyx_t_2);
16214 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
16215 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16216 __Pyx_DECREF_SET(__pyx_v_pool_name, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_pool_name; __pyx_v_pool_name
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
16217 __pyx_t_2 = 0;
16218
16219 /* "rados.pyx":1097
16220 * pool_name = cstr(pool_name, 'pool_name')
16221 * cdef:
16222 * char *_pool_name = pool_name # <<<<<<<<<<<<<<
16223 * uint8_t _crush_rule
16224 *
16225 */
16226 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_pool_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; __pyx_clineno = __LINE__16226; goto __pyx_L1_error;}
16227 __pyx_v__pool_name = __pyx_t_6;
16228
16229 /* "rados.pyx":1100
16230 * uint8_t _crush_rule
16231 *
16232 * if crush_rule is None: # <<<<<<<<<<<<<<
16233 * with nogil:
16234 * ret = rados_pool_create(self.cluster, _pool_name)
16235 */
16236 __pyx_t_7 = (__pyx_v_crush_rule == Py_None(&_Py_NoneStruct));
16237 __pyx_t_8 = (__pyx_t_7 != 0);
16238 if (__pyx_t_8) {
16239
16240 /* "rados.pyx":1101
16241 *
16242 * if crush_rule is None:
16243 * with nogil: # <<<<<<<<<<<<<<
16244 * ret = rados_pool_create(self.cluster, _pool_name)
16245 * else:
16246 */
16247 {
16248 #ifdef WITH_THREAD1
16249 PyThreadState *_save;
16250 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
16251 #endif
16252 /*try:*/ {
16253
16254 /* "rados.pyx":1102
16255 * if crush_rule is None:
16256 * with nogil:
16257 * ret = rados_pool_create(self.cluster, _pool_name) # <<<<<<<<<<<<<<
16258 * else:
16259 * _crush_rule = crush_rule
16260 */
16261 __pyx_v_ret = rados_pool_create(__pyx_v_self->cluster, __pyx_v__pool_name);
16262 }
16263
16264 /* "rados.pyx":1101
16265 *
16266 * if crush_rule is None:
16267 * with nogil: # <<<<<<<<<<<<<<
16268 * ret = rados_pool_create(self.cluster, _pool_name)
16269 * else:
16270 */
16271 /*finally:*/ {
16272 /*normal exit:*/{
16273 #ifdef WITH_THREAD1
16274 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
16275 #endif
16276 goto __pyx_L6;
16277 }
16278 __pyx_L6:;
16279 }
16280 }
16281
16282 /* "rados.pyx":1100
16283 * uint8_t _crush_rule
16284 *
16285 * if crush_rule is None: # <<<<<<<<<<<<<<
16286 * with nogil:
16287 * ret = rados_pool_create(self.cluster, _pool_name)
16288 */
16289 goto __pyx_L3;
16290 }
16291
16292 /* "rados.pyx":1104
16293 * ret = rados_pool_create(self.cluster, _pool_name)
16294 * else:
16295 * _crush_rule = crush_rule # <<<<<<<<<<<<<<
16296 * with nogil:
16297 * ret = rados_pool_create_with_crush_rule(self.cluster, _pool_name, _crush_rule)
16298 */
16299 /*else*/ {
16300 __pyx_t_9 = __Pyx_PyInt_As_uint8_t(__pyx_v_crush_rule); if (unlikely((__pyx_t_9 == (uint8_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_9 == (uint8_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__16300; goto __pyx_L1_error;}
16301 __pyx_v__crush_rule = __pyx_t_9;
16302
16303 /* "rados.pyx":1105
16304 * else:
16305 * _crush_rule = crush_rule
16306 * with nogil: # <<<<<<<<<<<<<<
16307 * ret = rados_pool_create_with_crush_rule(self.cluster, _pool_name, _crush_rule)
16308 * if ret < 0:
16309 */
16310 {
16311 #ifdef WITH_THREAD1
16312 PyThreadState *_save;
16313 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
16314 #endif
16315 /*try:*/ {
16316
16317 /* "rados.pyx":1106
16318 * _crush_rule = crush_rule
16319 * with nogil:
16320 * ret = rados_pool_create_with_crush_rule(self.cluster, _pool_name, _crush_rule) # <<<<<<<<<<<<<<
16321 * if ret < 0:
16322 * raise make_ex(ret, "error creating pool '%s'" % pool_name)
16323 */
16324 __pyx_v_ret = rados_pool_create_with_crush_rule(__pyx_v_self->cluster, __pyx_v__pool_name, __pyx_v__crush_rule);
16325 }
16326
16327 /* "rados.pyx":1105
16328 * else:
16329 * _crush_rule = crush_rule
16330 * with nogil: # <<<<<<<<<<<<<<
16331 * ret = rados_pool_create_with_crush_rule(self.cluster, _pool_name, _crush_rule)
16332 * if ret < 0:
16333 */
16334 /*finally:*/ {
16335 /*normal exit:*/{
16336 #ifdef WITH_THREAD1
16337 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
16338 #endif
16339 goto __pyx_L9;
16340 }
16341 __pyx_L9:;
16342 }
16343 }
16344 }
16345 __pyx_L3:;
16346
16347 /* "rados.pyx":1107
16348 * with nogil:
16349 * ret = rados_pool_create_with_crush_rule(self.cluster, _pool_name, _crush_rule)
16350 * if ret < 0: # <<<<<<<<<<<<<<
16351 * raise make_ex(ret, "error creating pool '%s'" % pool_name)
16352 *
16353 */
16354 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
16355 if (__pyx_t_8) {
16356
16357 /* "rados.pyx":1108
16358 * ret = rados_pool_create_with_crush_rule(self.cluster, _pool_name, _crush_rule)
16359 * if ret < 0:
16360 * raise make_ex(ret, "error creating pool '%s'" % pool_name) # <<<<<<<<<<<<<<
16361 *
16362 * @requires(('pool_id', int))
16363 */
16364 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__16364; goto __pyx_L1_error;}
16365 __Pyx_GOTREF(__pyx_t_2);
16366 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_creating_pool_s, __pyx_v_pool_name)PyString_Format(__pyx_kp_s_error_creating_pool_s, __pyx_v_pool_name
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__16366; goto __pyx_L1_error;}
16367 __Pyx_GOTREF(__pyx_t_1);
16368 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__16368; goto __pyx_L1_error;}
16369 __Pyx_GOTREF(__pyx_t_5);
16370 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
16371 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16372 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
16373 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
16374 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1108; __pyx_clineno = __LINE__16374; goto __pyx_L1_error;}
16375
16376 /* "rados.pyx":1107
16377 * with nogil:
16378 * ret = rados_pool_create_with_crush_rule(self.cluster, _pool_name, _crush_rule)
16379 * if ret < 0: # <<<<<<<<<<<<<<
16380 * raise make_ex(ret, "error creating pool '%s'" % pool_name)
16381 *
16382 */
16383 }
16384
16385 /* "rados.pyx":1080
16386 *
16387 * @requires(('pool_name', str_type), ('crush_rule', opt(int)))
16388 * def create_pool(self, pool_name, crush_rule=None): # <<<<<<<<<<<<<<
16389 * """
16390 * Create a pool:
16391 */
16392
16393 /* function exit code */
16394 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
16395 goto __pyx_L0;
16396 __pyx_L1_error:;
16397 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
16398 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
16399 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
16400 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
16401 __Pyx_AddTraceback("rados.Rados.create_pool", __pyx_clineno, __pyx_lineno, __pyx_filename);
16402 __pyx_r = NULL((void*)0);
16403 __pyx_L0:;
16404 __Pyx_XDECREF(__pyx_v_pool_name)do { if ((__pyx_v_pool_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_pool_name))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_pool_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_pool_name
)))); } while (0); } while (0)
;
16405 __Pyx_XGIVEREF(__pyx_r);
16406 __Pyx_RefNannyFinishContext();
16407 return __pyx_r;
16408}
16409
16410/* "rados.pyx":1111
16411 *
16412 * @requires(('pool_id', int))
16413 * def get_pool_base_tier(self, pool_id): # <<<<<<<<<<<<<<
16414 * """
16415 * Get base pool
16416 */
16417
16418/* Python wrapper */
16419static PyObject *__pyx_pw_5rados_5Rados_41get_pool_base_tier(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id); /*proto*/
16420static char __pyx_doc_5rados_5Rados_40get_pool_base_tier[] = "Rados.get_pool_base_tier(self, pool_id)\n\n Get base pool\n\n :returns: base pool, or pool_id if tiering is not configured for the pool\n ";
16421static PyObject *__pyx_pw_5rados_5Rados_41get_pool_base_tier(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id) {
16422 PyObject *__pyx_r = 0;
16423 __Pyx_RefNannyDeclarations
16424 __Pyx_RefNannySetupContext("get_pool_base_tier (wrapper)", 0);
16425 __pyx_r = __pyx_pf_5rados_5Rados_40get_pool_base_tier(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_pool_id));
16426
16427 /* function exit code */
16428 __Pyx_RefNannyFinishContext();
16429 return __pyx_r;
16430}
16431
16432static PyObject *__pyx_pf_5rados_5Rados_40get_pool_base_tier(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id) {
16433 int64_t __pyx_v_base_tier;
16434 int64_t __pyx_v__pool_id;
16435 int __pyx_v_ret;
16436 PyObject *__pyx_r = NULL((void*)0);
16437 __Pyx_RefNannyDeclarations
16438 PyObject *__pyx_t_1 = NULL((void*)0);
16439 PyObject *__pyx_t_2 = NULL((void*)0);
16440 int64_t __pyx_t_3;
16441 int __pyx_t_4;
16442 PyObject *__pyx_t_5 = NULL((void*)0);
16443 int __pyx_lineno = 0;
16444 const char *__pyx_filename = NULL((void*)0);
16445 int __pyx_clineno = 0;
16446 __Pyx_RefNannySetupContext("get_pool_base_tier", 0);
16447
16448 /* "rados.pyx":1117
16449 * :returns: base pool, or pool_id if tiering is not configured for the pool
16450 * """
16451 * self.require_state("connected") # <<<<<<<<<<<<<<
16452 * cdef:
16453 * int64_t base_tier = 0
16454 */
16455 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__16455; goto __pyx_L1_error;}
16456 __Pyx_GOTREF(__pyx_t_1);
16457 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__27, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__16457; goto __pyx_L1_error;}
16458 __Pyx_GOTREF(__pyx_t_2);
16459 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16460 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
16461
16462 /* "rados.pyx":1119
16463 * self.require_state("connected")
16464 * cdef:
16465 * int64_t base_tier = 0 # <<<<<<<<<<<<<<
16466 * int64_t _pool_id = pool_id
16467 *
16468 */
16469 __pyx_v_base_tier = 0;
16470
16471 /* "rados.pyx":1120
16472 * cdef:
16473 * int64_t base_tier = 0
16474 * int64_t _pool_id = pool_id # <<<<<<<<<<<<<<
16475 *
16476 * with nogil:
16477 */
16478 __pyx_t_3 = __Pyx_PyInt_As_int64_t(__pyx_v_pool_id); if (unlikely((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__16478; goto __pyx_L1_error;}
16479 __pyx_v__pool_id = __pyx_t_3;
16480
16481 /* "rados.pyx":1122
16482 * int64_t _pool_id = pool_id
16483 *
16484 * with nogil: # <<<<<<<<<<<<<<
16485 * ret = rados_pool_get_base_tier(self.cluster, _pool_id, &base_tier)
16486 * if ret < 0:
16487 */
16488 {
16489 #ifdef WITH_THREAD1
16490 PyThreadState *_save;
16491 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
16492 #endif
16493 /*try:*/ {
16494
16495 /* "rados.pyx":1123
16496 *
16497 * with nogil:
16498 * ret = rados_pool_get_base_tier(self.cluster, _pool_id, &base_tier) # <<<<<<<<<<<<<<
16499 * if ret < 0:
16500 * raise make_ex(ret, "get_pool_base_tier(%d)" % pool_id)
16501 */
16502 __pyx_v_ret = rados_pool_get_base_tier(__pyx_v_self->cluster, __pyx_v__pool_id, (&__pyx_v_base_tier));
16503 }
16504
16505 /* "rados.pyx":1122
16506 * int64_t _pool_id = pool_id
16507 *
16508 * with nogil: # <<<<<<<<<<<<<<
16509 * ret = rados_pool_get_base_tier(self.cluster, _pool_id, &base_tier)
16510 * if ret < 0:
16511 */
16512 /*finally:*/ {
16513 /*normal exit:*/{
16514 #ifdef WITH_THREAD1
16515 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
16516 #endif
16517 goto __pyx_L5;
16518 }
16519 __pyx_L5:;
16520 }
16521 }
16522
16523 /* "rados.pyx":1124
16524 * with nogil:
16525 * ret = rados_pool_get_base_tier(self.cluster, _pool_id, &base_tier)
16526 * if ret < 0: # <<<<<<<<<<<<<<
16527 * raise make_ex(ret, "get_pool_base_tier(%d)" % pool_id)
16528 * return int(base_tier)
16529 */
16530 __pyx_t_4 = ((__pyx_v_ret < 0) != 0);
16531 if (__pyx_t_4) {
16532
16533 /* "rados.pyx":1125
16534 * ret = rados_pool_get_base_tier(self.cluster, _pool_id, &base_tier)
16535 * if ret < 0:
16536 * raise make_ex(ret, "get_pool_base_tier(%d)" % pool_id) # <<<<<<<<<<<<<<
16537 * return int(base_tier)
16538 *
16539 */
16540 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__16540; goto __pyx_L1_error;}
16541 __Pyx_GOTREF(__pyx_t_2);
16542 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_get_pool_base_tier_d, __pyx_v_pool_id)PyString_Format(__pyx_kp_s_get_pool_base_tier_d, __pyx_v_pool_id
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__16542; goto __pyx_L1_error;}
16543 __Pyx_GOTREF(__pyx_t_1);
16544 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__16544; goto __pyx_L1_error;}
16545 __Pyx_GOTREF(__pyx_t_5);
16546 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
16547 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16548 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
16549 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
16550 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1125; __pyx_clineno = __LINE__16550; goto __pyx_L1_error;}
16551
16552 /* "rados.pyx":1124
16553 * with nogil:
16554 * ret = rados_pool_get_base_tier(self.cluster, _pool_id, &base_tier)
16555 * if ret < 0: # <<<<<<<<<<<<<<
16556 * raise make_ex(ret, "get_pool_base_tier(%d)" % pool_id)
16557 * return int(base_tier)
16558 */
16559 }
16560
16561 /* "rados.pyx":1126
16562 * if ret < 0:
16563 * raise make_ex(ret, "get_pool_base_tier(%d)" % pool_id)
16564 * return int(base_tier) # <<<<<<<<<<<<<<
16565 *
16566 * @requires(('pool_name', str_type))
16567 */
16568 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
16569 __pyx_t_5 = __Pyx_PyInt_From_int64_t(__pyx_v_base_tier); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__16569; goto __pyx_L1_error;}
16570 __Pyx_GOTREF(__pyx_t_5);
16571 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__16571; goto __pyx_L1_error;}
16572 __Pyx_GOTREF(__pyx_t_1);
16573 __Pyx_GIVEREF(__pyx_t_5);
16574 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_5);
16575 __pyx_t_5 = 0;
16576 __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__16576; goto __pyx_L1_error;}
16577 __Pyx_GOTREF(__pyx_t_5);
16578 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16579 __pyx_r = __pyx_t_5;
16580 __pyx_t_5 = 0;
16581 goto __pyx_L0;
16582
16583 /* "rados.pyx":1111
16584 *
16585 * @requires(('pool_id', int))
16586 * def get_pool_base_tier(self, pool_id): # <<<<<<<<<<<<<<
16587 * """
16588 * Get base pool
16589 */
16590
16591 /* function exit code */
16592 __pyx_L1_error:;
16593 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
16594 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
16595 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
16596 __Pyx_AddTraceback("rados.Rados.get_pool_base_tier", __pyx_clineno, __pyx_lineno, __pyx_filename);
16597 __pyx_r = NULL((void*)0);
16598 __pyx_L0:;
16599 __Pyx_XGIVEREF(__pyx_r);
16600 __Pyx_RefNannyFinishContext();
16601 return __pyx_r;
16602}
16603
16604/* "rados.pyx":1129
16605 *
16606 * @requires(('pool_name', str_type))
16607 * def delete_pool(self, pool_name): # <<<<<<<<<<<<<<
16608 * """
16609 * Delete a pool and all data inside it.
16610 */
16611
16612/* Python wrapper */
16613static PyObject *__pyx_pw_5rados_5Rados_43delete_pool(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_name); /*proto*/
16614static char __pyx_doc_5rados_5Rados_42delete_pool[] = "Rados.delete_pool(self, pool_name)\n\n Delete a pool and all data inside it.\n\n The pool is removed from the cluster immediately,\n but the actual data is deleted in the background.\n\n :param pool_name: name of the pool to delete\n :type pool_name: str\n\n :raises: :class:`TypeError`, :class:`Error`\n ";
16615static PyObject *__pyx_pw_5rados_5Rados_43delete_pool(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_name) {
16616 PyObject *__pyx_r = 0;
16617 __Pyx_RefNannyDeclarations
16618 __Pyx_RefNannySetupContext("delete_pool (wrapper)", 0);
16619 __pyx_r = __pyx_pf_5rados_5Rados_42delete_pool(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_pool_name));
16620
16621 /* function exit code */
16622 __Pyx_RefNannyFinishContext();
16623 return __pyx_r;
16624}
16625
16626static PyObject *__pyx_pf_5rados_5Rados_42delete_pool(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_name) {
16627 char *__pyx_v__pool_name;
16628 int __pyx_v_ret;
16629 PyObject *__pyx_r = NULL((void*)0);
16630 __Pyx_RefNannyDeclarations
16631 PyObject *__pyx_t_1 = NULL((void*)0);
16632 PyObject *__pyx_t_2 = NULL((void*)0);
16633 PyObject *__pyx_t_3 = NULL((void*)0);
16634 Py_ssize_t __pyx_t_4;
16635 PyObject *__pyx_t_5 = NULL((void*)0);
16636 char *__pyx_t_6;
16637 int __pyx_t_7;
16638 int __pyx_lineno = 0;
16639 const char *__pyx_filename = NULL((void*)0);
16640 int __pyx_clineno = 0;
16641 __Pyx_RefNannySetupContext("delete_pool", 0);
16642 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
16643
16644 /* "rados.pyx":1141
16645 * :raises: :class:`TypeError`, :class:`Error`
16646 * """
16647 * self.require_state("connected") # <<<<<<<<<<<<<<
16648 *
16649 * pool_name = cstr(pool_name, 'pool_name')
16650 */
16651 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__16651; goto __pyx_L1_error;}
16652 __Pyx_GOTREF(__pyx_t_1);
16653 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__28, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__16653; goto __pyx_L1_error;}
16654 __Pyx_GOTREF(__pyx_t_2);
16655 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16656 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
16657
16658 /* "rados.pyx":1143
16659 * self.require_state("connected")
16660 *
16661 * pool_name = cstr(pool_name, 'pool_name') # <<<<<<<<<<<<<<
16662 * cdef:
16663 * char *_pool_name = pool_name
16664 */
16665 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1143; __pyx_clineno = __LINE__16665; goto __pyx_L1_error;}
16666 __Pyx_GOTREF(__pyx_t_1);
16667 __pyx_t_3 = NULL((void*)0);
16668 __pyx_t_4 = 0;
16669 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
16670 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
16671 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
16672 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
16673 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
16674 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
16675 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
16676 __pyx_t_4 = 1;
16677 }
16678 }
16679 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1143; __pyx_clineno = __LINE__16679; goto __pyx_L1_error;}
16680 __Pyx_GOTREF(__pyx_t_5);
16681 if (__pyx_t_3) {
16682 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
16683 }
16684 __Pyx_INCREF(__pyx_v_pool_name)( ((PyObject*)(__pyx_v_pool_name))->ob_refcnt++);
16685 __Pyx_GIVEREF(__pyx_v_pool_name);
16686 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_pool_name
)
;
16687 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
16688 __Pyx_GIVEREF(__pyx_n_s_pool_name);
16689 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_pool_name
)
;
16690 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1143; __pyx_clineno = __LINE__16690; goto __pyx_L1_error;}
16691 __Pyx_GOTREF(__pyx_t_2);
16692 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
16693 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16694 __Pyx_DECREF_SET(__pyx_v_pool_name, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_pool_name; __pyx_v_pool_name
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
16695 __pyx_t_2 = 0;
16696
16697 /* "rados.pyx":1145
16698 * pool_name = cstr(pool_name, 'pool_name')
16699 * cdef:
16700 * char *_pool_name = pool_name # <<<<<<<<<<<<<<
16701 *
16702 * with nogil:
16703 */
16704 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_pool_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1145; __pyx_clineno = __LINE__16704; goto __pyx_L1_error;}
16705 __pyx_v__pool_name = __pyx_t_6;
16706
16707 /* "rados.pyx":1147
16708 * char *_pool_name = pool_name
16709 *
16710 * with nogil: # <<<<<<<<<<<<<<
16711 * ret = rados_pool_delete(self.cluster, _pool_name)
16712 * if ret < 0:
16713 */
16714 {
16715 #ifdef WITH_THREAD1
16716 PyThreadState *_save;
16717 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
16718 #endif
16719 /*try:*/ {
16720
16721 /* "rados.pyx":1148
16722 *
16723 * with nogil:
16724 * ret = rados_pool_delete(self.cluster, _pool_name) # <<<<<<<<<<<<<<
16725 * if ret < 0:
16726 * raise make_ex(ret, "error deleting pool '%s'" % pool_name)
16727 */
16728 __pyx_v_ret = rados_pool_delete(__pyx_v_self->cluster, __pyx_v__pool_name);
16729 }
16730
16731 /* "rados.pyx":1147
16732 * char *_pool_name = pool_name
16733 *
16734 * with nogil: # <<<<<<<<<<<<<<
16735 * ret = rados_pool_delete(self.cluster, _pool_name)
16736 * if ret < 0:
16737 */
16738 /*finally:*/ {
16739 /*normal exit:*/{
16740 #ifdef WITH_THREAD1
16741 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
16742 #endif
16743 goto __pyx_L5;
16744 }
16745 __pyx_L5:;
16746 }
16747 }
16748
16749 /* "rados.pyx":1149
16750 * with nogil:
16751 * ret = rados_pool_delete(self.cluster, _pool_name)
16752 * if ret < 0: # <<<<<<<<<<<<<<
16753 * raise make_ex(ret, "error deleting pool '%s'" % pool_name)
16754 *
16755 */
16756 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
16757 if (__pyx_t_7) {
16758
16759 /* "rados.pyx":1150
16760 * ret = rados_pool_delete(self.cluster, _pool_name)
16761 * if ret < 0:
16762 * raise make_ex(ret, "error deleting pool '%s'" % pool_name) # <<<<<<<<<<<<<<
16763 *
16764 * @requires(('pool_id', int))
16765 */
16766 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__16766; goto __pyx_L1_error;}
16767 __Pyx_GOTREF(__pyx_t_2);
16768 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_deleting_pool_s, __pyx_v_pool_name)PyString_Format(__pyx_kp_s_error_deleting_pool_s, __pyx_v_pool_name
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__16768; goto __pyx_L1_error;}
16769 __Pyx_GOTREF(__pyx_t_1);
16770 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__16770; goto __pyx_L1_error;}
16771 __Pyx_GOTREF(__pyx_t_5);
16772 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
16773 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16774 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
16775 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
16776 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__16776; goto __pyx_L1_error;}
16777
16778 /* "rados.pyx":1149
16779 * with nogil:
16780 * ret = rados_pool_delete(self.cluster, _pool_name)
16781 * if ret < 0: # <<<<<<<<<<<<<<
16782 * raise make_ex(ret, "error deleting pool '%s'" % pool_name)
16783 *
16784 */
16785 }
16786
16787 /* "rados.pyx":1129
16788 *
16789 * @requires(('pool_name', str_type))
16790 * def delete_pool(self, pool_name): # <<<<<<<<<<<<<<
16791 * """
16792 * Delete a pool and all data inside it.
16793 */
16794
16795 /* function exit code */
16796 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
16797 goto __pyx_L0;
16798 __pyx_L1_error:;
16799 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
16800 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
16801 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
16802 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
16803 __Pyx_AddTraceback("rados.Rados.delete_pool", __pyx_clineno, __pyx_lineno, __pyx_filename);
16804 __pyx_r = NULL((void*)0);
16805 __pyx_L0:;
16806 __Pyx_XDECREF(__pyx_v_pool_name)do { if ((__pyx_v_pool_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_pool_name))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_pool_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_pool_name
)))); } while (0); } while (0)
;
16807 __Pyx_XGIVEREF(__pyx_r);
16808 __Pyx_RefNannyFinishContext();
16809 return __pyx_r;
16810}
16811
16812/* "rados.pyx":1153
16813 *
16814 * @requires(('pool_id', int))
16815 * def get_inconsistent_pgs(self, pool_id): # <<<<<<<<<<<<<<
16816 * """
16817 * List inconsistent placement groups in the given pool
16818 */
16819
16820/* Python wrapper */
16821static PyObject *__pyx_pw_5rados_5Rados_45get_inconsistent_pgs(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id); /*proto*/
16822static char __pyx_doc_5rados_5Rados_44get_inconsistent_pgs[] = "Rados.get_inconsistent_pgs(self, pool_id)\n\n List inconsistent placement groups in the given pool\n\n :param pool_id: ID of the pool in which PGs are listed\n :type pool_id: int\n :returns: list - inconsistent placement groups\n ";
16823static PyObject *__pyx_pw_5rados_5Rados_45get_inconsistent_pgs(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id) {
16824 PyObject *__pyx_r = 0;
16825 __Pyx_RefNannyDeclarations
16826 __Pyx_RefNannySetupContext("get_inconsistent_pgs (wrapper)", 0);
16827 __pyx_r = __pyx_pf_5rados_5Rados_44get_inconsistent_pgs(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_pool_id));
16828
16829 /* function exit code */
16830 __Pyx_RefNannyFinishContext();
16831 return __pyx_r;
16832}
16833
16834static PyObject *__pyx_pf_5rados_5Rados_44get_inconsistent_pgs(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id) {
16835 int64_t __pyx_v_pool;
16836 size_t __pyx_v_size;
16837 char *__pyx_v_pgs;
16838 int __pyx_v_ret;
16839 PyObject *__pyx_v_pg = NULL((void*)0);
16840 PyObject *__pyx_r = NULL((void*)0);
16841 __Pyx_RefNannyDeclarations
16842 PyObject *__pyx_t_1 = NULL((void*)0);
16843 PyObject *__pyx_t_2 = NULL((void*)0);
16844 int64_t __pyx_t_3;
16845 void *__pyx_t_4;
16846 int __pyx_t_5;
16847 PyObject *__pyx_t_6 = NULL((void*)0);
16848 PyObject *__pyx_t_7 = NULL((void*)0);
16849 PyObject *__pyx_t_8 = NULL((void*)0);
16850 PyObject *__pyx_t_9 = NULL((void*)0);
16851 Py_ssize_t __pyx_t_10;
16852 PyObject *(*__pyx_t_11)(PyObject *);
16853 int __pyx_t_12;
16854 int __pyx_t_13;
16855 char const *__pyx_t_14;
16856 PyObject *__pyx_t_15 = NULL((void*)0);
16857 PyObject *__pyx_t_16 = NULL((void*)0);
16858 PyObject *__pyx_t_17 = NULL((void*)0);
16859 PyObject *__pyx_t_18 = NULL((void*)0);
16860 PyObject *__pyx_t_19 = NULL((void*)0);
16861 PyObject *__pyx_t_20 = NULL((void*)0);
16862 int __pyx_lineno = 0;
16863 const char *__pyx_filename = NULL((void*)0);
16864 int __pyx_clineno = 0;
16865 __Pyx_RefNannySetupContext("get_inconsistent_pgs", 0);
16866
16867 /* "rados.pyx":1161
16868 * :returns: list - inconsistent placement groups
16869 * """
16870 * self.require_state("connected") # <<<<<<<<<<<<<<
16871 * cdef:
16872 * int64_t pool = pool_id
16873 */
16874 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__16874; goto __pyx_L1_error;}
16875 __Pyx_GOTREF(__pyx_t_1);
16876 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__29, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__16876; goto __pyx_L1_error;}
16877 __Pyx_GOTREF(__pyx_t_2);
16878 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
16879 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
16880
16881 /* "rados.pyx":1163
16882 * self.require_state("connected")
16883 * cdef:
16884 * int64_t pool = pool_id # <<<<<<<<<<<<<<
16885 * size_t size = 512
16886 * char *pgs = NULL
16887 */
16888 __pyx_t_3 = __Pyx_PyInt_As_int64_t(__pyx_v_pool_id); if (unlikely((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1163; __pyx_clineno = __LINE__16888; goto __pyx_L1_error;}
16889 __pyx_v_pool = __pyx_t_3;
16890
16891 /* "rados.pyx":1164
16892 * cdef:
16893 * int64_t pool = pool_id
16894 * size_t size = 512 # <<<<<<<<<<<<<<
16895 * char *pgs = NULL
16896 *
16897 */
16898 __pyx_v_size = 0x200;
16899
16900 /* "rados.pyx":1165
16901 * int64_t pool = pool_id
16902 * size_t size = 512
16903 * char *pgs = NULL # <<<<<<<<<<<<<<
16904 *
16905 * try:
16906 */
16907 __pyx_v_pgs = NULL((void*)0);
16908
16909 /* "rados.pyx":1167
16910 * char *pgs = NULL
16911 *
16912 * try: # <<<<<<<<<<<<<<
16913 * while True:
16914 * pgs = <char *>realloc_chk(pgs, size);
16915 */
16916 /*try:*/ {
16917
16918 /* "rados.pyx":1168
16919 *
16920 * try:
16921 * while True: # <<<<<<<<<<<<<<
16922 * pgs = <char *>realloc_chk(pgs, size);
16923 * with nogil:
16924 */
16925 while (1) {
16926
16927 /* "rados.pyx":1169
16928 * try:
16929 * while True:
16930 * pgs = <char *>realloc_chk(pgs, size); # <<<<<<<<<<<<<<
16931 * with nogil:
16932 * ret = rados_inconsistent_pg_list(self.cluster, pool,
16933 */
16934 __pyx_t_4 = __pyx_f_5rados_realloc_chk(__pyx_v_pgs, __pyx_v_size); if (unlikely(__pyx_t_4 == NULL)__builtin_expect(!!(__pyx_t_4 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1169; __pyx_clineno = __LINE__16934; goto __pyx_L4_error;}
16935 __pyx_v_pgs = ((char *)__pyx_t_4);
16936
16937 /* "rados.pyx":1170
16938 * while True:
16939 * pgs = <char *>realloc_chk(pgs, size);
16940 * with nogil: # <<<<<<<<<<<<<<
16941 * ret = rados_inconsistent_pg_list(self.cluster, pool,
16942 * pgs, size)
16943 */
16944 {
16945 #ifdef WITH_THREAD1
16946 PyThreadState *_save;
16947 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
16948 #endif
16949 /*try:*/ {
16950
16951 /* "rados.pyx":1171
16952 * pgs = <char *>realloc_chk(pgs, size);
16953 * with nogil:
16954 * ret = rados_inconsistent_pg_list(self.cluster, pool, # <<<<<<<<<<<<<<
16955 * pgs, size)
16956 * if ret > <int>size:
16957 */
16958 __pyx_v_ret = rados_inconsistent_pg_list(__pyx_v_self->cluster, __pyx_v_pool, __pyx_v_pgs, __pyx_v_size);
16959 }
16960
16961 /* "rados.pyx":1170
16962 * while True:
16963 * pgs = <char *>realloc_chk(pgs, size);
16964 * with nogil: # <<<<<<<<<<<<<<
16965 * ret = rados_inconsistent_pg_list(self.cluster, pool,
16966 * pgs, size)
16967 */
16968 /*finally:*/ {
16969 /*normal exit:*/{
16970 #ifdef WITH_THREAD1
16971 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
16972 #endif
16973 goto __pyx_L12;
16974 }
16975 __pyx_L12:;
16976 }
16977 }
16978
16979 /* "rados.pyx":1173
16980 * ret = rados_inconsistent_pg_list(self.cluster, pool,
16981 * pgs, size)
16982 * if ret > <int>size: # <<<<<<<<<<<<<<
16983 * size *= 2
16984 * elif ret >= 0:
16985 */
16986 __pyx_t_5 = ((__pyx_v_ret > ((int)__pyx_v_size)) != 0);
16987 if (__pyx_t_5) {
16988
16989 /* "rados.pyx":1174
16990 * pgs, size)
16991 * if ret > <int>size:
16992 * size *= 2 # <<<<<<<<<<<<<<
16993 * elif ret >= 0:
16994 * break
16995 */
16996 __pyx_v_size = (__pyx_v_size * 2);
16997
16998 /* "rados.pyx":1173
16999 * ret = rados_inconsistent_pg_list(self.cluster, pool,
17000 * pgs, size)
17001 * if ret > <int>size: # <<<<<<<<<<<<<<
17002 * size *= 2
17003 * elif ret >= 0:
17004 */
17005 goto __pyx_L13;
17006 }
17007
17008 /* "rados.pyx":1175
17009 * if ret > <int>size:
17010 * size *= 2
17011 * elif ret >= 0: # <<<<<<<<<<<<<<
17012 * break
17013 * else:
17014 */
17015 __pyx_t_5 = ((__pyx_v_ret >= 0) != 0);
17016 if (__pyx_t_5) {
17017
17018 /* "rados.pyx":1176
17019 * size *= 2
17020 * elif ret >= 0:
17021 * break # <<<<<<<<<<<<<<
17022 * else:
17023 * raise make_ex(ret, "error calling inconsistent_pg_list")
17024 */
17025 goto __pyx_L7_break;
17026
17027 /* "rados.pyx":1175
17028 * if ret > <int>size:
17029 * size *= 2
17030 * elif ret >= 0: # <<<<<<<<<<<<<<
17031 * break
17032 * else:
17033 */
17034 }
17035
17036 /* "rados.pyx":1178
17037 * break
17038 * else:
17039 * raise make_ex(ret, "error calling inconsistent_pg_list") # <<<<<<<<<<<<<<
17040 * return [pg for pg in decode_cstr(pgs[:ret]).split('\0') if pg]
17041 * finally:
17042 */
17043 /*else*/ {
17044 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__17044; goto __pyx_L4_error;}
17045 __Pyx_GOTREF(__pyx_t_2);
17046 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_calling_inconsistent_pg_li); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__17046; goto __pyx_L4_error;}
17047 __Pyx_GOTREF(__pyx_t_1);
17048 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
17049 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
17050 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
17051 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__17051; goto __pyx_L4_error;}
17052 }
17053 __pyx_L13:;
17054 }
17055 __pyx_L7_break:;
17056
17057 /* "rados.pyx":1179
17058 * else:
17059 * raise make_ex(ret, "error calling inconsistent_pg_list")
17060 * return [pg for pg in decode_cstr(pgs[:ret]).split('\0') if pg] # <<<<<<<<<<<<<<
17061 * finally:
17062 * free(pgs)
17063 */
17064 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
17065 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17065; goto __pyx_L4_error;}
17066 __Pyx_GOTREF(__pyx_t_1);
17067 __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17067; goto __pyx_L4_error;}
17068 __Pyx_GOTREF(__pyx_t_6);
17069 __pyx_t_7 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_pgs + 0, __pyx_v_ret - 0); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17069; goto __pyx_L4_error;}
17070 __Pyx_GOTREF(__pyx_t_7);
17071 __pyx_t_8 = NULL((void*)0);
17072 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_6))__builtin_expect(!!(((__pyx_t_6)->ob_type == &PyMethod_Type
)), 0)
) {
17073 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_self);
17074 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
17075 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_func);
17076 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
17077 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
17078 __Pyx_DECREF_SET(__pyx_t_6, function)do { PyObject *tmp = (PyObject *) __pyx_t_6; __pyx_t_6 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
17079 }
17080 }
17081 if (!__pyx_t_8) {
17082 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17082; goto __pyx_L4_error;}
17083 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
17084 __Pyx_GOTREF(__pyx_t_2);
17085 } else {
17086 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17086; goto __pyx_L4_error;}
17087 __Pyx_GOTREF(__pyx_t_9);
17088 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
17089 __Pyx_GIVEREF(__pyx_t_7);
17090 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_7)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_7);
17091 __pyx_t_7 = 0;
17092 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17092; goto __pyx_L4_error;}
17093 __Pyx_GOTREF(__pyx_t_2);
17094 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
17095 }
17096 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
17097 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17097; goto __pyx_L4_error;}
17098 __Pyx_GOTREF(__pyx_t_6);
17099 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
17100 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_tuple__30, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17100; goto __pyx_L4_error;}
17101 __Pyx_GOTREF(__pyx_t_2);
17102 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
17103 if (likely(PyList_CheckExact(__pyx_t_2))__builtin_expect(!!(((((PyObject*)(__pyx_t_2))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_2)((((PyObject*)(__pyx_t_2))->ob_type) == &PyTuple_Type)) {
17104 __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++); __pyx_t_10 = 0;
17105 __pyx_t_11 = NULL((void*)0);
17106 } else {
17107 __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17107; goto __pyx_L4_error;}
17108 __Pyx_GOTREF(__pyx_t_6);
17109 __pyx_t_11 = Py_TYPE(__pyx_t_6)(((PyObject*)(__pyx_t_6))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17109; goto __pyx_L4_error;}
17110 }
17111 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
17112 for (;;) {
17113 if (likely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 1)) {
17114 if (likely(PyList_CheckExact(__pyx_t_6))__builtin_expect(!!(((((PyObject*)(__pyx_t_6))->ob_type) ==
&PyList_Type)), 1)
) {
17115 if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)(((PyVarObject*)(__pyx_t_6))->ob_size)) break;
17116 #if CYTHON_COMPILING_IN_CPYTHON1
17117 __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10)(((PyListObject *)(__pyx_t_6))->ob_item[__pyx_t_10]); __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_10++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17117; goto __pyx_L4_error;}
17118 #else
17119 __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_10)( (((PyObject*)(__pyx_t_6))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_6, __pyx_t_10) )
; __pyx_t_10++; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17119; goto __pyx_L4_error;}
17120 __Pyx_GOTREF(__pyx_t_2);
17121 #endif
17122 } else {
17123 if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)(((PyVarObject*)(__pyx_t_6))->ob_size)) break;
17124 #if CYTHON_COMPILING_IN_CPYTHON1
17125 __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10)(((PyTupleObject *)(__pyx_t_6))->ob_item[__pyx_t_10]); __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_10++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17125; goto __pyx_L4_error;}
17126 #else
17127 __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_10)( (((PyObject*)(__pyx_t_6))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_6, __pyx_t_10) )
; __pyx_t_10++; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17127; goto __pyx_L4_error;}
17128 __Pyx_GOTREF(__pyx_t_2);
17129 #endif
17130 }
17131 } else {
17132 __pyx_t_2 = __pyx_t_11(__pyx_t_6);
17133 if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {
17134 PyObject* exc_type = PyErr_Occurred();
17135 if (exc_type) {
17136 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
17137 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17137; goto __pyx_L4_error;}
17138 }
17139 break;
17140 }
17141 __Pyx_GOTREF(__pyx_t_2);
17142 }
17143 __Pyx_XDECREF_SET(__pyx_v_pg, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_pg; __pyx_v_pg = __pyx_t_2
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
17144 __pyx_t_2 = 0;
17145 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_pg); if (unlikely(__pyx_t_5 < 0)__builtin_expect(!!(__pyx_t_5 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17145; goto __pyx_L4_error;}
17146 if (__pyx_t_5) {
17147 if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_pg))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_1, (PyObject
*)__pyx_v_pg)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__17147; goto __pyx_L4_error;}
17148 }
17149 }
17150 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
17151 __pyx_r = __pyx_t_1;
17152 __pyx_t_1 = 0;
17153 goto __pyx_L3_return;
17154 }
17155
17156 /* "rados.pyx":1181
17157 * return [pg for pg in decode_cstr(pgs[:ret]).split('\0') if pg]
17158 * finally:
17159 * free(pgs) # <<<<<<<<<<<<<<
17160 *
17161 * def list_pools(self):
17162 */
17163 /*finally:*/ {
17164 /*exception exit:*/{
17165 __pyx_L4_error:;
17166 __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
17167 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
17168 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
17169 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
; __pyx_t_9 = 0;
17170 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
17171 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
17172 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
17173 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
17174 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_15, &
__pyx_t_16, &__pyx_t_17) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
17175 __Pyx_XGOTREF(__pyx_t_15);
17176 __Pyx_XGOTREF(__pyx_t_16);
17177 __Pyx_XGOTREF(__pyx_t_17);
17178 __Pyx_XGOTREF(__pyx_t_18);
17179 __Pyx_XGOTREF(__pyx_t_19);
17180 __Pyx_XGOTREF(__pyx_t_20);
17181 __pyx_t_12 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
17182 {
17183 free(__pyx_v_pgs);
17184 }
17185 if (PY_MAJOR_VERSION2 >= 3) {
17186 __Pyx_XGIVEREF(__pyx_t_18);
17187 __Pyx_XGIVEREF(__pyx_t_19);
17188 __Pyx_XGIVEREF(__pyx_t_20);
17189 __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
17190 }
17191 __Pyx_XGIVEREF(__pyx_t_15);
17192 __Pyx_XGIVEREF(__pyx_t_16);
17193 __Pyx_XGIVEREF(__pyx_t_17);
17194 __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
17195 __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
17196 __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
17197 goto __pyx_L1_error;
17198 }
17199 __pyx_L3_return: {
17200 __pyx_t_20 = __pyx_r;
17201 __pyx_r = 0;
17202 free(__pyx_v_pgs);
17203 __pyx_r = __pyx_t_20;
17204 __pyx_t_20 = 0;
17205 goto __pyx_L0;
17206 }
17207 }
17208
17209 /* "rados.pyx":1153
17210 *
17211 * @requires(('pool_id', int))
17212 * def get_inconsistent_pgs(self, pool_id): # <<<<<<<<<<<<<<
17213 * """
17214 * List inconsistent placement groups in the given pool
17215 */
17216
17217 /* function exit code */
17218 __pyx_L1_error:;
17219 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
17220 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
17221 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
17222 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
17223 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
17224 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
17225 __Pyx_AddTraceback("rados.Rados.get_inconsistent_pgs", __pyx_clineno, __pyx_lineno, __pyx_filename);
17226 __pyx_r = NULL((void*)0);
17227 __pyx_L0:;
17228 __Pyx_XDECREF(__pyx_v_pg)do { if ((__pyx_v_pg) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_pg))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_v_pg)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_pg)))); } while (0); } while (0)
;
17229 __Pyx_XGIVEREF(__pyx_r);
17230 __Pyx_RefNannyFinishContext();
17231 return __pyx_r;
17232}
17233
17234/* "rados.pyx":1183
17235 * free(pgs)
17236 *
17237 * def list_pools(self): # <<<<<<<<<<<<<<
17238 * """
17239 * Gets a list of pool names.
17240 */
17241
17242/* Python wrapper */
17243static PyObject *__pyx_pw_5rados_5Rados_47list_pools(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
17244static char __pyx_doc_5rados_5Rados_46list_pools[] = "Rados.list_pools(self)\n\n Gets a list of pool names.\n\n :returns: list - of pool names.\n ";
17245static PyObject *__pyx_pw_5rados_5Rados_47list_pools(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
17246 PyObject *__pyx_r = 0;
17247 __Pyx_RefNannyDeclarations
17248 __Pyx_RefNannySetupContext("list_pools (wrapper)", 0);
17249 __pyx_r = __pyx_pf_5rados_5Rados_46list_pools(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
17250
17251 /* function exit code */
17252 __Pyx_RefNannyFinishContext();
17253 return __pyx_r;
17254}
17255
17256static PyObject *__pyx_pf_5rados_5Rados_46list_pools(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
17257 size_t __pyx_v_size;
17258 char *__pyx_v_c_names;
17259 int __pyx_v_ret;
17260 PyObject *__pyx_v_name = NULL((void*)0);
17261 PyObject *__pyx_r = NULL((void*)0);
17262 __Pyx_RefNannyDeclarations
17263 PyObject *__pyx_t_1 = NULL((void*)0);
17264 PyObject *__pyx_t_2 = NULL((void*)0);
17265 void *__pyx_t_3;
17266 int __pyx_t_4;
17267 PyObject *__pyx_t_5 = NULL((void*)0);
17268 PyObject *__pyx_t_6 = NULL((void*)0);
17269 PyObject *__pyx_t_7 = NULL((void*)0);
17270 PyObject *__pyx_t_8 = NULL((void*)0);
17271 Py_ssize_t __pyx_t_9;
17272 PyObject *(*__pyx_t_10)(PyObject *);
17273 int __pyx_t_11;
17274 int __pyx_t_12;
17275 char const *__pyx_t_13;
17276 PyObject *__pyx_t_14 = NULL((void*)0);
17277 PyObject *__pyx_t_15 = NULL((void*)0);
17278 PyObject *__pyx_t_16 = NULL((void*)0);
17279 PyObject *__pyx_t_17 = NULL((void*)0);
17280 PyObject *__pyx_t_18 = NULL((void*)0);
17281 PyObject *__pyx_t_19 = NULL((void*)0);
17282 int __pyx_lineno = 0;
17283 const char *__pyx_filename = NULL((void*)0);
17284 int __pyx_clineno = 0;
17285 __Pyx_RefNannySetupContext("list_pools", 0);
17286
17287 /* "rados.pyx":1189
17288 * :returns: list - of pool names.
17289 * """
17290 * self.require_state("connected") # <<<<<<<<<<<<<<
17291 * cdef:
17292 * size_t size = 512
17293 */
17294 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1189; __pyx_clineno = __LINE__17294; goto __pyx_L1_error;}
17295 __Pyx_GOTREF(__pyx_t_1);
17296 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__31, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1189; __pyx_clineno = __LINE__17296; goto __pyx_L1_error;}
17297 __Pyx_GOTREF(__pyx_t_2);
17298 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
17299 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
17300
17301 /* "rados.pyx":1191
17302 * self.require_state("connected")
17303 * cdef:
17304 * size_t size = 512 # <<<<<<<<<<<<<<
17305 * char *c_names = NULL
17306 *
17307 */
17308 __pyx_v_size = 0x200;
17309
17310 /* "rados.pyx":1192
17311 * cdef:
17312 * size_t size = 512
17313 * char *c_names = NULL # <<<<<<<<<<<<<<
17314 *
17315 * try:
17316 */
17317 __pyx_v_c_names = NULL((void*)0);
17318
17319 /* "rados.pyx":1194
17320 * char *c_names = NULL
17321 *
17322 * try: # <<<<<<<<<<<<<<
17323 * while True:
17324 * c_names = <char *>realloc_chk(c_names, size)
17325 */
17326 /*try:*/ {
17327
17328 /* "rados.pyx":1195
17329 *
17330 * try:
17331 * while True: # <<<<<<<<<<<<<<
17332 * c_names = <char *>realloc_chk(c_names, size)
17333 * with nogil:
17334 */
17335 while (1) {
17336
17337 /* "rados.pyx":1196
17338 * try:
17339 * while True:
17340 * c_names = <char *>realloc_chk(c_names, size) # <<<<<<<<<<<<<<
17341 * with nogil:
17342 * ret = rados_pool_list(self.cluster, c_names, size)
17343 */
17344 __pyx_t_3 = __pyx_f_5rados_realloc_chk(__pyx_v_c_names, __pyx_v_size); if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__17344; goto __pyx_L4_error;}
17345 __pyx_v_c_names = ((char *)__pyx_t_3);
17346
17347 /* "rados.pyx":1197
17348 * while True:
17349 * c_names = <char *>realloc_chk(c_names, size)
17350 * with nogil: # <<<<<<<<<<<<<<
17351 * ret = rados_pool_list(self.cluster, c_names, size)
17352 * if ret > <int>size:
17353 */
17354 {
17355 #ifdef WITH_THREAD1
17356 PyThreadState *_save;
17357 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
17358 #endif
17359 /*try:*/ {
17360
17361 /* "rados.pyx":1198
17362 * c_names = <char *>realloc_chk(c_names, size)
17363 * with nogil:
17364 * ret = rados_pool_list(self.cluster, c_names, size) # <<<<<<<<<<<<<<
17365 * if ret > <int>size:
17366 * size *= 2
17367 */
17368 __pyx_v_ret = rados_pool_list(__pyx_v_self->cluster, __pyx_v_c_names, __pyx_v_size);
17369 }
17370
17371 /* "rados.pyx":1197
17372 * while True:
17373 * c_names = <char *>realloc_chk(c_names, size)
17374 * with nogil: # <<<<<<<<<<<<<<
17375 * ret = rados_pool_list(self.cluster, c_names, size)
17376 * if ret > <int>size:
17377 */
17378 /*finally:*/ {
17379 /*normal exit:*/{
17380 #ifdef WITH_THREAD1
17381 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
17382 #endif
17383 goto __pyx_L12;
17384 }
17385 __pyx_L12:;
17386 }
17387 }
17388
17389 /* "rados.pyx":1199
17390 * with nogil:
17391 * ret = rados_pool_list(self.cluster, c_names, size)
17392 * if ret > <int>size: # <<<<<<<<<<<<<<
17393 * size *= 2
17394 * elif ret >= 0:
17395 */
17396 __pyx_t_4 = ((__pyx_v_ret > ((int)__pyx_v_size)) != 0);
17397 if (__pyx_t_4) {
17398
17399 /* "rados.pyx":1200
17400 * ret = rados_pool_list(self.cluster, c_names, size)
17401 * if ret > <int>size:
17402 * size *= 2 # <<<<<<<<<<<<<<
17403 * elif ret >= 0:
17404 * break
17405 */
17406 __pyx_v_size = (__pyx_v_size * 2);
17407
17408 /* "rados.pyx":1199
17409 * with nogil:
17410 * ret = rados_pool_list(self.cluster, c_names, size)
17411 * if ret > <int>size: # <<<<<<<<<<<<<<
17412 * size *= 2
17413 * elif ret >= 0:
17414 */
17415 goto __pyx_L13;
17416 }
17417
17418 /* "rados.pyx":1201
17419 * if ret > <int>size:
17420 * size *= 2
17421 * elif ret >= 0: # <<<<<<<<<<<<<<
17422 * break
17423 * return [name for name in decode_cstr(c_names[:ret]).split('\0')
17424 */
17425 __pyx_t_4 = ((__pyx_v_ret >= 0) != 0);
17426 if (__pyx_t_4) {
17427
17428 /* "rados.pyx":1202
17429 * size *= 2
17430 * elif ret >= 0:
17431 * break # <<<<<<<<<<<<<<
17432 * return [name for name in decode_cstr(c_names[:ret]).split('\0')
17433 * if name]
17434 */
17435 goto __pyx_L7_break;
17436
17437 /* "rados.pyx":1201
17438 * if ret > <int>size:
17439 * size *= 2
17440 * elif ret >= 0: # <<<<<<<<<<<<<<
17441 * break
17442 * return [name for name in decode_cstr(c_names[:ret]).split('\0')
17443 */
17444 }
17445 __pyx_L13:;
17446 }
17447 __pyx_L7_break:;
17448
17449 /* "rados.pyx":1203
17450 * elif ret >= 0:
17451 * break
17452 * return [name for name in decode_cstr(c_names[:ret]).split('\0') # <<<<<<<<<<<<<<
17453 * if name]
17454 * finally:
17455 */
17456 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
17457 __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17457; goto __pyx_L4_error;}
17458 __Pyx_GOTREF(__pyx_t_2);
17459 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17459; goto __pyx_L4_error;}
17460 __Pyx_GOTREF(__pyx_t_5);
17461 __pyx_t_6 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_c_names + 0, __pyx_v_ret - 0); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17461; goto __pyx_L4_error;}
17462 __Pyx_GOTREF(__pyx_t_6);
17463 __pyx_t_7 = NULL((void*)0);
17464 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
17465 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
17466 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
17467 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
17468 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
17469 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
17470 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
17471 }
17472 }
17473 if (!__pyx_t_7) {
17474 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17474; goto __pyx_L4_error;}
17475 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
17476 __Pyx_GOTREF(__pyx_t_1);
17477 } else {
17478 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17478; goto __pyx_L4_error;}
17479 __Pyx_GOTREF(__pyx_t_8);
17480 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
17481 __Pyx_GIVEREF(__pyx_t_6);
17482 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_6)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_6);
17483 __pyx_t_6 = 0;
17484 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17484; goto __pyx_L4_error;}
17485 __Pyx_GOTREF(__pyx_t_1);
17486 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
17487 }
17488 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
17489 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_split); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17489; goto __pyx_L4_error;}
17490 __Pyx_GOTREF(__pyx_t_5);
17491 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
17492 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__32, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17492; goto __pyx_L4_error;}
17493 __Pyx_GOTREF(__pyx_t_1);
17494 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
17495 if (likely(PyList_CheckExact(__pyx_t_1))__builtin_expect(!!(((((PyObject*)(__pyx_t_1))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_1)((((PyObject*)(__pyx_t_1))->ob_type) == &PyTuple_Type)) {
17496 __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++); __pyx_t_9 = 0;
17497 __pyx_t_10 = NULL((void*)0);
17498 } else {
17499 __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17499; goto __pyx_L4_error;}
17500 __Pyx_GOTREF(__pyx_t_5);
17501 __pyx_t_10 = Py_TYPE(__pyx_t_5)(((PyObject*)(__pyx_t_5))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17501; goto __pyx_L4_error;}
17502 }
17503 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
17504 for (;;) {
17505 if (likely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 1)) {
17506 if (likely(PyList_CheckExact(__pyx_t_5))__builtin_expect(!!(((((PyObject*)(__pyx_t_5))->ob_type) ==
&PyList_Type)), 1)
) {
17507 if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)(((PyVarObject*)(__pyx_t_5))->ob_size)) break;
17508 #if CYTHON_COMPILING_IN_CPYTHON1
17509 __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9)(((PyListObject *)(__pyx_t_5))->ob_item[__pyx_t_9]); __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_9++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17509; goto __pyx_L4_error;}
17510 #else
17511 __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_9)( (((PyObject*)(__pyx_t_5))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_5, __pyx_t_9) )
; __pyx_t_9++; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17511; goto __pyx_L4_error;}
17512 __Pyx_GOTREF(__pyx_t_1);
17513 #endif
17514 } else {
17515 if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)(((PyVarObject*)(__pyx_t_5))->ob_size)) break;
17516 #if CYTHON_COMPILING_IN_CPYTHON1
17517 __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9)(((PyTupleObject *)(__pyx_t_5))->ob_item[__pyx_t_9]); __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++); __pyx_t_9++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17517; goto __pyx_L4_error;}
17518 #else
17519 __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_9)( (((PyObject*)(__pyx_t_5))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_5, __pyx_t_9) )
; __pyx_t_9++; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17519; goto __pyx_L4_error;}
17520 __Pyx_GOTREF(__pyx_t_1);
17521 #endif
17522 }
17523 } else {
17524 __pyx_t_1 = __pyx_t_10(__pyx_t_5);
17525 if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {
17526 PyObject* exc_type = PyErr_Occurred();
17527 if (exc_type) {
17528 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
17529 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17529; goto __pyx_L4_error;}
17530 }
17531 break;
17532 }
17533 __Pyx_GOTREF(__pyx_t_1);
17534 }
17535 __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_name; __pyx_v_name =
__pyx_t_1; do { if ((tmp) == ((void*)0)) ; else do { if ( --
((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0); } while (0); } while (
0)
;
17536 __pyx_t_1 = 0;
17537
17538 /* "rados.pyx":1204
17539 * break
17540 * return [name for name in decode_cstr(c_names[:ret]).split('\0')
17541 * if name] # <<<<<<<<<<<<<<
17542 * finally:
17543 * free(c_names)
17544 */
17545 __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_4 < 0)__builtin_expect(!!(__pyx_t_4 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1204; __pyx_clineno = __LINE__17545; goto __pyx_L4_error;}
17546 if (__pyx_t_4) {
17547
17548 /* "rados.pyx":1203
17549 * elif ret >= 0:
17550 * break
17551 * return [name for name in decode_cstr(c_names[:ret]).split('\0') # <<<<<<<<<<<<<<
17552 * if name]
17553 * finally:
17554 */
17555 if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_name))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_2, (PyObject
*)__pyx_v_name)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__17555; goto __pyx_L4_error;}
17556
17557 /* "rados.pyx":1204
17558 * break
17559 * return [name for name in decode_cstr(c_names[:ret]).split('\0')
17560 * if name] # <<<<<<<<<<<<<<
17561 * finally:
17562 * free(c_names)
17563 */
17564 }
17565
17566 /* "rados.pyx":1203
17567 * elif ret >= 0:
17568 * break
17569 * return [name for name in decode_cstr(c_names[:ret]).split('\0') # <<<<<<<<<<<<<<
17570 * if name]
17571 * finally:
17572 */
17573 }
17574 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
17575 __pyx_r = __pyx_t_2;
17576 __pyx_t_2 = 0;
17577 goto __pyx_L3_return;
17578 }
17579
17580 /* "rados.pyx":1206
17581 * if name]
17582 * finally:
17583 * free(c_names) # <<<<<<<<<<<<<<
17584 *
17585 * def get_fsid(self):
17586 */
17587 /*finally:*/ {
17588 /*exception exit:*/{
17589 __pyx_L4_error:;
17590 __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
17591 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
17592 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
17593 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
17594 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
17595 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
17596 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
17597 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
17598 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_14, &
__pyx_t_15, &__pyx_t_16) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
17599 __Pyx_XGOTREF(__pyx_t_14);
17600 __Pyx_XGOTREF(__pyx_t_15);
17601 __Pyx_XGOTREF(__pyx_t_16);
17602 __Pyx_XGOTREF(__pyx_t_17);
17603 __Pyx_XGOTREF(__pyx_t_18);
17604 __Pyx_XGOTREF(__pyx_t_19);
17605 __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
17606 {
17607 free(__pyx_v_c_names);
17608 }
17609 if (PY_MAJOR_VERSION2 >= 3) {
17610 __Pyx_XGIVEREF(__pyx_t_17);
17611 __Pyx_XGIVEREF(__pyx_t_18);
17612 __Pyx_XGIVEREF(__pyx_t_19);
17613 __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
17614 }
17615 __Pyx_XGIVEREF(__pyx_t_14);
17616 __Pyx_XGIVEREF(__pyx_t_15);
17617 __Pyx_XGIVEREF(__pyx_t_16);
17618 __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
17619 __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
17620 __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
17621 goto __pyx_L1_error;
17622 }
17623 __pyx_L3_return: {
17624 __pyx_t_19 = __pyx_r;
17625 __pyx_r = 0;
17626 free(__pyx_v_c_names);
17627 __pyx_r = __pyx_t_19;
17628 __pyx_t_19 = 0;
17629 goto __pyx_L0;
17630 }
17631 }
17632
17633 /* "rados.pyx":1183
17634 * free(pgs)
17635 *
17636 * def list_pools(self): # <<<<<<<<<<<<<<
17637 * """
17638 * Gets a list of pool names.
17639 */
17640
17641 /* function exit code */
17642 __pyx_L1_error:;
17643 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
17644 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
17645 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
17646 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
17647 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
17648 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
17649 __Pyx_AddTraceback("rados.Rados.list_pools", __pyx_clineno, __pyx_lineno, __pyx_filename);
17650 __pyx_r = NULL((void*)0);
17651 __pyx_L0:;
17652 __Pyx_XDECREF(__pyx_v_name)do { if ((__pyx_v_name) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_name))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_name)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_name)))); } while (0); } while
(0)
;
17653 __Pyx_XGIVEREF(__pyx_r);
17654 __Pyx_RefNannyFinishContext();
17655 return __pyx_r;
17656}
17657
17658/* "rados.pyx":1208
17659 * free(c_names)
17660 *
17661 * def get_fsid(self): # <<<<<<<<<<<<<<
17662 * """
17663 * Get the fsid of the cluster as a hexadecimal string.
17664 */
17665
17666/* Python wrapper */
17667static PyObject *__pyx_pw_5rados_5Rados_49get_fsid(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
17668static char __pyx_doc_5rados_5Rados_48get_fsid[] = "Rados.get_fsid(self)\n\n Get the fsid of the cluster as a hexadecimal string.\n\n :raises: :class:`Error`\n :returns: str - cluster fsid\n ";
17669static PyObject *__pyx_pw_5rados_5Rados_49get_fsid(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
17670 PyObject *__pyx_r = 0;
17671 __Pyx_RefNannyDeclarations
17672 __Pyx_RefNannySetupContext("get_fsid (wrapper)", 0);
17673 __pyx_r = __pyx_pf_5rados_5Rados_48get_fsid(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
17674
17675 /* function exit code */
17676 __Pyx_RefNannyFinishContext();
17677 return __pyx_r;
17678}
17679
17680static PyObject *__pyx_pf_5rados_5Rados_48get_fsid(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
17681 char *__pyx_v_ret_buf;
17682 size_t __pyx_v_buf_len;
17683 int __pyx_v_ret;
17684 PyObject *__pyx_r = NULL((void*)0);
17685 __Pyx_RefNannyDeclarations
17686 PyObject *__pyx_t_1 = NULL((void*)0);
17687 PyObject *__pyx_t_2 = NULL((void*)0);
17688 void *__pyx_t_3;
17689 int __pyx_t_4;
17690 PyObject *__pyx_t_5 = NULL((void*)0);
17691 PyObject *__pyx_t_6 = NULL((void*)0);
17692 PyObject *__pyx_t_7 = NULL((void*)0);
17693 int __pyx_t_8;
17694 int __pyx_t_9;
17695 char const *__pyx_t_10;
17696 PyObject *__pyx_t_11 = NULL((void*)0);
17697 PyObject *__pyx_t_12 = NULL((void*)0);
17698 PyObject *__pyx_t_13 = NULL((void*)0);
17699 PyObject *__pyx_t_14 = NULL((void*)0);
17700 PyObject *__pyx_t_15 = NULL((void*)0);
17701 PyObject *__pyx_t_16 = NULL((void*)0);
17702 int __pyx_lineno = 0;
17703 const char *__pyx_filename = NULL((void*)0);
17704 int __pyx_clineno = 0;
17705 __Pyx_RefNannySetupContext("get_fsid", 0);
17706
17707 /* "rados.pyx":1215
17708 * :returns: str - cluster fsid
17709 * """
17710 * self.require_state("connected") # <<<<<<<<<<<<<<
17711 * cdef:
17712 * char *ret_buf = NULL
17713 */
17714 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; __pyx_clineno = __LINE__17714; goto __pyx_L1_error;}
17715 __Pyx_GOTREF(__pyx_t_1);
17716 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__33, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; __pyx_clineno = __LINE__17716; goto __pyx_L1_error;}
17717 __Pyx_GOTREF(__pyx_t_2);
17718 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
17719 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
17720
17721 /* "rados.pyx":1217
17722 * self.require_state("connected")
17723 * cdef:
17724 * char *ret_buf = NULL # <<<<<<<<<<<<<<
17725 * size_t buf_len = 64
17726 *
17727 */
17728 __pyx_v_ret_buf = NULL((void*)0);
17729
17730 /* "rados.pyx":1218
17731 * cdef:
17732 * char *ret_buf = NULL
17733 * size_t buf_len = 64 # <<<<<<<<<<<<<<
17734 *
17735 * try:
17736 */
17737 __pyx_v_buf_len = 64;
17738
17739 /* "rados.pyx":1220
17740 * size_t buf_len = 64
17741 *
17742 * try: # <<<<<<<<<<<<<<
17743 * while True:
17744 * ret_buf = <char *>realloc_chk(ret_buf, buf_len)
17745 */
17746 /*try:*/ {
17747
17748 /* "rados.pyx":1221
17749 *
17750 * try:
17751 * while True: # <<<<<<<<<<<<<<
17752 * ret_buf = <char *>realloc_chk(ret_buf, buf_len)
17753 * with nogil:
17754 */
17755 while (1) {
17756
17757 /* "rados.pyx":1222
17758 * try:
17759 * while True:
17760 * ret_buf = <char *>realloc_chk(ret_buf, buf_len) # <<<<<<<<<<<<<<
17761 * with nogil:
17762 * ret = rados_cluster_fsid(self.cluster, ret_buf, buf_len)
17763 */
17764 __pyx_t_3 = __pyx_f_5rados_realloc_chk(__pyx_v_ret_buf, __pyx_v_buf_len); if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1222; __pyx_clineno = __LINE__17764; goto __pyx_L4_error;}
17765 __pyx_v_ret_buf = ((char *)__pyx_t_3);
17766
17767 /* "rados.pyx":1223
17768 * while True:
17769 * ret_buf = <char *>realloc_chk(ret_buf, buf_len)
17770 * with nogil: # <<<<<<<<<<<<<<
17771 * ret = rados_cluster_fsid(self.cluster, ret_buf, buf_len)
17772 * if ret == -errno.ERANGE:
17773 */
17774 {
17775 #ifdef WITH_THREAD1
17776 PyThreadState *_save;
17777 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
17778 #endif
17779 /*try:*/ {
17780
17781 /* "rados.pyx":1224
17782 * ret_buf = <char *>realloc_chk(ret_buf, buf_len)
17783 * with nogil:
17784 * ret = rados_cluster_fsid(self.cluster, ret_buf, buf_len) # <<<<<<<<<<<<<<
17785 * if ret == -errno.ERANGE:
17786 * buf_len = buf_len * 2
17787 */
17788 __pyx_v_ret = rados_cluster_fsid(__pyx_v_self->cluster, __pyx_v_ret_buf, __pyx_v_buf_len);
17789 }
17790
17791 /* "rados.pyx":1223
17792 * while True:
17793 * ret_buf = <char *>realloc_chk(ret_buf, buf_len)
17794 * with nogil: # <<<<<<<<<<<<<<
17795 * ret = rados_cluster_fsid(self.cluster, ret_buf, buf_len)
17796 * if ret == -errno.ERANGE:
17797 */
17798 /*finally:*/ {
17799 /*normal exit:*/{
17800 #ifdef WITH_THREAD1
17801 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
17802 #endif
17803 goto __pyx_L12;
17804 }
17805 __pyx_L12:;
17806 }
17807 }
17808
17809 /* "rados.pyx":1225
17810 * with nogil:
17811 * ret = rados_cluster_fsid(self.cluster, ret_buf, buf_len)
17812 * if ret == -errno.ERANGE: # <<<<<<<<<<<<<<
17813 * buf_len = buf_len * 2
17814 * elif ret < 0:
17815 */
17816 __pyx_t_4 = ((__pyx_v_ret == (-ERANGE34)) != 0);
17817 if (__pyx_t_4) {
17818
17819 /* "rados.pyx":1226
17820 * ret = rados_cluster_fsid(self.cluster, ret_buf, buf_len)
17821 * if ret == -errno.ERANGE:
17822 * buf_len = buf_len * 2 # <<<<<<<<<<<<<<
17823 * elif ret < 0:
17824 * raise make_ex(ret, "error getting cluster fsid")
17825 */
17826 __pyx_v_buf_len = (__pyx_v_buf_len * 2);
17827
17828 /* "rados.pyx":1225
17829 * with nogil:
17830 * ret = rados_cluster_fsid(self.cluster, ret_buf, buf_len)
17831 * if ret == -errno.ERANGE: # <<<<<<<<<<<<<<
17832 * buf_len = buf_len * 2
17833 * elif ret < 0:
17834 */
17835 goto __pyx_L13;
17836 }
17837
17838 /* "rados.pyx":1227
17839 * if ret == -errno.ERANGE:
17840 * buf_len = buf_len * 2
17841 * elif ret < 0: # <<<<<<<<<<<<<<
17842 * raise make_ex(ret, "error getting cluster fsid")
17843 * else:
17844 */
17845 __pyx_t_4 = ((__pyx_v_ret < 0) != 0);
17846 if (__pyx_t_4) {
17847
17848 /* "rados.pyx":1228
17849 * buf_len = buf_len * 2
17850 * elif ret < 0:
17851 * raise make_ex(ret, "error getting cluster fsid") # <<<<<<<<<<<<<<
17852 * else:
17853 * break
17854 */
17855 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__17855; goto __pyx_L4_error;}
17856 __Pyx_GOTREF(__pyx_t_2);
17857 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_getting_cluster_fsid); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__17857; goto __pyx_L4_error;}
17858 __Pyx_GOTREF(__pyx_t_1);
17859 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
17860 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
17861 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
17862 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__17862; goto __pyx_L4_error;}
17863
17864 /* "rados.pyx":1227
17865 * if ret == -errno.ERANGE:
17866 * buf_len = buf_len * 2
17867 * elif ret < 0: # <<<<<<<<<<<<<<
17868 * raise make_ex(ret, "error getting cluster fsid")
17869 * else:
17870 */
17871 }
17872
17873 /* "rados.pyx":1230
17874 * raise make_ex(ret, "error getting cluster fsid")
17875 * else:
17876 * break # <<<<<<<<<<<<<<
17877 * return decode_cstr(ret_buf)
17878 * finally:
17879 */
17880 /*else*/ {
17881 goto __pyx_L7_break;
17882 }
17883 __pyx_L13:;
17884 }
17885 __pyx_L7_break:;
17886
17887 /* "rados.pyx":1231
17888 * else:
17889 * break
17890 * return decode_cstr(ret_buf) # <<<<<<<<<<<<<<
17891 * finally:
17892 * free(ret_buf)
17893 */
17894 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
17895 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__17895; goto __pyx_L4_error;}
17896 __Pyx_GOTREF(__pyx_t_2);
17897 __pyx_t_5 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_ret_buf); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__17897; goto __pyx_L4_error;}
17898 __Pyx_GOTREF(__pyx_t_5);
17899 __pyx_t_6 = NULL((void*)0);
17900 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
17901 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
17902 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
17903 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
17904 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
17905 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
17906 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
17907 }
17908 }
17909 if (!__pyx_t_6) {
17910 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__17910; goto __pyx_L4_error;}
17911 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
17912 __Pyx_GOTREF(__pyx_t_1);
17913 } else {
17914 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__17914; goto __pyx_L4_error;}
17915 __Pyx_GOTREF(__pyx_t_7);
17916 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
17917 __Pyx_GIVEREF(__pyx_t_5);
17918 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
17919 __pyx_t_5 = 0;
17920 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__17920; goto __pyx_L4_error;}
17921 __Pyx_GOTREF(__pyx_t_1);
17922 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
17923 }
17924 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
17925 __pyx_r = __pyx_t_1;
17926 __pyx_t_1 = 0;
17927 goto __pyx_L3_return;
17928 }
17929
17930 /* "rados.pyx":1233
17931 * return decode_cstr(ret_buf)
17932 * finally:
17933 * free(ret_buf) # <<<<<<<<<<<<<<
17934 *
17935 * @requires(('ioctx_name', str_type))
17936 */
17937 /*finally:*/ {
17938 /*exception exit:*/{
17939 __pyx_L4_error:;
17940 __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0;
17941 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
17942 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
17943 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
17944 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
17945 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
17946 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
17947 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_11, &
__pyx_t_12, &__pyx_t_13) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
17948 __Pyx_XGOTREF(__pyx_t_11);
17949 __Pyx_XGOTREF(__pyx_t_12);
17950 __Pyx_XGOTREF(__pyx_t_13);
17951 __Pyx_XGOTREF(__pyx_t_14);
17952 __Pyx_XGOTREF(__pyx_t_15);
17953 __Pyx_XGOTREF(__pyx_t_16);
17954 __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename;
17955 {
17956 free(__pyx_v_ret_buf);
17957 }
17958 if (PY_MAJOR_VERSION2 >= 3) {
17959 __Pyx_XGIVEREF(__pyx_t_14);
17960 __Pyx_XGIVEREF(__pyx_t_15);
17961 __Pyx_XGIVEREF(__pyx_t_16);
17962 __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
17963 }
17964 __Pyx_XGIVEREF(__pyx_t_11);
17965 __Pyx_XGIVEREF(__pyx_t_12);
17966 __Pyx_XGIVEREF(__pyx_t_13);
17967 __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13);
17968 __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0;
17969 __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10;
17970 goto __pyx_L1_error;
17971 }
17972 __pyx_L3_return: {
17973 __pyx_t_16 = __pyx_r;
17974 __pyx_r = 0;
17975 free(__pyx_v_ret_buf);
17976 __pyx_r = __pyx_t_16;
17977 __pyx_t_16 = 0;
17978 goto __pyx_L0;
17979 }
17980 }
17981
17982 /* "rados.pyx":1208
17983 * free(c_names)
17984 *
17985 * def get_fsid(self): # <<<<<<<<<<<<<<
17986 * """
17987 * Get the fsid of the cluster as a hexadecimal string.
17988 */
17989
17990 /* function exit code */
17991 __pyx_L1_error:;
17992 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
17993 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
17994 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
17995 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
17996 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
17997 __Pyx_AddTraceback("rados.Rados.get_fsid", __pyx_clineno, __pyx_lineno, __pyx_filename);
17998 __pyx_r = NULL((void*)0);
17999 __pyx_L0:;
18000 __Pyx_XGIVEREF(__pyx_r);
18001 __Pyx_RefNannyFinishContext();
18002 return __pyx_r;
18003}
18004
18005/* "rados.pyx":1236
18006 *
18007 * @requires(('ioctx_name', str_type))
18008 * def open_ioctx(self, ioctx_name): # <<<<<<<<<<<<<<
18009 * """
18010 * Create an io context
18011 */
18012
18013/* Python wrapper */
18014static PyObject *__pyx_pw_5rados_5Rados_51open_ioctx(PyObject *__pyx_v_self, PyObject *__pyx_v_ioctx_name); /*proto*/
18015static char __pyx_doc_5rados_5Rados_50open_ioctx[] = "Rados.open_ioctx(self, ioctx_name)\n\n Create an io context\n\n The io context allows you to perform operations within a particular\n pool.\n\n :param ioctx_name: name of the pool\n :type ioctx_name: str\n\n :raises: :class:`TypeError`, :class:`Error`\n :returns: Ioctx - Rados Ioctx object\n ";
18016static PyObject *__pyx_pw_5rados_5Rados_51open_ioctx(PyObject *__pyx_v_self, PyObject *__pyx_v_ioctx_name) {
18017 PyObject *__pyx_r = 0;
18018 __Pyx_RefNannyDeclarations
18019 __Pyx_RefNannySetupContext("open_ioctx (wrapper)", 0);
18020 __pyx_r = __pyx_pf_5rados_5Rados_50open_ioctx(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_ioctx_name));
18021
18022 /* function exit code */
18023 __Pyx_RefNannyFinishContext();
18024 return __pyx_r;
18025}
18026
18027static PyObject *__pyx_pf_5rados_5Rados_50open_ioctx(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_ioctx_name) {
18028 rados_ioctx_t __pyx_v_ioctx;
18029 char *__pyx_v__ioctx_name;
18030 int __pyx_v_ret;
18031 struct __pyx_obj_5rados_Ioctx *__pyx_v_io = NULL((void*)0);
18032 PyObject *__pyx_r = NULL((void*)0);
18033 __Pyx_RefNannyDeclarations
18034 PyObject *__pyx_t_1 = NULL((void*)0);
18035 PyObject *__pyx_t_2 = NULL((void*)0);
18036 PyObject *__pyx_t_3 = NULL((void*)0);
18037 Py_ssize_t __pyx_t_4;
18038 PyObject *__pyx_t_5 = NULL((void*)0);
18039 char *__pyx_t_6;
18040 int __pyx_t_7;
18041 int __pyx_lineno = 0;
18042 const char *__pyx_filename = NULL((void*)0);
18043 int __pyx_clineno = 0;
18044 __Pyx_RefNannySetupContext("open_ioctx", 0);
18045 __Pyx_INCREF(__pyx_v_ioctx_name)( ((PyObject*)(__pyx_v_ioctx_name))->ob_refcnt++);
18046
18047 /* "rados.pyx":1249
18048 * :returns: Ioctx - Rados Ioctx object
18049 * """
18050 * self.require_state("connected") # <<<<<<<<<<<<<<
18051 * ioctx_name = cstr(ioctx_name, 'ioctx_name')
18052 * cdef:
18053 */
18054 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__18054; goto __pyx_L1_error;}
18055 __Pyx_GOTREF(__pyx_t_1);
18056 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__34, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__18056; goto __pyx_L1_error;}
18057 __Pyx_GOTREF(__pyx_t_2);
18058 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18059 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
18060
18061 /* "rados.pyx":1250
18062 * """
18063 * self.require_state("connected")
18064 * ioctx_name = cstr(ioctx_name, 'ioctx_name') # <<<<<<<<<<<<<<
18065 * cdef:
18066 * rados_ioctx_t ioctx
18067 */
18068 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__18068; goto __pyx_L1_error;}
18069 __Pyx_GOTREF(__pyx_t_1);
18070 __pyx_t_3 = NULL((void*)0);
18071 __pyx_t_4 = 0;
18072 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
18073 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
18074 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
18075 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
18076 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
18077 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
18078 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
18079 __pyx_t_4 = 1;
18080 }
18081 }
18082 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__18082; goto __pyx_L1_error;}
18083 __Pyx_GOTREF(__pyx_t_5);
18084 if (__pyx_t_3) {
18085 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
18086 }
18087 __Pyx_INCREF(__pyx_v_ioctx_name)( ((PyObject*)(__pyx_v_ioctx_name))->ob_refcnt++);
18088 __Pyx_GIVEREF(__pyx_v_ioctx_name);
18089 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_ioctx_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_ioctx_name
)
;
18090 __Pyx_INCREF(__pyx_n_s_ioctx_name)( ((PyObject*)(__pyx_n_s_ioctx_name))->ob_refcnt++);
18091 __Pyx_GIVEREF(__pyx_n_s_ioctx_name);
18092 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_ioctx_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_ioctx_name
)
;
18093 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__18093; goto __pyx_L1_error;}
18094 __Pyx_GOTREF(__pyx_t_2);
18095 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18096 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18097 __Pyx_DECREF_SET(__pyx_v_ioctx_name, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_ioctx_name; __pyx_v_ioctx_name
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
18098 __pyx_t_2 = 0;
18099
18100 /* "rados.pyx":1253
18101 * cdef:
18102 * rados_ioctx_t ioctx
18103 * char *_ioctx_name = ioctx_name # <<<<<<<<<<<<<<
18104 * with nogil:
18105 * ret = rados_ioctx_create(self.cluster, _ioctx_name, &ioctx)
18106 */
18107 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_ioctx_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1253; __pyx_clineno = __LINE__18107; goto __pyx_L1_error;}
18108 __pyx_v__ioctx_name = __pyx_t_6;
18109
18110 /* "rados.pyx":1254
18111 * rados_ioctx_t ioctx
18112 * char *_ioctx_name = ioctx_name
18113 * with nogil: # <<<<<<<<<<<<<<
18114 * ret = rados_ioctx_create(self.cluster, _ioctx_name, &ioctx)
18115 * if ret < 0:
18116 */
18117 {
18118 #ifdef WITH_THREAD1
18119 PyThreadState *_save;
18120 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
18121 #endif
18122 /*try:*/ {
18123
18124 /* "rados.pyx":1255
18125 * char *_ioctx_name = ioctx_name
18126 * with nogil:
18127 * ret = rados_ioctx_create(self.cluster, _ioctx_name, &ioctx) # <<<<<<<<<<<<<<
18128 * if ret < 0:
18129 * raise make_ex(ret, "error opening pool '%s'" % ioctx_name)
18130 */
18131 __pyx_v_ret = rados_ioctx_create(__pyx_v_self->cluster, __pyx_v__ioctx_name, (&__pyx_v_ioctx));
18132 }
18133
18134 /* "rados.pyx":1254
18135 * rados_ioctx_t ioctx
18136 * char *_ioctx_name = ioctx_name
18137 * with nogil: # <<<<<<<<<<<<<<
18138 * ret = rados_ioctx_create(self.cluster, _ioctx_name, &ioctx)
18139 * if ret < 0:
18140 */
18141 /*finally:*/ {
18142 /*normal exit:*/{
18143 #ifdef WITH_THREAD1
18144 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
18145 #endif
18146 goto __pyx_L5;
18147 }
18148 __pyx_L5:;
18149 }
18150 }
18151
18152 /* "rados.pyx":1256
18153 * with nogil:
18154 * ret = rados_ioctx_create(self.cluster, _ioctx_name, &ioctx)
18155 * if ret < 0: # <<<<<<<<<<<<<<
18156 * raise make_ex(ret, "error opening pool '%s'" % ioctx_name)
18157 * io = Ioctx(ioctx_name)
18158 */
18159 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
18160 if (__pyx_t_7) {
18161
18162 /* "rados.pyx":1257
18163 * ret = rados_ioctx_create(self.cluster, _ioctx_name, &ioctx)
18164 * if ret < 0:
18165 * raise make_ex(ret, "error opening pool '%s'" % ioctx_name) # <<<<<<<<<<<<<<
18166 * io = Ioctx(ioctx_name)
18167 * io.io = ioctx
18168 */
18169 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__18169; goto __pyx_L1_error;}
18170 __Pyx_GOTREF(__pyx_t_2);
18171 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_opening_pool_s, __pyx_v_ioctx_name)PyString_Format(__pyx_kp_s_error_opening_pool_s, __pyx_v_ioctx_name
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__18171; goto __pyx_L1_error;}
18172 __Pyx_GOTREF(__pyx_t_1);
18173 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__18173; goto __pyx_L1_error;}
18174 __Pyx_GOTREF(__pyx_t_5);
18175 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
18176 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18177 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
18178 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18179 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__18179; goto __pyx_L1_error;}
18180
18181 /* "rados.pyx":1256
18182 * with nogil:
18183 * ret = rados_ioctx_create(self.cluster, _ioctx_name, &ioctx)
18184 * if ret < 0: # <<<<<<<<<<<<<<
18185 * raise make_ex(ret, "error opening pool '%s'" % ioctx_name)
18186 * io = Ioctx(ioctx_name)
18187 */
18188 }
18189
18190 /* "rados.pyx":1258
18191 * if ret < 0:
18192 * raise make_ex(ret, "error opening pool '%s'" % ioctx_name)
18193 * io = Ioctx(ioctx_name) # <<<<<<<<<<<<<<
18194 * io.io = ioctx
18195 * return io
18196 */
18197 __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; __pyx_clineno = __LINE__18197; goto __pyx_L1_error;}
18198 __Pyx_GOTREF(__pyx_t_5);
18199 __Pyx_INCREF(__pyx_v_ioctx_name)( ((PyObject*)(__pyx_v_ioctx_name))->ob_refcnt++);
18200 __Pyx_GIVEREF(__pyx_v_ioctx_name);
18201 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_ioctx_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_v_ioctx_name
)
;
18202 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_Ioctx), __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; __pyx_clineno = __LINE__18202; goto __pyx_L1_error;}
18203 __Pyx_GOTREF(__pyx_t_1);
18204 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18205 __pyx_v_io = ((struct __pyx_obj_5rados_Ioctx *)__pyx_t_1);
18206 __pyx_t_1 = 0;
18207
18208 /* "rados.pyx":1259
18209 * raise make_ex(ret, "error opening pool '%s'" % ioctx_name)
18210 * io = Ioctx(ioctx_name)
18211 * io.io = ioctx # <<<<<<<<<<<<<<
18212 * return io
18213 *
18214 */
18215 __pyx_v_io->io = __pyx_v_ioctx;
18216
18217 /* "rados.pyx":1260
18218 * io = Ioctx(ioctx_name)
18219 * io.io = ioctx
18220 * return io # <<<<<<<<<<<<<<
18221 *
18222 * @requires(('pool_id', int))
18223 */
18224 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
18225 __Pyx_INCREF(((PyObject *)__pyx_v_io))( ((PyObject*)(((PyObject *)__pyx_v_io)))->ob_refcnt++);
18226 __pyx_r = ((PyObject *)__pyx_v_io);
18227 goto __pyx_L0;
18228
18229 /* "rados.pyx":1236
18230 *
18231 * @requires(('ioctx_name', str_type))
18232 * def open_ioctx(self, ioctx_name): # <<<<<<<<<<<<<<
18233 * """
18234 * Create an io context
18235 */
18236
18237 /* function exit code */
18238 __pyx_L1_error:;
18239 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
18240 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
18241 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
18242 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
18243 __Pyx_AddTraceback("rados.Rados.open_ioctx", __pyx_clineno, __pyx_lineno, __pyx_filename);
18244 __pyx_r = NULL((void*)0);
18245 __pyx_L0:;
18246 __Pyx_XDECREF((PyObject *)__pyx_v_io)do { if (((PyObject *)__pyx_v_io) == ((void*)0)) ; else do { if
( --((PyObject*)((PyObject *)__pyx_v_io))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)((PyObject *)__pyx_v_io
)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)((PyObject
*)__pyx_v_io)))); } while (0); } while (0)
;
18247 __Pyx_XDECREF(__pyx_v_ioctx_name)do { if ((__pyx_v_ioctx_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_ioctx_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_ioctx_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_ioctx_name
)))); } while (0); } while (0)
;
18248 __Pyx_XGIVEREF(__pyx_r);
18249 __Pyx_RefNannyFinishContext();
18250 return __pyx_r;
18251}
18252
18253/* "rados.pyx":1263
18254 *
18255 * @requires(('pool_id', int))
18256 * def open_ioctx2(self, pool_id): # <<<<<<<<<<<<<<
18257 * """
18258 * Create an io context
18259 */
18260
18261/* Python wrapper */
18262static PyObject *__pyx_pw_5rados_5Rados_53open_ioctx2(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id); /*proto*/
18263static char __pyx_doc_5rados_5Rados_52open_ioctx2[] = "Rados.open_ioctx2(self, pool_id)\n\n Create an io context\n\n The io context allows you to perform operations within a particular\n pool.\n\n :param pool_id: ID of the pool\n :type pool_id: int\n\n :raises: :class:`TypeError`, :class:`Error`\n :returns: Ioctx - Rados Ioctx object\n ";
18264static PyObject *__pyx_pw_5rados_5Rados_53open_ioctx2(PyObject *__pyx_v_self, PyObject *__pyx_v_pool_id) {
18265 PyObject *__pyx_r = 0;
18266 __Pyx_RefNannyDeclarations
18267 __Pyx_RefNannySetupContext("open_ioctx2 (wrapper)", 0);
18268 __pyx_r = __pyx_pf_5rados_5Rados_52open_ioctx2(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_pool_id));
18269
18270 /* function exit code */
18271 __Pyx_RefNannyFinishContext();
18272 return __pyx_r;
18273}
18274
18275static PyObject *__pyx_pf_5rados_5Rados_52open_ioctx2(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pool_id) {
18276 rados_ioctx_t __pyx_v_ioctx;
18277 int64_t __pyx_v__pool_id;
18278 int __pyx_v_ret;
18279 struct __pyx_obj_5rados_Ioctx *__pyx_v_io = NULL((void*)0);
18280 PyObject *__pyx_r = NULL((void*)0);
18281 __Pyx_RefNannyDeclarations
18282 PyObject *__pyx_t_1 = NULL((void*)0);
18283 PyObject *__pyx_t_2 = NULL((void*)0);
18284 int64_t __pyx_t_3;
18285 int __pyx_t_4;
18286 PyObject *__pyx_t_5 = NULL((void*)0);
18287 int __pyx_lineno = 0;
18288 const char *__pyx_filename = NULL((void*)0);
18289 int __pyx_clineno = 0;
18290 __Pyx_RefNannySetupContext("open_ioctx2", 0);
18291
18292 /* "rados.pyx":1276
18293 * :returns: Ioctx - Rados Ioctx object
18294 * """
18295 * self.require_state("connected") # <<<<<<<<<<<<<<
18296 * cdef:
18297 * rados_ioctx_t ioctx
18298 */
18299 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; __pyx_clineno = __LINE__18299; goto __pyx_L1_error;}
18300 __Pyx_GOTREF(__pyx_t_1);
18301 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__35, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; __pyx_clineno = __LINE__18301; goto __pyx_L1_error;}
18302 __Pyx_GOTREF(__pyx_t_2);
18303 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18304 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
18305
18306 /* "rados.pyx":1279
18307 * cdef:
18308 * rados_ioctx_t ioctx
18309 * int64_t _pool_id = pool_id # <<<<<<<<<<<<<<
18310 * with nogil:
18311 * ret = rados_ioctx_create2(self.cluster, _pool_id, &ioctx)
18312 */
18313 __pyx_t_3 = __Pyx_PyInt_As_int64_t(__pyx_v_pool_id); if (unlikely((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_3 == (int64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1279; __pyx_clineno = __LINE__18313; goto __pyx_L1_error;}
18314 __pyx_v__pool_id = __pyx_t_3;
18315
18316 /* "rados.pyx":1280
18317 * rados_ioctx_t ioctx
18318 * int64_t _pool_id = pool_id
18319 * with nogil: # <<<<<<<<<<<<<<
18320 * ret = rados_ioctx_create2(self.cluster, _pool_id, &ioctx)
18321 * if ret < 0:
18322 */
18323 {
18324 #ifdef WITH_THREAD1
18325 PyThreadState *_save;
18326 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
18327 #endif
18328 /*try:*/ {
18329
18330 /* "rados.pyx":1281
18331 * int64_t _pool_id = pool_id
18332 * with nogil:
18333 * ret = rados_ioctx_create2(self.cluster, _pool_id, &ioctx) # <<<<<<<<<<<<<<
18334 * if ret < 0:
18335 * raise make_ex(ret, "error opening pool id '%s'" % pool_id)
18336 */
18337 __pyx_v_ret = rados_ioctx_create2(__pyx_v_self->cluster, __pyx_v__pool_id, (&__pyx_v_ioctx));
18338 }
18339
18340 /* "rados.pyx":1280
18341 * rados_ioctx_t ioctx
18342 * int64_t _pool_id = pool_id
18343 * with nogil: # <<<<<<<<<<<<<<
18344 * ret = rados_ioctx_create2(self.cluster, _pool_id, &ioctx)
18345 * if ret < 0:
18346 */
18347 /*finally:*/ {
18348 /*normal exit:*/{
18349 #ifdef WITH_THREAD1
18350 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
18351 #endif
18352 goto __pyx_L5;
18353 }
18354 __pyx_L5:;
18355 }
18356 }
18357
18358 /* "rados.pyx":1282
18359 * with nogil:
18360 * ret = rados_ioctx_create2(self.cluster, _pool_id, &ioctx)
18361 * if ret < 0: # <<<<<<<<<<<<<<
18362 * raise make_ex(ret, "error opening pool id '%s'" % pool_id)
18363 * io = Ioctx(str(pool_id))
18364 */
18365 __pyx_t_4 = ((__pyx_v_ret < 0) != 0);
18366 if (__pyx_t_4) {
18367
18368 /* "rados.pyx":1283
18369 * ret = rados_ioctx_create2(self.cluster, _pool_id, &ioctx)
18370 * if ret < 0:
18371 * raise make_ex(ret, "error opening pool id '%s'" % pool_id) # <<<<<<<<<<<<<<
18372 * io = Ioctx(str(pool_id))
18373 * io.io = ioctx
18374 */
18375 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__18375; goto __pyx_L1_error;}
18376 __Pyx_GOTREF(__pyx_t_2);
18377 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_opening_pool_id_s, __pyx_v_pool_id)PyString_Format(__pyx_kp_s_error_opening_pool_id_s, __pyx_v_pool_id
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__18377; goto __pyx_L1_error;}
18378 __Pyx_GOTREF(__pyx_t_1);
18379 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__18379; goto __pyx_L1_error;}
18380 __Pyx_GOTREF(__pyx_t_5);
18381 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
18382 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18383 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
18384 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18385 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__18385; goto __pyx_L1_error;}
18386
18387 /* "rados.pyx":1282
18388 * with nogil:
18389 * ret = rados_ioctx_create2(self.cluster, _pool_id, &ioctx)
18390 * if ret < 0: # <<<<<<<<<<<<<<
18391 * raise make_ex(ret, "error opening pool id '%s'" % pool_id)
18392 * io = Ioctx(str(pool_id))
18393 */
18394 }
18395
18396 /* "rados.pyx":1284
18397 * if ret < 0:
18398 * raise make_ex(ret, "error opening pool id '%s'" % pool_id)
18399 * io = Ioctx(str(pool_id)) # <<<<<<<<<<<<<<
18400 * io.io = ioctx
18401 * return io
18402 */
18403 __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__18403; goto __pyx_L1_error;}
18404 __Pyx_GOTREF(__pyx_t_5);
18405 __Pyx_INCREF(__pyx_v_pool_id)( ((PyObject*)(__pyx_v_pool_id))->ob_refcnt++);
18406 __Pyx_GIVEREF(__pyx_v_pool_id);
18407 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pool_id)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_v_pool_id
)
;
18408 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__18408; goto __pyx_L1_error;}
18409 __Pyx_GOTREF(__pyx_t_1);
18410 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18411 __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__18411; goto __pyx_L1_error;}
18412 __Pyx_GOTREF(__pyx_t_5);
18413 __Pyx_GIVEREF(__pyx_t_1);
18414 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_1);
18415 __pyx_t_1 = 0;
18416 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_Ioctx), __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__18416; goto __pyx_L1_error;}
18417 __Pyx_GOTREF(__pyx_t_1);
18418 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18419 __pyx_v_io = ((struct __pyx_obj_5rados_Ioctx *)__pyx_t_1);
18420 __pyx_t_1 = 0;
18421
18422 /* "rados.pyx":1285
18423 * raise make_ex(ret, "error opening pool id '%s'" % pool_id)
18424 * io = Ioctx(str(pool_id))
18425 * io.io = ioctx # <<<<<<<<<<<<<<
18426 * return io
18427 *
18428 */
18429 __pyx_v_io->io = __pyx_v_ioctx;
18430
18431 /* "rados.pyx":1286
18432 * io = Ioctx(str(pool_id))
18433 * io.io = ioctx
18434 * return io # <<<<<<<<<<<<<<
18435 *
18436 * def mon_command(self, cmd, inbuf, timeout=0, target=None):
18437 */
18438 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
18439 __Pyx_INCREF(((PyObject *)__pyx_v_io))( ((PyObject*)(((PyObject *)__pyx_v_io)))->ob_refcnt++);
18440 __pyx_r = ((PyObject *)__pyx_v_io);
18441 goto __pyx_L0;
18442
18443 /* "rados.pyx":1263
18444 *
18445 * @requires(('pool_id', int))
18446 * def open_ioctx2(self, pool_id): # <<<<<<<<<<<<<<
18447 * """
18448 * Create an io context
18449 */
18450
18451 /* function exit code */
18452 __pyx_L1_error:;
18453 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
18454 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
18455 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
18456 __Pyx_AddTraceback("rados.Rados.open_ioctx2", __pyx_clineno, __pyx_lineno, __pyx_filename);
18457 __pyx_r = NULL((void*)0);
18458 __pyx_L0:;
18459 __Pyx_XDECREF((PyObject *)__pyx_v_io)do { if (((PyObject *)__pyx_v_io) == ((void*)0)) ; else do { if
( --((PyObject*)((PyObject *)__pyx_v_io))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)((PyObject *)__pyx_v_io
)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)((PyObject
*)__pyx_v_io)))); } while (0); } while (0)
;
18460 __Pyx_XGIVEREF(__pyx_r);
18461 __Pyx_RefNannyFinishContext();
18462 return __pyx_r;
18463}
18464
18465/* "rados.pyx":1288
18466 * return io
18467 *
18468 * def mon_command(self, cmd, inbuf, timeout=0, target=None): # <<<<<<<<<<<<<<
18469 * """
18470 * Send a command to the mon.
18471 */
18472
18473/* Python wrapper */
18474static PyObject *__pyx_pw_5rados_5Rados_55mon_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
18475static char __pyx_doc_5rados_5Rados_54mon_command[] = "Rados.mon_command(self, cmd, inbuf, timeout=0, target=None)\n\n Send a command to the mon.\n\n mon_command[_target](cmd, inbuf, outbuf, outbuflen, outs, outslen)\n\n :param cmd: JSON formatted string.\n :param inbuf: optional string.\n :param timeout: This parameter is ignored.\n :param target: name of a specific mon. Optional\n :return: (int ret, string outbuf, string outs)\n\n Example:\n\n >>> import json\n >>> c = Rados(conffile='/etc/ceph/ceph.conf')\n >>> c.connect()\n >>> cmd = json.dumps({\"prefix\": \"osd safe-to-destroy\", \"ids\": [\"2\"], \"format\": \"json\"})\n >>> c.mon_command(cmd, b'')\n ";
18476static PyObject *__pyx_pw_5rados_5Rados_55mon_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
18477 PyObject *__pyx_v_cmd = 0;
18478 PyObject *__pyx_v_inbuf = 0;
18479 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout = 0;
18480 PyObject *__pyx_v_target = 0;
18481 int __pyx_lineno = 0;
18482 const char *__pyx_filename = NULL((void*)0);
18483 int __pyx_clineno = 0;
18484 PyObject *__pyx_r = 0;
18485 __Pyx_RefNannyDeclarations
18486 __Pyx_RefNannySetupContext("mon_command (wrapper)", 0);
18487 {
18488 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cmd,&__pyx_n_s_inbuf,&__pyx_n_s_timeout,&__pyx_n_s_target,0};
18489 PyObject* values[4] = {0,0,0,0};
18490 values[2] = ((PyObject *)__pyx_int_0);
18491 values[3] = ((PyObject *)Py_None(&_Py_NoneStruct));
18492 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
18493 Py_ssize_t kw_args;
18494 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
18495 switch (pos_args) {
18496 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
18497 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
18498 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
18499 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
18500 case 0: break;
18501 default: goto __pyx_L5_argtuple_error;
18502 }
18503 kw_args = PyDict_Size(__pyx_kwds);
18504 switch (pos_args) {
18505 case 0:
18506 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd
)) != 0), 1)
) kw_args--;
18507 else goto __pyx_L5_argtuple_error;
18508 case 1:
18509 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf
)) != 0), 1)
) kw_args--;
18510 else {
18511 __Pyx_RaiseArgtupleInvalid("mon_command", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__18511; goto __pyx_L3_error;}
18512 }
18513 case 2:
18514 if (kw_args > 0) {
18515 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_timeout);
18516 if (value) { values[2] = value; kw_args--; }
18517 }
18518 case 3:
18519 if (kw_args > 0) {
18520 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_target);
18521 if (value) { values[3] = value; kw_args--; }
18522 }
18523 }
18524 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
18525 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mon_command") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "mon_command") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__18525; goto __pyx_L3_error;}
18526 }
18527 } else {
18528 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
18529 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
18530 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
18531 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
18532 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
18533 break;
18534 default: goto __pyx_L5_argtuple_error;
18535 }
18536 }
18537 __pyx_v_cmd = values[0];
18538 __pyx_v_inbuf = values[1];
18539 __pyx_v_timeout = values[2];
18540 __pyx_v_target = values[3];
18541 }
18542 goto __pyx_L4_argument_unpacking_done;
18543 __pyx_L5_argtuple_error:;
18544 __Pyx_RaiseArgtupleInvalid("mon_command", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__18544; goto __pyx_L3_error;}
18545 __pyx_L3_error:;
18546 __Pyx_AddTraceback("rados.Rados.mon_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
18547 __Pyx_RefNannyFinishContext();
18548 return NULL((void*)0);
18549 __pyx_L4_argument_unpacking_done:;
18550 __pyx_r = __pyx_pf_5rados_5Rados_54mon_command(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_cmd, __pyx_v_inbuf, __pyx_v_timeout, __pyx_v_target);
18551
18552 /* function exit code */
18553 __Pyx_RefNannyFinishContext();
18554 return __pyx_r;
18555}
18556
18557static PyObject *__pyx_pf_5rados_5Rados_54mon_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout, PyObject *__pyx_v_target) {
18558 char *__pyx_v__target;
18559 char **__pyx_v__cmd;
18560 size_t __pyx_v__cmdlen;
18561 char *__pyx_v__inbuf;
18562 size_t __pyx_v__inbuf_len;
18563 char *__pyx_v__outbuf;
18564 size_t __pyx_v__outbuf_len;
18565 char *__pyx_v__outs;
18566 size_t __pyx_v__outs_len;
18567 int __pyx_v_ret;
18568 PyObject *__pyx_v_my_outs = NULL((void*)0);
18569 PyObject *__pyx_v_my_outbuf = NULL((void*)0);
18570 PyObject *__pyx_r = NULL((void*)0);
18571 __Pyx_RefNannyDeclarations
18572 PyObject *__pyx_t_1 = NULL((void*)0);
18573 PyObject *__pyx_t_2 = NULL((void*)0);
18574 PyObject *__pyx_t_3 = NULL((void*)0);
18575 Py_ssize_t __pyx_t_4;
18576 PyObject *__pyx_t_5 = NULL((void*)0);
18577 int __pyx_t_6;
18578 int __pyx_t_7;
18579 char *__pyx_t_8;
18580 PyObject *__pyx_t_9 = NULL((void*)0);
18581 int __pyx_t_10;
18582 int __pyx_t_11;
18583 char const *__pyx_t_12;
18584 PyObject *__pyx_t_13 = NULL((void*)0);
18585 PyObject *__pyx_t_14 = NULL((void*)0);
18586 PyObject *__pyx_t_15 = NULL((void*)0);
18587 PyObject *__pyx_t_16 = NULL((void*)0);
18588 PyObject *__pyx_t_17 = NULL((void*)0);
18589 PyObject *__pyx_t_18 = NULL((void*)0);
18590 int __pyx_lineno = 0;
18591 const char *__pyx_filename = NULL((void*)0);
18592 int __pyx_clineno = 0;
18593 __Pyx_RefNannySetupContext("mon_command", 0);
18594 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
18595 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
18596 __Pyx_INCREF(__pyx_v_target)( ((PyObject*)(__pyx_v_target))->ob_refcnt++);
18597
18598 /* "rados.pyx":1311
18599 * # timeout argument, but we keep it for backward compat with old python binding
18600 *
18601 * self.require_state("connected") # <<<<<<<<<<<<<<
18602 * cmd = cstr_list(cmd, 'c')
18603 *
18604 */
18605 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__18605; goto __pyx_L1_error;}
18606 __Pyx_GOTREF(__pyx_t_1);
18607 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__36, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__18607; goto __pyx_L1_error;}
18608 __Pyx_GOTREF(__pyx_t_2);
18609 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18610 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
18611
18612 /* "rados.pyx":1312
18613 *
18614 * self.require_state("connected")
18615 * cmd = cstr_list(cmd, 'c') # <<<<<<<<<<<<<<
18616 *
18617 * if isinstance(target, int):
18618 */
18619 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1312; __pyx_clineno = __LINE__18619; goto __pyx_L1_error;}
18620 __Pyx_GOTREF(__pyx_t_1);
18621 __pyx_t_3 = NULL((void*)0);
18622 __pyx_t_4 = 0;
18623 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
18624 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
18625 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
18626 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
18627 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
18628 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
18629 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
18630 __pyx_t_4 = 1;
18631 }
18632 }
18633 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1312; __pyx_clineno = __LINE__18633; goto __pyx_L1_error;}
18634 __Pyx_GOTREF(__pyx_t_5);
18635 if (__pyx_t_3) {
18636 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
18637 }
18638 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
18639 __Pyx_GIVEREF(__pyx_v_cmd);
18640 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_cmd)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_cmd
)
;
18641 __Pyx_INCREF(__pyx_n_s_c)( ((PyObject*)(__pyx_n_s_c))->ob_refcnt++);
18642 __Pyx_GIVEREF(__pyx_n_s_c);
18643 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_c)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_c
)
;
18644 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1312; __pyx_clineno = __LINE__18644; goto __pyx_L1_error;}
18645 __Pyx_GOTREF(__pyx_t_2);
18646 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18647 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18648 __Pyx_DECREF_SET(__pyx_v_cmd, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_cmd; __pyx_v_cmd = __pyx_t_2
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
18649 __pyx_t_2 = 0;
18650
18651 /* "rados.pyx":1314
18652 * cmd = cstr_list(cmd, 'c')
18653 *
18654 * if isinstance(target, int): # <<<<<<<<<<<<<<
18655 * # NOTE(sileht): looks weird but test_monmap_dump pass int
18656 * target = str(target)
18657 */
18658 __pyx_t_6 = PyInt_Check(__pyx_v_target)((((__pyx_v_target)->ob_type)->tp_flags & ((1L<<
23))) != 0)
;
18659 __pyx_t_7 = (__pyx_t_6 != 0);
18660 if (__pyx_t_7) {
18661
18662 /* "rados.pyx":1316
18663 * if isinstance(target, int):
18664 * # NOTE(sileht): looks weird but test_monmap_dump pass int
18665 * target = str(target) # <<<<<<<<<<<<<<
18666 *
18667 * target = cstr(target, 'target', opt=True)
18668 */
18669 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__18669; goto __pyx_L1_error;}
18670 __Pyx_GOTREF(__pyx_t_2);
18671 __Pyx_INCREF(__pyx_v_target)( ((PyObject*)(__pyx_v_target))->ob_refcnt++);
18672 __Pyx_GIVEREF(__pyx_v_target);
18673 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_target)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_target
)
;
18674 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__18674; goto __pyx_L1_error;}
18675 __Pyx_GOTREF(__pyx_t_1);
18676 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
18677 __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_target; __pyx_v_target
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
18678 __pyx_t_1 = 0;
18679
18680 /* "rados.pyx":1314
18681 * cmd = cstr_list(cmd, 'c')
18682 *
18683 * if isinstance(target, int): # <<<<<<<<<<<<<<
18684 * # NOTE(sileht): looks weird but test_monmap_dump pass int
18685 * target = str(target)
18686 */
18687 }
18688
18689 /* "rados.pyx":1318
18690 * target = str(target)
18691 *
18692 * target = cstr(target, 'target', opt=True) # <<<<<<<<<<<<<<
18693 * inbuf = cstr(inbuf, 'inbuf')
18694 *
18695 */
18696 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__18696; goto __pyx_L1_error;}
18697 __Pyx_GOTREF(__pyx_t_1);
18698 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__18698; goto __pyx_L1_error;}
18699 __Pyx_GOTREF(__pyx_t_2);
18700 __Pyx_INCREF(__pyx_v_target)( ((PyObject*)(__pyx_v_target))->ob_refcnt++);
18701 __Pyx_GIVEREF(__pyx_v_target);
18702 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_target)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_target
)
;
18703 __Pyx_INCREF(__pyx_n_s_target)( ((PyObject*)(__pyx_n_s_target))->ob_refcnt++);
18704 __Pyx_GIVEREF(__pyx_n_s_target);
18705 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_target)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_n_s_target
)
;
18706 __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__18706; goto __pyx_L1_error;}
18707 __Pyx_GOTREF(__pyx_t_5);
18708 if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_opt, Py_True((PyObject *) &_Py_TrueStruct)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__18708; goto __pyx_L1_error;}
18709 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__18709; goto __pyx_L1_error;}
18710 __Pyx_GOTREF(__pyx_t_3);
18711 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18712 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
18713 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18714 __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_3)do { PyObject *tmp = (PyObject *) __pyx_v_target; __pyx_v_target
= __pyx_t_3; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
18715 __pyx_t_3 = 0;
18716
18717 /* "rados.pyx":1319
18718 *
18719 * target = cstr(target, 'target', opt=True)
18720 * inbuf = cstr(inbuf, 'inbuf') # <<<<<<<<<<<<<<
18721 *
18722 * cdef:
18723 */
18724 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__18724; goto __pyx_L1_error;}
18725 __Pyx_GOTREF(__pyx_t_5);
18726 __pyx_t_2 = NULL((void*)0);
18727 __pyx_t_4 = 0;
18728 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
18729 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
18730 if (likely(__pyx_t_2)__builtin_expect(!!(__pyx_t_2), 1)) {
18731 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
18732 __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++);
18733 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
18734 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
18735 __pyx_t_4 = 1;
18736 }
18737 }
18738 __pyx_t_1 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__18738; goto __pyx_L1_error;}
18739 __Pyx_GOTREF(__pyx_t_1);
18740 if (__pyx_t_2) {
18741 __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_2); __pyx_t_2 = NULL((void*)0);
18742 }
18743 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
18744 __Pyx_GIVEREF(__pyx_v_inbuf);
18745 PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_inbuf)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+__pyx_t_4] = __pyx_v_inbuf
)
;
18746 __Pyx_INCREF(__pyx_n_s_inbuf)( ((PyObject*)(__pyx_n_s_inbuf))->ob_refcnt++);
18747 __Pyx_GIVEREF(__pyx_n_s_inbuf);
18748 PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_n_s_inbuf)(((PyTupleObject *)(__pyx_t_1))->ob_item[1+__pyx_t_4] = __pyx_n_s_inbuf
)
;
18749 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__18749; goto __pyx_L1_error;}
18750 __Pyx_GOTREF(__pyx_t_3);
18751 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18752 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18753 __Pyx_DECREF_SET(__pyx_v_inbuf, __pyx_t_3)do { PyObject *tmp = (PyObject *) __pyx_v_inbuf; __pyx_v_inbuf
= __pyx_t_3; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
18754 __pyx_t_3 = 0;
18755
18756 /* "rados.pyx":1322
18757 *
18758 * cdef:
18759 * char *_target = opt_str(target) # <<<<<<<<<<<<<<
18760 * char **_cmd = to_bytes_array(cmd)
18761 * size_t _cmdlen = len(cmd)
18762 */
18763 __pyx_t_8 = __pyx_f_5rados_opt_str(__pyx_v_target); if (unlikely(__pyx_t_8 == NULL && PyErr_Occurred())__builtin_expect(!!(__pyx_t_8 == ((void*)0) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__18763; goto __pyx_L1_error;}
18764 __pyx_v__target = __pyx_t_8;
18765
18766 /* "rados.pyx":1323
18767 * cdef:
18768 * char *_target = opt_str(target)
18769 * char **_cmd = to_bytes_array(cmd) # <<<<<<<<<<<<<<
18770 * size_t _cmdlen = len(cmd)
18771 *
18772 */
18773 __pyx_v__cmd = __pyx_f_5rados_to_bytes_array(__pyx_v_cmd);
18774
18775 /* "rados.pyx":1324
18776 * char *_target = opt_str(target)
18777 * char **_cmd = to_bytes_array(cmd)
18778 * size_t _cmdlen = len(cmd) # <<<<<<<<<<<<<<
18779 *
18780 * char *_inbuf = inbuf
18781 */
18782 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_cmd); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1324; __pyx_clineno = __LINE__18782; goto __pyx_L1_error;}
18783 __pyx_v__cmdlen = __pyx_t_4;
18784
18785 /* "rados.pyx":1326
18786 * size_t _cmdlen = len(cmd)
18787 *
18788 * char *_inbuf = inbuf # <<<<<<<<<<<<<<
18789 * size_t _inbuf_len = len(inbuf)
18790 *
18791 */
18792 __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_inbuf); if (unlikely((!__pyx_t_8) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_8) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1326; __pyx_clineno = __LINE__18792; goto __pyx_L1_error;}
18793 __pyx_v__inbuf = __pyx_t_8;
18794
18795 /* "rados.pyx":1327
18796 *
18797 * char *_inbuf = inbuf
18798 * size_t _inbuf_len = len(inbuf) # <<<<<<<<<<<<<<
18799 *
18800 * char *_outbuf
18801 */
18802 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_inbuf); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__18802; goto __pyx_L1_error;}
18803 __pyx_v__inbuf_len = __pyx_t_4;
18804
18805 /* "rados.pyx":1334
18806 * size_t _outs_len
18807 *
18808 * try: # <<<<<<<<<<<<<<
18809 * if target:
18810 * with nogil:
18811 */
18812 /*try:*/ {
18813
18814 /* "rados.pyx":1335
18815 *
18816 * try:
18817 * if target: # <<<<<<<<<<<<<<
18818 * with nogil:
18819 * ret = rados_mon_command_target(self.cluster, _target,
18820 */
18821 __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_target); if (unlikely(__pyx_t_7 < 0)__builtin_expect(!!(__pyx_t_7 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__18821; goto __pyx_L5_error;}
18822 if (__pyx_t_7) {
18823
18824 /* "rados.pyx":1336
18825 * try:
18826 * if target:
18827 * with nogil: # <<<<<<<<<<<<<<
18828 * ret = rados_mon_command_target(self.cluster, _target,
18829 * <const char **>_cmd, _cmdlen,
18830 */
18831 {
18832 #ifdef WITH_THREAD1
18833 PyThreadState *_save;
18834 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
18835 #endif
18836 /*try:*/ {
18837
18838 /* "rados.pyx":1337
18839 * if target:
18840 * with nogil:
18841 * ret = rados_mon_command_target(self.cluster, _target, # <<<<<<<<<<<<<<
18842 * <const char **>_cmd, _cmdlen,
18843 * <const char*>_inbuf, _inbuf_len,
18844 */
18845 __pyx_v_ret = rados_mon_command_target(__pyx_v_self->cluster, __pyx_v__target, ((char const **)__pyx_v__cmd), __pyx_v__cmdlen, ((char const *)__pyx_v__inbuf), __pyx_v__inbuf_len, (&__pyx_v__outbuf), (&__pyx_v__outbuf_len), (&__pyx_v__outs), (&__pyx_v__outs_len));
18846 }
18847
18848 /* "rados.pyx":1336
18849 * try:
18850 * if target:
18851 * with nogil: # <<<<<<<<<<<<<<
18852 * ret = rados_mon_command_target(self.cluster, _target,
18853 * <const char **>_cmd, _cmdlen,
18854 */
18855 /*finally:*/ {
18856 /*normal exit:*/{
18857 #ifdef WITH_THREAD1
18858 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
18859 #endif
18860 goto __pyx_L10;
18861 }
18862 __pyx_L10:;
18863 }
18864 }
18865
18866 /* "rados.pyx":1335
18867 *
18868 * try:
18869 * if target: # <<<<<<<<<<<<<<
18870 * with nogil:
18871 * ret = rados_mon_command_target(self.cluster, _target,
18872 */
18873 goto __pyx_L7;
18874 }
18875
18876 /* "rados.pyx":1343
18877 * &_outs, &_outs_len)
18878 * else:
18879 * with nogil: # <<<<<<<<<<<<<<
18880 * ret = rados_mon_command(self.cluster,
18881 * <const char **>_cmd, _cmdlen,
18882 */
18883 /*else*/ {
18884 {
18885 #ifdef WITH_THREAD1
18886 PyThreadState *_save;
18887 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
18888 #endif
18889 /*try:*/ {
18890
18891 /* "rados.pyx":1344
18892 * else:
18893 * with nogil:
18894 * ret = rados_mon_command(self.cluster, # <<<<<<<<<<<<<<
18895 * <const char **>_cmd, _cmdlen,
18896 * <const char*>_inbuf, _inbuf_len,
18897 */
18898 __pyx_v_ret = rados_mon_command(__pyx_v_self->cluster, ((char const **)__pyx_v__cmd), __pyx_v__cmdlen, ((char const *)__pyx_v__inbuf), __pyx_v__inbuf_len, (&__pyx_v__outbuf), (&__pyx_v__outbuf_len), (&__pyx_v__outs), (&__pyx_v__outs_len));
18899 }
18900
18901 /* "rados.pyx":1343
18902 * &_outs, &_outs_len)
18903 * else:
18904 * with nogil: # <<<<<<<<<<<<<<
18905 * ret = rados_mon_command(self.cluster,
18906 * <const char **>_cmd, _cmdlen,
18907 */
18908 /*finally:*/ {
18909 /*normal exit:*/{
18910 #ifdef WITH_THREAD1
18911 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
18912 #endif
18913 goto __pyx_L13;
18914 }
18915 __pyx_L13:;
18916 }
18917 }
18918 }
18919 __pyx_L7:;
18920
18921 /* "rados.pyx":1350
18922 * &_outs, &_outs_len)
18923 *
18924 * my_outs = decode_cstr(_outs[:_outs_len]) # <<<<<<<<<<<<<<
18925 * my_outbuf = _outbuf[:_outbuf_len]
18926 * if _outs_len:
18927 */
18928 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__18928; goto __pyx_L5_error;}
18929 __Pyx_GOTREF(__pyx_t_5);
18930 __pyx_t_1 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outs + 0, __pyx_v__outs_len - 0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__18930; goto __pyx_L5_error;}
18931 __Pyx_GOTREF(__pyx_t_1);
18932 __pyx_t_2 = NULL((void*)0);
18933 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
18934 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
18935 if (likely(__pyx_t_2)__builtin_expect(!!(__pyx_t_2), 1)) {
18936 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
18937 __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++);
18938 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
18939 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
18940 }
18941 }
18942 if (!__pyx_t_2) {
18943 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__18943; goto __pyx_L5_error;}
18944 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
18945 __Pyx_GOTREF(__pyx_t_3);
18946 } else {
18947 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__18947; goto __pyx_L5_error;}
18948 __Pyx_GOTREF(__pyx_t_9);
18949 __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_2); __pyx_t_2 = NULL((void*)0);
18950 __Pyx_GIVEREF(__pyx_t_1);
18951 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_1);
18952 __pyx_t_1 = 0;
18953 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__18953; goto __pyx_L5_error;}
18954 __Pyx_GOTREF(__pyx_t_3);
18955 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
18956 }
18957 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
18958 __pyx_v_my_outs = __pyx_t_3;
18959 __pyx_t_3 = 0;
18960
18961 /* "rados.pyx":1351
18962 *
18963 * my_outs = decode_cstr(_outs[:_outs_len])
18964 * my_outbuf = _outbuf[:_outbuf_len] # <<<<<<<<<<<<<<
18965 * if _outs_len:
18966 * rados_buffer_free(_outs)
18967 */
18968 __pyx_t_3 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outbuf + 0, __pyx_v__outbuf_len - 0); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1351; __pyx_clineno = __LINE__18968; goto __pyx_L5_error;}
18969 __Pyx_GOTREF(__pyx_t_3);
18970 __pyx_v_my_outbuf = ((PyObject*)__pyx_t_3);
18971 __pyx_t_3 = 0;
18972
18973 /* "rados.pyx":1352
18974 * my_outs = decode_cstr(_outs[:_outs_len])
18975 * my_outbuf = _outbuf[:_outbuf_len]
18976 * if _outs_len: # <<<<<<<<<<<<<<
18977 * rados_buffer_free(_outs)
18978 * if _outbuf_len:
18979 */
18980 __pyx_t_7 = (__pyx_v__outs_len != 0);
18981 if (__pyx_t_7) {
18982
18983 /* "rados.pyx":1353
18984 * my_outbuf = _outbuf[:_outbuf_len]
18985 * if _outs_len:
18986 * rados_buffer_free(_outs) # <<<<<<<<<<<<<<
18987 * if _outbuf_len:
18988 * rados_buffer_free(_outbuf)
18989 */
18990 rados_buffer_free(__pyx_v__outs);
18991
18992 /* "rados.pyx":1352
18993 * my_outs = decode_cstr(_outs[:_outs_len])
18994 * my_outbuf = _outbuf[:_outbuf_len]
18995 * if _outs_len: # <<<<<<<<<<<<<<
18996 * rados_buffer_free(_outs)
18997 * if _outbuf_len:
18998 */
18999 }
19000
19001 /* "rados.pyx":1354
19002 * if _outs_len:
19003 * rados_buffer_free(_outs)
19004 * if _outbuf_len: # <<<<<<<<<<<<<<
19005 * rados_buffer_free(_outbuf)
19006 * return (ret, my_outbuf, my_outs)
19007 */
19008 __pyx_t_7 = (__pyx_v__outbuf_len != 0);
19009 if (__pyx_t_7) {
19010
19011 /* "rados.pyx":1355
19012 * rados_buffer_free(_outs)
19013 * if _outbuf_len:
19014 * rados_buffer_free(_outbuf) # <<<<<<<<<<<<<<
19015 * return (ret, my_outbuf, my_outs)
19016 * finally:
19017 */
19018 rados_buffer_free(__pyx_v__outbuf);
19019
19020 /* "rados.pyx":1354
19021 * if _outs_len:
19022 * rados_buffer_free(_outs)
19023 * if _outbuf_len: # <<<<<<<<<<<<<<
19024 * rados_buffer_free(_outbuf)
19025 * return (ret, my_outbuf, my_outs)
19026 */
19027 }
19028
19029 /* "rados.pyx":1356
19030 * if _outbuf_len:
19031 * rados_buffer_free(_outbuf)
19032 * return (ret, my_outbuf, my_outs) # <<<<<<<<<<<<<<
19033 * finally:
19034 * free(_cmd)
19035 */
19036 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
19037 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__19037; goto __pyx_L5_error;}
19038 __Pyx_GOTREF(__pyx_t_3);
19039 __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__19039; goto __pyx_L5_error;}
19040 __Pyx_GOTREF(__pyx_t_5);
19041 __Pyx_GIVEREF(__pyx_t_3);
19042 PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3);
19043 __Pyx_INCREF(__pyx_v_my_outbuf)( ((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt++);
19044 __Pyx_GIVEREF(__pyx_v_my_outbuf);
19045 PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_my_outbuf)(((PyTupleObject *)(__pyx_t_5))->ob_item[1] = __pyx_v_my_outbuf
)
;
19046 __Pyx_INCREF(__pyx_v_my_outs)( ((PyObject*)(__pyx_v_my_outs))->ob_refcnt++);
19047 __Pyx_GIVEREF(__pyx_v_my_outs);
19048 PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_my_outs)(((PyTupleObject *)(__pyx_t_5))->ob_item[2] = __pyx_v_my_outs
)
;
19049 __pyx_t_3 = 0;
19050 __pyx_r = __pyx_t_5;
19051 __pyx_t_5 = 0;
19052 goto __pyx_L4_return;
19053 }
19054
19055 /* "rados.pyx":1358
19056 * return (ret, my_outbuf, my_outs)
19057 * finally:
19058 * free(_cmd) # <<<<<<<<<<<<<<
19059 *
19060 * def osd_command(self, osdid, cmd, inbuf, timeout=0):
19061 */
19062 /*finally:*/ {
19063 /*exception exit:*/{
19064 __pyx_L5_error:;
19065 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
19066 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
19067 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
19068 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
; __pyx_t_9 = 0;
19069 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
19070 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
19071 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
19072 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_13, &
__pyx_t_14, &__pyx_t_15) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
19073 __Pyx_XGOTREF(__pyx_t_13);
19074 __Pyx_XGOTREF(__pyx_t_14);
19075 __Pyx_XGOTREF(__pyx_t_15);
19076 __Pyx_XGOTREF(__pyx_t_16);
19077 __Pyx_XGOTREF(__pyx_t_17);
19078 __Pyx_XGOTREF(__pyx_t_18);
19079 __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename;
19080 {
19081 free(__pyx_v__cmd);
19082 }
19083 if (PY_MAJOR_VERSION2 >= 3) {
19084 __Pyx_XGIVEREF(__pyx_t_16);
19085 __Pyx_XGIVEREF(__pyx_t_17);
19086 __Pyx_XGIVEREF(__pyx_t_18);
19087 __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
19088 }
19089 __Pyx_XGIVEREF(__pyx_t_13);
19090 __Pyx_XGIVEREF(__pyx_t_14);
19091 __Pyx_XGIVEREF(__pyx_t_15);
19092 __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15);
19093 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
19094 __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12;
19095 goto __pyx_L1_error;
19096 }
19097 __pyx_L4_return: {
19098 __pyx_t_18 = __pyx_r;
19099 __pyx_r = 0;
19100 free(__pyx_v__cmd);
19101 __pyx_r = __pyx_t_18;
19102 __pyx_t_18 = 0;
19103 goto __pyx_L0;
19104 }
19105 }
19106
19107 /* "rados.pyx":1288
19108 * return io
19109 *
19110 * def mon_command(self, cmd, inbuf, timeout=0, target=None): # <<<<<<<<<<<<<<
19111 * """
19112 * Send a command to the mon.
19113 */
19114
19115 /* function exit code */
19116 __pyx_L1_error:;
19117 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
19118 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
19119 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
19120 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
19121 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
19122 __Pyx_AddTraceback("rados.Rados.mon_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
19123 __pyx_r = NULL((void*)0);
19124 __pyx_L0:;
19125 __Pyx_XDECREF(__pyx_v_my_outs)do { if ((__pyx_v_my_outs) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outs))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_my_outs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outs)))); } while
(0); } while (0)
;
19126 __Pyx_XDECREF(__pyx_v_my_outbuf)do { if ((__pyx_v_my_outbuf) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_my_outbuf)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outbuf
)))); } while (0); } while (0)
;
19127 __Pyx_XDECREF(__pyx_v_cmd)do { if ((__pyx_v_cmd) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cmd))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_cmd)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cmd)))); } while (0); } while (0)
;
19128 __Pyx_XDECREF(__pyx_v_inbuf)do { if ((__pyx_v_inbuf) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_inbuf))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_inbuf)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_inbuf)))); } while (0); }
while (0)
;
19129 __Pyx_XDECREF(__pyx_v_target)do { if ((__pyx_v_target) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_target))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_target)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_target)))); } while
(0); } while (0)
;
19130 __Pyx_XGIVEREF(__pyx_r);
19131 __Pyx_RefNannyFinishContext();
19132 return __pyx_r;
19133}
19134
19135/* "rados.pyx":1360
19136 * free(_cmd)
19137 *
19138 * def osd_command(self, osdid, cmd, inbuf, timeout=0): # <<<<<<<<<<<<<<
19139 * """
19140 * osd_command(osdid, cmd, inbuf, outbuf, outbuflen, outs, outslen)
19141 */
19142
19143/* Python wrapper */
19144static PyObject *__pyx_pw_5rados_5Rados_57osd_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19145static char __pyx_doc_5rados_5Rados_56osd_command[] = "Rados.osd_command(self, osdid, cmd, inbuf, timeout=0)\n\n osd_command(osdid, cmd, inbuf, outbuf, outbuflen, outs, outslen)\n\n :return: (int ret, string outbuf, string outs)\n ";
19146static PyObject *__pyx_pw_5rados_5Rados_57osd_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19147 PyObject *__pyx_v_osdid = 0;
19148 PyObject *__pyx_v_cmd = 0;
19149 PyObject *__pyx_v_inbuf = 0;
19150 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout = 0;
19151 int __pyx_lineno = 0;
19152 const char *__pyx_filename = NULL((void*)0);
19153 int __pyx_clineno = 0;
19154 PyObject *__pyx_r = 0;
19155 __Pyx_RefNannyDeclarations
19156 __Pyx_RefNannySetupContext("osd_command (wrapper)", 0);
19157 {
19158 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_osdid,&__pyx_n_s_cmd,&__pyx_n_s_inbuf,&__pyx_n_s_timeout,0};
19159 PyObject* values[4] = {0,0,0,0};
19160 values[3] = ((PyObject *)__pyx_int_0);
19161 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
19162 Py_ssize_t kw_args;
19163 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
19164 switch (pos_args) {
19165 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
19166 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
19167 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
19168 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
19169 case 0: break;
19170 default: goto __pyx_L5_argtuple_error;
19171 }
19172 kw_args = PyDict_Size(__pyx_kwds);
19173 switch (pos_args) {
19174 case 0:
19175 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_osdid)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_osdid
)) != 0), 1)
) kw_args--;
19176 else goto __pyx_L5_argtuple_error;
19177 case 1:
19178 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd
)) != 0), 1)
) kw_args--;
19179 else {
19180 __Pyx_RaiseArgtupleInvalid("osd_command", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__19180; goto __pyx_L3_error;}
19181 }
19182 case 2:
19183 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf
)) != 0), 1)
) kw_args--;
19184 else {
19185 __Pyx_RaiseArgtupleInvalid("osd_command", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__19185; goto __pyx_L3_error;}
19186 }
19187 case 3:
19188 if (kw_args > 0) {
19189 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_timeout);
19190 if (value) { values[3] = value; kw_args--; }
19191 }
19192 }
19193 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
19194 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "osd_command") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "osd_command") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__19194; goto __pyx_L3_error;}
19195 }
19196 } else {
19197 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
19198 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
19199 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
19200 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
19201 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
19202 break;
19203 default: goto __pyx_L5_argtuple_error;
19204 }
19205 }
19206 __pyx_v_osdid = values[0];
19207 __pyx_v_cmd = values[1];
19208 __pyx_v_inbuf = values[2];
19209 __pyx_v_timeout = values[3];
19210 }
19211 goto __pyx_L4_argument_unpacking_done;
19212 __pyx_L5_argtuple_error:;
19213 __Pyx_RaiseArgtupleInvalid("osd_command", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__19213; goto __pyx_L3_error;}
19214 __pyx_L3_error:;
19215 __Pyx_AddTraceback("rados.Rados.osd_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
19216 __Pyx_RefNannyFinishContext();
19217 return NULL((void*)0);
19218 __pyx_L4_argument_unpacking_done:;
19219 __pyx_r = __pyx_pf_5rados_5Rados_56osd_command(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_osdid, __pyx_v_cmd, __pyx_v_inbuf, __pyx_v_timeout);
19220
19221 /* function exit code */
19222 __Pyx_RefNannyFinishContext();
19223 return __pyx_r;
19224}
19225
19226static PyObject *__pyx_pf_5rados_5Rados_56osd_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_osdid, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout) {
19227 int __pyx_v__osdid;
19228 char **__pyx_v__cmd;
19229 size_t __pyx_v__cmdlen;
19230 char *__pyx_v__inbuf;
19231 size_t __pyx_v__inbuf_len;
19232 char *__pyx_v__outbuf;
19233 size_t __pyx_v__outbuf_len;
19234 char *__pyx_v__outs;
19235 size_t __pyx_v__outs_len;
19236 int __pyx_v_ret;
19237 PyObject *__pyx_v_my_outs = NULL((void*)0);
19238 PyObject *__pyx_v_my_outbuf = NULL((void*)0);
19239 PyObject *__pyx_r = NULL((void*)0);
19240 __Pyx_RefNannyDeclarations
19241 PyObject *__pyx_t_1 = NULL((void*)0);
19242 PyObject *__pyx_t_2 = NULL((void*)0);
19243 PyObject *__pyx_t_3 = NULL((void*)0);
19244 Py_ssize_t __pyx_t_4;
19245 PyObject *__pyx_t_5 = NULL((void*)0);
19246 int __pyx_t_6;
19247 char *__pyx_t_7;
19248 PyObject *__pyx_t_8 = NULL((void*)0);
19249 int __pyx_t_9;
19250 int __pyx_t_10;
19251 char const *__pyx_t_11;
19252 PyObject *__pyx_t_12 = NULL((void*)0);
19253 PyObject *__pyx_t_13 = NULL((void*)0);
19254 PyObject *__pyx_t_14 = NULL((void*)0);
19255 PyObject *__pyx_t_15 = NULL((void*)0);
19256 PyObject *__pyx_t_16 = NULL((void*)0);
19257 PyObject *__pyx_t_17 = NULL((void*)0);
19258 int __pyx_lineno = 0;
19259 const char *__pyx_filename = NULL((void*)0);
19260 int __pyx_clineno = 0;
19261 __Pyx_RefNannySetupContext("osd_command", 0);
19262 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
19263 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
19264
19265 /* "rados.pyx":1368
19266 * # NOTE(sileht): timeout is ignored because C API doesn't provide
19267 * # timeout argument, but we keep it for backward compat with old python binding
19268 * self.require_state("connected") # <<<<<<<<<<<<<<
19269 *
19270 * cmd = cstr_list(cmd, 'cmd')
19271 */
19272 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__19272; goto __pyx_L1_error;}
19273 __Pyx_GOTREF(__pyx_t_1);
19274 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__37, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__19274; goto __pyx_L1_error;}
19275 __Pyx_GOTREF(__pyx_t_2);
19276 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
19277 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
19278
19279 /* "rados.pyx":1370
19280 * self.require_state("connected")
19281 *
19282 * cmd = cstr_list(cmd, 'cmd') # <<<<<<<<<<<<<<
19283 * inbuf = cstr(inbuf, 'inbuf')
19284 *
19285 */
19286 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__19286; goto __pyx_L1_error;}
19287 __Pyx_GOTREF(__pyx_t_1);
19288 __pyx_t_3 = NULL((void*)0);
19289 __pyx_t_4 = 0;
19290 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
19291 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
19292 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
19293 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
19294 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
19295 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
19296 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19297 __pyx_t_4 = 1;
19298 }
19299 }
19300 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__19300; goto __pyx_L1_error;}
19301 __Pyx_GOTREF(__pyx_t_5);
19302 if (__pyx_t_3) {
19303 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
19304 }
19305 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
19306 __Pyx_GIVEREF(__pyx_v_cmd);
19307 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_cmd)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_cmd
)
;
19308 __Pyx_INCREF(__pyx_n_s_cmd)( ((PyObject*)(__pyx_n_s_cmd))->ob_refcnt++);
19309 __Pyx_GIVEREF(__pyx_n_s_cmd);
19310 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_cmd)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_cmd
)
;
19311 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__19311; goto __pyx_L1_error;}
19312 __Pyx_GOTREF(__pyx_t_2);
19313 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
19314 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
19315 __Pyx_DECREF_SET(__pyx_v_cmd, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_cmd; __pyx_v_cmd = __pyx_t_2
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19316 __pyx_t_2 = 0;
19317
19318 /* "rados.pyx":1371
19319 *
19320 * cmd = cstr_list(cmd, 'cmd')
19321 * inbuf = cstr(inbuf, 'inbuf') # <<<<<<<<<<<<<<
19322 *
19323 * cdef:
19324 */
19325 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; __pyx_clineno = __LINE__19325; goto __pyx_L1_error;}
19326 __Pyx_GOTREF(__pyx_t_1);
19327 __pyx_t_5 = NULL((void*)0);
19328 __pyx_t_4 = 0;
19329 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
19330 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
19331 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
19332 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
19333 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
19334 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
19335 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19336 __pyx_t_4 = 1;
19337 }
19338 }
19339 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; __pyx_clineno = __LINE__19339; goto __pyx_L1_error;}
19340 __Pyx_GOTREF(__pyx_t_3);
19341 if (__pyx_t_5) {
19342 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
19343 }
19344 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
19345 __Pyx_GIVEREF(__pyx_v_inbuf);
19346 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_inbuf)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_inbuf
)
;
19347 __Pyx_INCREF(__pyx_n_s_inbuf)( ((PyObject*)(__pyx_n_s_inbuf))->ob_refcnt++);
19348 __Pyx_GIVEREF(__pyx_n_s_inbuf);
19349 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_inbuf)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_inbuf
)
;
19350 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1371; __pyx_clineno = __LINE__19350; goto __pyx_L1_error;}
19351 __Pyx_GOTREF(__pyx_t_2);
19352 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
19353 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
19354 __Pyx_DECREF_SET(__pyx_v_inbuf, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_inbuf; __pyx_v_inbuf
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
19355 __pyx_t_2 = 0;
19356
19357 /* "rados.pyx":1374
19358 *
19359 * cdef:
19360 * int _osdid = osdid # <<<<<<<<<<<<<<
19361 * char **_cmd = to_bytes_array(cmd)
19362 * size_t _cmdlen = len(cmd)
19363 */
19364 __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_osdid); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_6 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1374; __pyx_clineno = __LINE__19364; goto __pyx_L1_error;}
19365 __pyx_v__osdid = __pyx_t_6;
19366
19367 /* "rados.pyx":1375
19368 * cdef:
19369 * int _osdid = osdid
19370 * char **_cmd = to_bytes_array(cmd) # <<<<<<<<<<<<<<
19371 * size_t _cmdlen = len(cmd)
19372 *
19373 */
19374 __pyx_v__cmd = __pyx_f_5rados_to_bytes_array(__pyx_v_cmd);
19375
19376 /* "rados.pyx":1376
19377 * int _osdid = osdid
19378 * char **_cmd = to_bytes_array(cmd)
19379 * size_t _cmdlen = len(cmd) # <<<<<<<<<<<<<<
19380 *
19381 * char *_inbuf = inbuf
19382 */
19383 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_cmd); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1376; __pyx_clineno = __LINE__19383; goto __pyx_L1_error;}
19384 __pyx_v__cmdlen = __pyx_t_4;
19385
19386 /* "rados.pyx":1378
19387 * size_t _cmdlen = len(cmd)
19388 *
19389 * char *_inbuf = inbuf # <<<<<<<<<<<<<<
19390 * size_t _inbuf_len = len(inbuf)
19391 *
19392 */
19393 __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_inbuf); if (unlikely((!__pyx_t_7) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_7) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1378; __pyx_clineno = __LINE__19393; goto __pyx_L1_error;}
19394 __pyx_v__inbuf = __pyx_t_7;
19395
19396 /* "rados.pyx":1379
19397 *
19398 * char *_inbuf = inbuf
19399 * size_t _inbuf_len = len(inbuf) # <<<<<<<<<<<<<<
19400 *
19401 * char *_outbuf
19402 */
19403 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_inbuf); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1379; __pyx_clineno = __LINE__19403; goto __pyx_L1_error;}
19404 __pyx_v__inbuf_len = __pyx_t_4;
19405
19406 /* "rados.pyx":1386
19407 * size_t _outs_len
19408 *
19409 * try: # <<<<<<<<<<<<<<
19410 * with nogil:
19411 * ret = rados_osd_command(self.cluster, _osdid,
19412 */
19413 /*try:*/ {
19414
19415 /* "rados.pyx":1387
19416 *
19417 * try:
19418 * with nogil: # <<<<<<<<<<<<<<
19419 * ret = rados_osd_command(self.cluster, _osdid,
19420 * <const char **>_cmd, _cmdlen,
19421 */
19422 {
19423 #ifdef WITH_THREAD1
19424 PyThreadState *_save;
19425 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
19426 #endif
19427 /*try:*/ {
19428
19429 /* "rados.pyx":1388
19430 * try:
19431 * with nogil:
19432 * ret = rados_osd_command(self.cluster, _osdid, # <<<<<<<<<<<<<<
19433 * <const char **>_cmd, _cmdlen,
19434 * <const char*>_inbuf, _inbuf_len,
19435 */
19436 __pyx_v_ret = rados_osd_command(__pyx_v_self->cluster, __pyx_v__osdid, ((char const **)__pyx_v__cmd), __pyx_v__cmdlen, ((char const *)__pyx_v__inbuf), __pyx_v__inbuf_len, (&__pyx_v__outbuf), (&__pyx_v__outbuf_len), (&__pyx_v__outs), (&__pyx_v__outs_len));
19437 }
19438
19439 /* "rados.pyx":1387
19440 *
19441 * try:
19442 * with nogil: # <<<<<<<<<<<<<<
19443 * ret = rados_osd_command(self.cluster, _osdid,
19444 * <const char **>_cmd, _cmdlen,
19445 */
19446 /*finally:*/ {
19447 /*normal exit:*/{
19448 #ifdef WITH_THREAD1
19449 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
19450 #endif
19451 goto __pyx_L8;
19452 }
19453 __pyx_L8:;
19454 }
19455 }
19456
19457 /* "rados.pyx":1394
19458 * &_outs, &_outs_len)
19459 *
19460 * my_outs = decode_cstr(_outs[:_outs_len]) # <<<<<<<<<<<<<<
19461 * my_outbuf = _outbuf[:_outbuf_len]
19462 * if _outs_len:
19463 */
19464 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__19464; goto __pyx_L4_error;}
19465 __Pyx_GOTREF(__pyx_t_1);
19466 __pyx_t_3 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outs + 0, __pyx_v__outs_len - 0); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__19466; goto __pyx_L4_error;}
19467 __Pyx_GOTREF(__pyx_t_3);
19468 __pyx_t_5 = NULL((void*)0);
19469 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
19470 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
19471 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
19472 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
19473 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
19474 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
19475 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19476 }
19477 }
19478 if (!__pyx_t_5) {
19479 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__19479; goto __pyx_L4_error;}
19480 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
19481 __Pyx_GOTREF(__pyx_t_2);
19482 } else {
19483 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__19483; goto __pyx_L4_error;}
19484 __Pyx_GOTREF(__pyx_t_8);
19485 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
19486 __Pyx_GIVEREF(__pyx_t_3);
19487 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_3)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_3);
19488 __pyx_t_3 = 0;
19489 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1394; __pyx_clineno = __LINE__19489; goto __pyx_L4_error;}
19490 __Pyx_GOTREF(__pyx_t_2);
19491 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
19492 }
19493 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
19494 __pyx_v_my_outs = __pyx_t_2;
19495 __pyx_t_2 = 0;
19496
19497 /* "rados.pyx":1395
19498 *
19499 * my_outs = decode_cstr(_outs[:_outs_len])
19500 * my_outbuf = _outbuf[:_outbuf_len] # <<<<<<<<<<<<<<
19501 * if _outs_len:
19502 * rados_buffer_free(_outs)
19503 */
19504 __pyx_t_2 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outbuf + 0, __pyx_v__outbuf_len - 0); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__19504; goto __pyx_L4_error;}
19505 __Pyx_GOTREF(__pyx_t_2);
19506 __pyx_v_my_outbuf = ((PyObject*)__pyx_t_2);
19507 __pyx_t_2 = 0;
19508
19509 /* "rados.pyx":1396
19510 * my_outs = decode_cstr(_outs[:_outs_len])
19511 * my_outbuf = _outbuf[:_outbuf_len]
19512 * if _outs_len: # <<<<<<<<<<<<<<
19513 * rados_buffer_free(_outs)
19514 * if _outbuf_len:
19515 */
19516 __pyx_t_9 = (__pyx_v__outs_len != 0);
19517 if (__pyx_t_9) {
19518
19519 /* "rados.pyx":1397
19520 * my_outbuf = _outbuf[:_outbuf_len]
19521 * if _outs_len:
19522 * rados_buffer_free(_outs) # <<<<<<<<<<<<<<
19523 * if _outbuf_len:
19524 * rados_buffer_free(_outbuf)
19525 */
19526 rados_buffer_free(__pyx_v__outs);
19527
19528 /* "rados.pyx":1396
19529 * my_outs = decode_cstr(_outs[:_outs_len])
19530 * my_outbuf = _outbuf[:_outbuf_len]
19531 * if _outs_len: # <<<<<<<<<<<<<<
19532 * rados_buffer_free(_outs)
19533 * if _outbuf_len:
19534 */
19535 }
19536
19537 /* "rados.pyx":1398
19538 * if _outs_len:
19539 * rados_buffer_free(_outs)
19540 * if _outbuf_len: # <<<<<<<<<<<<<<
19541 * rados_buffer_free(_outbuf)
19542 * return (ret, my_outbuf, my_outs)
19543 */
19544 __pyx_t_9 = (__pyx_v__outbuf_len != 0);
19545 if (__pyx_t_9) {
19546
19547 /* "rados.pyx":1399
19548 * rados_buffer_free(_outs)
19549 * if _outbuf_len:
19550 * rados_buffer_free(_outbuf) # <<<<<<<<<<<<<<
19551 * return (ret, my_outbuf, my_outs)
19552 * finally:
19553 */
19554 rados_buffer_free(__pyx_v__outbuf);
19555
19556 /* "rados.pyx":1398
19557 * if _outs_len:
19558 * rados_buffer_free(_outs)
19559 * if _outbuf_len: # <<<<<<<<<<<<<<
19560 * rados_buffer_free(_outbuf)
19561 * return (ret, my_outbuf, my_outs)
19562 */
19563 }
19564
19565 /* "rados.pyx":1400
19566 * if _outbuf_len:
19567 * rados_buffer_free(_outbuf)
19568 * return (ret, my_outbuf, my_outs) # <<<<<<<<<<<<<<
19569 * finally:
19570 * free(_cmd)
19571 */
19572 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
19573 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1400; __pyx_clineno = __LINE__19573; goto __pyx_L4_error;}
19574 __Pyx_GOTREF(__pyx_t_2);
19575 __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1400; __pyx_clineno = __LINE__19575; goto __pyx_L4_error;}
19576 __Pyx_GOTREF(__pyx_t_1);
19577 __Pyx_GIVEREF(__pyx_t_2);
19578 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_2);
19579 __Pyx_INCREF(__pyx_v_my_outbuf)( ((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt++);
19580 __Pyx_GIVEREF(__pyx_v_my_outbuf);
19581 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_my_outbuf)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_v_my_outbuf
)
;
19582 __Pyx_INCREF(__pyx_v_my_outs)( ((PyObject*)(__pyx_v_my_outs))->ob_refcnt++);
19583 __Pyx_GIVEREF(__pyx_v_my_outs);
19584 PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_my_outs)(((PyTupleObject *)(__pyx_t_1))->ob_item[2] = __pyx_v_my_outs
)
;
19585 __pyx_t_2 = 0;
19586 __pyx_r = __pyx_t_1;
19587 __pyx_t_1 = 0;
19588 goto __pyx_L3_return;
19589 }
19590
19591 /* "rados.pyx":1402
19592 * return (ret, my_outbuf, my_outs)
19593 * finally:
19594 * free(_cmd) # <<<<<<<<<<<<<<
19595 *
19596 * def mgr_command(self, cmd, inbuf, timeout=0):
19597 */
19598 /*finally:*/ {
19599 /*exception exit:*/{
19600 __pyx_L4_error:;
19601 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
19602 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
19603 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
19604 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
19605 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
19606 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
19607 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
19608 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_12, &
__pyx_t_13, &__pyx_t_14) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
19609 __Pyx_XGOTREF(__pyx_t_12);
19610 __Pyx_XGOTREF(__pyx_t_13);
19611 __Pyx_XGOTREF(__pyx_t_14);
19612 __Pyx_XGOTREF(__pyx_t_15);
19613 __Pyx_XGOTREF(__pyx_t_16);
19614 __Pyx_XGOTREF(__pyx_t_17);
19615 __pyx_t_6 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename;
19616 {
19617 free(__pyx_v__cmd);
19618 }
19619 if (PY_MAJOR_VERSION2 >= 3) {
19620 __Pyx_XGIVEREF(__pyx_t_15);
19621 __Pyx_XGIVEREF(__pyx_t_16);
19622 __Pyx_XGIVEREF(__pyx_t_17);
19623 __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
19624 }
19625 __Pyx_XGIVEREF(__pyx_t_12);
19626 __Pyx_XGIVEREF(__pyx_t_13);
19627 __Pyx_XGIVEREF(__pyx_t_14);
19628 __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
19629 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
19630 __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11;
19631 goto __pyx_L1_error;
19632 }
19633 __pyx_L3_return: {
19634 __pyx_t_17 = __pyx_r;
19635 __pyx_r = 0;
19636 free(__pyx_v__cmd);
19637 __pyx_r = __pyx_t_17;
19638 __pyx_t_17 = 0;
19639 goto __pyx_L0;
19640 }
19641 }
19642
19643 /* "rados.pyx":1360
19644 * free(_cmd)
19645 *
19646 * def osd_command(self, osdid, cmd, inbuf, timeout=0): # <<<<<<<<<<<<<<
19647 * """
19648 * osd_command(osdid, cmd, inbuf, outbuf, outbuflen, outs, outslen)
19649 */
19650
19651 /* function exit code */
19652 __pyx_L1_error:;
19653 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
19654 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
19655 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
19656 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
19657 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
19658 __Pyx_AddTraceback("rados.Rados.osd_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
19659 __pyx_r = NULL((void*)0);
19660 __pyx_L0:;
19661 __Pyx_XDECREF(__pyx_v_my_outs)do { if ((__pyx_v_my_outs) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outs))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_my_outs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outs)))); } while
(0); } while (0)
;
19662 __Pyx_XDECREF(__pyx_v_my_outbuf)do { if ((__pyx_v_my_outbuf) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_my_outbuf)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outbuf
)))); } while (0); } while (0)
;
19663 __Pyx_XDECREF(__pyx_v_cmd)do { if ((__pyx_v_cmd) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cmd))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_cmd)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cmd)))); } while (0); } while (0)
;
19664 __Pyx_XDECREF(__pyx_v_inbuf)do { if ((__pyx_v_inbuf) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_inbuf))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_inbuf)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_inbuf)))); } while (0); }
while (0)
;
19665 __Pyx_XGIVEREF(__pyx_r);
19666 __Pyx_RefNannyFinishContext();
19667 return __pyx_r;
19668}
19669
19670/* "rados.pyx":1404
19671 * free(_cmd)
19672 *
19673 * def mgr_command(self, cmd, inbuf, timeout=0): # <<<<<<<<<<<<<<
19674 * """
19675 * :return: (int ret, string outbuf, string outs)
19676 */
19677
19678/* Python wrapper */
19679static PyObject *__pyx_pw_5rados_5Rados_59mgr_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
19680static char __pyx_doc_5rados_5Rados_58mgr_command[] = "Rados.mgr_command(self, cmd, inbuf, timeout=0)\n\n :return: (int ret, string outbuf, string outs)\n ";
19681static PyObject *__pyx_pw_5rados_5Rados_59mgr_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
19682 PyObject *__pyx_v_cmd = 0;
19683 PyObject *__pyx_v_inbuf = 0;
19684 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout = 0;
19685 int __pyx_lineno = 0;
19686 const char *__pyx_filename = NULL((void*)0);
19687 int __pyx_clineno = 0;
19688 PyObject *__pyx_r = 0;
19689 __Pyx_RefNannyDeclarations
19690 __Pyx_RefNannySetupContext("mgr_command (wrapper)", 0);
19691 {
19692 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cmd,&__pyx_n_s_inbuf,&__pyx_n_s_timeout,0};
19693 PyObject* values[3] = {0,0,0};
19694 values[2] = ((PyObject *)__pyx_int_0);
19695 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
19696 Py_ssize_t kw_args;
19697 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
19698 switch (pos_args) {
19699 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
19700 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
19701 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
19702 case 0: break;
19703 default: goto __pyx_L5_argtuple_error;
19704 }
19705 kw_args = PyDict_Size(__pyx_kwds);
19706 switch (pos_args) {
19707 case 0:
19708 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd
)) != 0), 1)
) kw_args--;
19709 else goto __pyx_L5_argtuple_error;
19710 case 1:
19711 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf
)) != 0), 1)
) kw_args--;
19712 else {
19713 __Pyx_RaiseArgtupleInvalid("mgr_command", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__19713; goto __pyx_L3_error;}
19714 }
19715 case 2:
19716 if (kw_args > 0) {
19717 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_timeout);
19718 if (value) { values[2] = value; kw_args--; }
19719 }
19720 }
19721 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
19722 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mgr_command") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "mgr_command") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__19722; goto __pyx_L3_error;}
19723 }
19724 } else {
19725 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
19726 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
19727 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
19728 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
19729 break;
19730 default: goto __pyx_L5_argtuple_error;
19731 }
19732 }
19733 __pyx_v_cmd = values[0];
19734 __pyx_v_inbuf = values[1];
19735 __pyx_v_timeout = values[2];
19736 }
19737 goto __pyx_L4_argument_unpacking_done;
19738 __pyx_L5_argtuple_error:;
19739 __Pyx_RaiseArgtupleInvalid("mgr_command", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__19739; goto __pyx_L3_error;}
19740 __pyx_L3_error:;
19741 __Pyx_AddTraceback("rados.Rados.mgr_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
19742 __Pyx_RefNannyFinishContext();
19743 return NULL((void*)0);
19744 __pyx_L4_argument_unpacking_done:;
19745 __pyx_r = __pyx_pf_5rados_5Rados_58mgr_command(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_cmd, __pyx_v_inbuf, __pyx_v_timeout);
19746
19747 /* function exit code */
19748 __Pyx_RefNannyFinishContext();
19749 return __pyx_r;
19750}
19751
19752static PyObject *__pyx_pf_5rados_5Rados_58mgr_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout) {
19753 char **__pyx_v__cmd;
19754 size_t __pyx_v__cmdlen;
19755 char *__pyx_v__inbuf;
19756 size_t __pyx_v__inbuf_len;
19757 char *__pyx_v__outbuf;
19758 size_t __pyx_v__outbuf_len;
19759 char *__pyx_v__outs;
19760 size_t __pyx_v__outs_len;
19761 int __pyx_v_ret;
19762 PyObject *__pyx_v_my_outs = NULL((void*)0);
19763 PyObject *__pyx_v_my_outbuf = NULL((void*)0);
19764 PyObject *__pyx_r = NULL((void*)0);
19765 __Pyx_RefNannyDeclarations
19766 PyObject *__pyx_t_1 = NULL((void*)0);
19767 PyObject *__pyx_t_2 = NULL((void*)0);
19768 PyObject *__pyx_t_3 = NULL((void*)0);
19769 Py_ssize_t __pyx_t_4;
19770 PyObject *__pyx_t_5 = NULL((void*)0);
19771 char *__pyx_t_6;
19772 PyObject *__pyx_t_7 = NULL((void*)0);
19773 int __pyx_t_8;
19774 int __pyx_t_9;
19775 int __pyx_t_10;
19776 char const *__pyx_t_11;
19777 PyObject *__pyx_t_12 = NULL((void*)0);
19778 PyObject *__pyx_t_13 = NULL((void*)0);
19779 PyObject *__pyx_t_14 = NULL((void*)0);
19780 PyObject *__pyx_t_15 = NULL((void*)0);
19781 PyObject *__pyx_t_16 = NULL((void*)0);
19782 PyObject *__pyx_t_17 = NULL((void*)0);
19783 int __pyx_lineno = 0;
19784 const char *__pyx_filename = NULL((void*)0);
19785 int __pyx_clineno = 0;
19786 __Pyx_RefNannySetupContext("mgr_command", 0);
19787 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
19788 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
19789
19790 /* "rados.pyx":1410
19791 * # NOTE(sileht): timeout is ignored because C API doesn't provide
19792 * # timeout argument, but we keep it for backward compat with old python binding
19793 * self.require_state("connected") # <<<<<<<<<<<<<<
19794 *
19795 * cmd = cstr_list(cmd, 'cmd')
19796 */
19797 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1410; __pyx_clineno = __LINE__19797; goto __pyx_L1_error;}
19798 __Pyx_GOTREF(__pyx_t_1);
19799 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__38, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1410; __pyx_clineno = __LINE__19799; goto __pyx_L1_error;}
19800 __Pyx_GOTREF(__pyx_t_2);
19801 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
19802 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
19803
19804 /* "rados.pyx":1412
19805 * self.require_state("connected")
19806 *
19807 * cmd = cstr_list(cmd, 'cmd') # <<<<<<<<<<<<<<
19808 * inbuf = cstr(inbuf, 'inbuf')
19809 *
19810 */
19811 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__19811; goto __pyx_L1_error;}
19812 __Pyx_GOTREF(__pyx_t_1);
19813 __pyx_t_3 = NULL((void*)0);
19814 __pyx_t_4 = 0;
19815 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
19816 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
19817 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
19818 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
19819 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
19820 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
19821 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19822 __pyx_t_4 = 1;
19823 }
19824 }
19825 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__19825; goto __pyx_L1_error;}
19826 __Pyx_GOTREF(__pyx_t_5);
19827 if (__pyx_t_3) {
19828 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
19829 }
19830 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
19831 __Pyx_GIVEREF(__pyx_v_cmd);
19832 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_cmd)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_cmd
)
;
19833 __Pyx_INCREF(__pyx_n_s_cmd)( ((PyObject*)(__pyx_n_s_cmd))->ob_refcnt++);
19834 __Pyx_GIVEREF(__pyx_n_s_cmd);
19835 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_cmd)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_cmd
)
;
19836 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__19836; goto __pyx_L1_error;}
19837 __Pyx_GOTREF(__pyx_t_2);
19838 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
19839 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
19840 __Pyx_DECREF_SET(__pyx_v_cmd, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_cmd; __pyx_v_cmd = __pyx_t_2
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19841 __pyx_t_2 = 0;
19842
19843 /* "rados.pyx":1413
19844 *
19845 * cmd = cstr_list(cmd, 'cmd')
19846 * inbuf = cstr(inbuf, 'inbuf') # <<<<<<<<<<<<<<
19847 *
19848 * cdef:
19849 */
19850 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__19850; goto __pyx_L1_error;}
19851 __Pyx_GOTREF(__pyx_t_1);
19852 __pyx_t_5 = NULL((void*)0);
19853 __pyx_t_4 = 0;
19854 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
19855 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
19856 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
19857 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
19858 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
19859 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
19860 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19861 __pyx_t_4 = 1;
19862 }
19863 }
19864 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__19864; goto __pyx_L1_error;}
19865 __Pyx_GOTREF(__pyx_t_3);
19866 if (__pyx_t_5) {
19867 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
19868 }
19869 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
19870 __Pyx_GIVEREF(__pyx_v_inbuf);
19871 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_inbuf)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_inbuf
)
;
19872 __Pyx_INCREF(__pyx_n_s_inbuf)( ((PyObject*)(__pyx_n_s_inbuf))->ob_refcnt++);
19873 __Pyx_GIVEREF(__pyx_n_s_inbuf);
19874 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_inbuf)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_inbuf
)
;
19875 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__19875; goto __pyx_L1_error;}
19876 __Pyx_GOTREF(__pyx_t_2);
19877 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
19878 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
19879 __Pyx_DECREF_SET(__pyx_v_inbuf, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_inbuf; __pyx_v_inbuf
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
19880 __pyx_t_2 = 0;
19881
19882 /* "rados.pyx":1416
19883 *
19884 * cdef:
19885 * char **_cmd = to_bytes_array(cmd) # <<<<<<<<<<<<<<
19886 * size_t _cmdlen = len(cmd)
19887 *
19888 */
19889 __pyx_v__cmd = __pyx_f_5rados_to_bytes_array(__pyx_v_cmd);
19890
19891 /* "rados.pyx":1417
19892 * cdef:
19893 * char **_cmd = to_bytes_array(cmd)
19894 * size_t _cmdlen = len(cmd) # <<<<<<<<<<<<<<
19895 *
19896 * char *_inbuf = inbuf
19897 */
19898 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_cmd); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1417; __pyx_clineno = __LINE__19898; goto __pyx_L1_error;}
19899 __pyx_v__cmdlen = __pyx_t_4;
19900
19901 /* "rados.pyx":1419
19902 * size_t _cmdlen = len(cmd)
19903 *
19904 * char *_inbuf = inbuf # <<<<<<<<<<<<<<
19905 * size_t _inbuf_len = len(inbuf)
19906 *
19907 */
19908 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_inbuf); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1419; __pyx_clineno = __LINE__19908; goto __pyx_L1_error;}
19909 __pyx_v__inbuf = __pyx_t_6;
19910
19911 /* "rados.pyx":1420
19912 *
19913 * char *_inbuf = inbuf
19914 * size_t _inbuf_len = len(inbuf) # <<<<<<<<<<<<<<
19915 *
19916 * char *_outbuf
19917 */
19918 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_inbuf); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1420; __pyx_clineno = __LINE__19918; goto __pyx_L1_error;}
19919 __pyx_v__inbuf_len = __pyx_t_4;
19920
19921 /* "rados.pyx":1427
19922 * size_t _outs_len
19923 *
19924 * try: # <<<<<<<<<<<<<<
19925 * with nogil:
19926 * ret = rados_mgr_command(self.cluster,
19927 */
19928 /*try:*/ {
19929
19930 /* "rados.pyx":1428
19931 *
19932 * try:
19933 * with nogil: # <<<<<<<<<<<<<<
19934 * ret = rados_mgr_command(self.cluster,
19935 * <const char **>_cmd, _cmdlen,
19936 */
19937 {
19938 #ifdef WITH_THREAD1
19939 PyThreadState *_save;
19940 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
19941 #endif
19942 /*try:*/ {
19943
19944 /* "rados.pyx":1429
19945 * try:
19946 * with nogil:
19947 * ret = rados_mgr_command(self.cluster, # <<<<<<<<<<<<<<
19948 * <const char **>_cmd, _cmdlen,
19949 * <const char*>_inbuf, _inbuf_len,
19950 */
19951 __pyx_v_ret = rados_mgr_command(__pyx_v_self->cluster, ((char const **)__pyx_v__cmd), __pyx_v__cmdlen, ((char const *)__pyx_v__inbuf), __pyx_v__inbuf_len, (&__pyx_v__outbuf), (&__pyx_v__outbuf_len), (&__pyx_v__outs), (&__pyx_v__outs_len));
19952 }
19953
19954 /* "rados.pyx":1428
19955 *
19956 * try:
19957 * with nogil: # <<<<<<<<<<<<<<
19958 * ret = rados_mgr_command(self.cluster,
19959 * <const char **>_cmd, _cmdlen,
19960 */
19961 /*finally:*/ {
19962 /*normal exit:*/{
19963 #ifdef WITH_THREAD1
19964 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
19965 #endif
19966 goto __pyx_L8;
19967 }
19968 __pyx_L8:;
19969 }
19970 }
19971
19972 /* "rados.pyx":1435
19973 * &_outs, &_outs_len)
19974 *
19975 * my_outs = decode_cstr(_outs[:_outs_len]) # <<<<<<<<<<<<<<
19976 * my_outbuf = _outbuf[:_outbuf_len]
19977 * if _outs_len:
19978 */
19979 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1435; __pyx_clineno = __LINE__19979; goto __pyx_L4_error;}
19980 __Pyx_GOTREF(__pyx_t_1);
19981 __pyx_t_3 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outs + 0, __pyx_v__outs_len - 0); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1435; __pyx_clineno = __LINE__19981; goto __pyx_L4_error;}
19982 __Pyx_GOTREF(__pyx_t_3);
19983 __pyx_t_5 = NULL((void*)0);
19984 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
19985 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
19986 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
19987 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
19988 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
19989 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
19990 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
19991 }
19992 }
19993 if (!__pyx_t_5) {
19994 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1435; __pyx_clineno = __LINE__19994; goto __pyx_L4_error;}
19995 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
19996 __Pyx_GOTREF(__pyx_t_2);
19997 } else {
19998 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1435; __pyx_clineno = __LINE__19998; goto __pyx_L4_error;}
19999 __Pyx_GOTREF(__pyx_t_7);
20000 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
20001 __Pyx_GIVEREF(__pyx_t_3);
20002 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_3)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_3);
20003 __pyx_t_3 = 0;
20004 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1435; __pyx_clineno = __LINE__20004; goto __pyx_L4_error;}
20005 __Pyx_GOTREF(__pyx_t_2);
20006 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
20007 }
20008 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20009 __pyx_v_my_outs = __pyx_t_2;
20010 __pyx_t_2 = 0;
20011
20012 /* "rados.pyx":1436
20013 *
20014 * my_outs = decode_cstr(_outs[:_outs_len])
20015 * my_outbuf = _outbuf[:_outbuf_len] # <<<<<<<<<<<<<<
20016 * if _outs_len:
20017 * rados_buffer_free(_outs)
20018 */
20019 __pyx_t_2 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outbuf + 0, __pyx_v__outbuf_len - 0); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__20019; goto __pyx_L4_error;}
20020 __Pyx_GOTREF(__pyx_t_2);
20021 __pyx_v_my_outbuf = ((PyObject*)__pyx_t_2);
20022 __pyx_t_2 = 0;
20023
20024 /* "rados.pyx":1437
20025 * my_outs = decode_cstr(_outs[:_outs_len])
20026 * my_outbuf = _outbuf[:_outbuf_len]
20027 * if _outs_len: # <<<<<<<<<<<<<<
20028 * rados_buffer_free(_outs)
20029 * if _outbuf_len:
20030 */
20031 __pyx_t_8 = (__pyx_v__outs_len != 0);
20032 if (__pyx_t_8) {
20033
20034 /* "rados.pyx":1438
20035 * my_outbuf = _outbuf[:_outbuf_len]
20036 * if _outs_len:
20037 * rados_buffer_free(_outs) # <<<<<<<<<<<<<<
20038 * if _outbuf_len:
20039 * rados_buffer_free(_outbuf)
20040 */
20041 rados_buffer_free(__pyx_v__outs);
20042
20043 /* "rados.pyx":1437
20044 * my_outs = decode_cstr(_outs[:_outs_len])
20045 * my_outbuf = _outbuf[:_outbuf_len]
20046 * if _outs_len: # <<<<<<<<<<<<<<
20047 * rados_buffer_free(_outs)
20048 * if _outbuf_len:
20049 */
20050 }
20051
20052 /* "rados.pyx":1439
20053 * if _outs_len:
20054 * rados_buffer_free(_outs)
20055 * if _outbuf_len: # <<<<<<<<<<<<<<
20056 * rados_buffer_free(_outbuf)
20057 * return (ret, my_outbuf, my_outs)
20058 */
20059 __pyx_t_8 = (__pyx_v__outbuf_len != 0);
20060 if (__pyx_t_8) {
20061
20062 /* "rados.pyx":1440
20063 * rados_buffer_free(_outs)
20064 * if _outbuf_len:
20065 * rados_buffer_free(_outbuf) # <<<<<<<<<<<<<<
20066 * return (ret, my_outbuf, my_outs)
20067 * finally:
20068 */
20069 rados_buffer_free(__pyx_v__outbuf);
20070
20071 /* "rados.pyx":1439
20072 * if _outs_len:
20073 * rados_buffer_free(_outs)
20074 * if _outbuf_len: # <<<<<<<<<<<<<<
20075 * rados_buffer_free(_outbuf)
20076 * return (ret, my_outbuf, my_outs)
20077 */
20078 }
20079
20080 /* "rados.pyx":1441
20081 * if _outbuf_len:
20082 * rados_buffer_free(_outbuf)
20083 * return (ret, my_outbuf, my_outs) # <<<<<<<<<<<<<<
20084 * finally:
20085 * free(_cmd)
20086 */
20087 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
20088 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1441; __pyx_clineno = __LINE__20088; goto __pyx_L4_error;}
20089 __Pyx_GOTREF(__pyx_t_2);
20090 __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1441; __pyx_clineno = __LINE__20090; goto __pyx_L4_error;}
20091 __Pyx_GOTREF(__pyx_t_1);
20092 __Pyx_GIVEREF(__pyx_t_2);
20093 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_2);
20094 __Pyx_INCREF(__pyx_v_my_outbuf)( ((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt++);
20095 __Pyx_GIVEREF(__pyx_v_my_outbuf);
20096 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_my_outbuf)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_v_my_outbuf
)
;
20097 __Pyx_INCREF(__pyx_v_my_outs)( ((PyObject*)(__pyx_v_my_outs))->ob_refcnt++);
20098 __Pyx_GIVEREF(__pyx_v_my_outs);
20099 PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_my_outs)(((PyTupleObject *)(__pyx_t_1))->ob_item[2] = __pyx_v_my_outs
)
;
20100 __pyx_t_2 = 0;
20101 __pyx_r = __pyx_t_1;
20102 __pyx_t_1 = 0;
20103 goto __pyx_L3_return;
20104 }
20105
20106 /* "rados.pyx":1443
20107 * return (ret, my_outbuf, my_outs)
20108 * finally:
20109 * free(_cmd) # <<<<<<<<<<<<<<
20110 *
20111 * def pg_command(self, pgid, cmd, inbuf, timeout=0):
20112 */
20113 /*finally:*/ {
20114 /*exception exit:*/{
20115 __pyx_L4_error:;
20116 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
20117 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
20118 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
20119 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
20120 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
20121 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
20122 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
20123 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_12, &
__pyx_t_13, &__pyx_t_14) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
20124 __Pyx_XGOTREF(__pyx_t_12);
20125 __Pyx_XGOTREF(__pyx_t_13);
20126 __Pyx_XGOTREF(__pyx_t_14);
20127 __Pyx_XGOTREF(__pyx_t_15);
20128 __Pyx_XGOTREF(__pyx_t_16);
20129 __Pyx_XGOTREF(__pyx_t_17);
20130 __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename;
20131 {
20132 free(__pyx_v__cmd);
20133 }
20134 if (PY_MAJOR_VERSION2 >= 3) {
20135 __Pyx_XGIVEREF(__pyx_t_15);
20136 __Pyx_XGIVEREF(__pyx_t_16);
20137 __Pyx_XGIVEREF(__pyx_t_17);
20138 __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
20139 }
20140 __Pyx_XGIVEREF(__pyx_t_12);
20141 __Pyx_XGIVEREF(__pyx_t_13);
20142 __Pyx_XGIVEREF(__pyx_t_14);
20143 __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
20144 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
20145 __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11;
20146 goto __pyx_L1_error;
20147 }
20148 __pyx_L3_return: {
20149 __pyx_t_17 = __pyx_r;
20150 __pyx_r = 0;
20151 free(__pyx_v__cmd);
20152 __pyx_r = __pyx_t_17;
20153 __pyx_t_17 = 0;
20154 goto __pyx_L0;
20155 }
20156 }
20157
20158 /* "rados.pyx":1404
20159 * free(_cmd)
20160 *
20161 * def mgr_command(self, cmd, inbuf, timeout=0): # <<<<<<<<<<<<<<
20162 * """
20163 * :return: (int ret, string outbuf, string outs)
20164 */
20165
20166 /* function exit code */
20167 __pyx_L1_error:;
20168 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
20169 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
20170 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
20171 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
20172 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
20173 __Pyx_AddTraceback("rados.Rados.mgr_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
20174 __pyx_r = NULL((void*)0);
20175 __pyx_L0:;
20176 __Pyx_XDECREF(__pyx_v_my_outs)do { if ((__pyx_v_my_outs) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outs))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_my_outs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outs)))); } while
(0); } while (0)
;
20177 __Pyx_XDECREF(__pyx_v_my_outbuf)do { if ((__pyx_v_my_outbuf) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_my_outbuf)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outbuf
)))); } while (0); } while (0)
;
20178 __Pyx_XDECREF(__pyx_v_cmd)do { if ((__pyx_v_cmd) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cmd))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_cmd)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cmd)))); } while (0); } while (0)
;
20179 __Pyx_XDECREF(__pyx_v_inbuf)do { if ((__pyx_v_inbuf) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_inbuf))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_inbuf)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_inbuf)))); } while (0); }
while (0)
;
20180 __Pyx_XGIVEREF(__pyx_r);
20181 __Pyx_RefNannyFinishContext();
20182 return __pyx_r;
20183}
20184
20185/* "rados.pyx":1445
20186 * free(_cmd)
20187 *
20188 * def pg_command(self, pgid, cmd, inbuf, timeout=0): # <<<<<<<<<<<<<<
20189 * """
20190 * pg_command(pgid, cmd, inbuf, outbuf, outbuflen, outs, outslen)
20191 */
20192
20193/* Python wrapper */
20194static PyObject *__pyx_pw_5rados_5Rados_61pg_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20195static char __pyx_doc_5rados_5Rados_60pg_command[] = "Rados.pg_command(self, pgid, cmd, inbuf, timeout=0)\n\n pg_command(pgid, cmd, inbuf, outbuf, outbuflen, outs, outslen)\n\n :return: (int ret, string outbuf, string outs)\n ";
20196static PyObject *__pyx_pw_5rados_5Rados_61pg_command(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20197 PyObject *__pyx_v_pgid = 0;
20198 PyObject *__pyx_v_cmd = 0;
20199 PyObject *__pyx_v_inbuf = 0;
20200 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout = 0;
20201 int __pyx_lineno = 0;
20202 const char *__pyx_filename = NULL((void*)0);
20203 int __pyx_clineno = 0;
20204 PyObject *__pyx_r = 0;
20205 __Pyx_RefNannyDeclarations
20206 __Pyx_RefNannySetupContext("pg_command (wrapper)", 0);
20207 {
20208 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pgid,&__pyx_n_s_cmd,&__pyx_n_s_inbuf,&__pyx_n_s_timeout,0};
20209 PyObject* values[4] = {0,0,0,0};
20210 values[3] = ((PyObject *)__pyx_int_0);
20211 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
20212 Py_ssize_t kw_args;
20213 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
20214 switch (pos_args) {
20215 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
20216 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
20217 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
20218 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
20219 case 0: break;
20220 default: goto __pyx_L5_argtuple_error;
20221 }
20222 kw_args = PyDict_Size(__pyx_kwds);
20223 switch (pos_args) {
20224 case 0:
20225 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pgid)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pgid
)) != 0), 1)
) kw_args--;
20226 else goto __pyx_L5_argtuple_error;
20227 case 1:
20228 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cmd
)) != 0), 1)
) kw_args--;
20229 else {
20230 __Pyx_RaiseArgtupleInvalid("pg_command", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__20230; goto __pyx_L3_error;}
20231 }
20232 case 2:
20233 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inbuf
)) != 0), 1)
) kw_args--;
20234 else {
20235 __Pyx_RaiseArgtupleInvalid("pg_command", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__20235; goto __pyx_L3_error;}
20236 }
20237 case 3:
20238 if (kw_args > 0) {
20239 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_timeout);
20240 if (value) { values[3] = value; kw_args--; }
20241 }
20242 }
20243 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
20244 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pg_command") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "pg_command") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__20244; goto __pyx_L3_error;}
20245 }
20246 } else {
20247 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
20248 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
20249 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
20250 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
20251 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
20252 break;
20253 default: goto __pyx_L5_argtuple_error;
20254 }
20255 }
20256 __pyx_v_pgid = values[0];
20257 __pyx_v_cmd = values[1];
20258 __pyx_v_inbuf = values[2];
20259 __pyx_v_timeout = values[3];
20260 }
20261 goto __pyx_L4_argument_unpacking_done;
20262 __pyx_L5_argtuple_error:;
20263 __Pyx_RaiseArgtupleInvalid("pg_command", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1445; __pyx_clineno = __LINE__20263; goto __pyx_L3_error;}
20264 __pyx_L3_error:;
20265 __Pyx_AddTraceback("rados.Rados.pg_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
20266 __Pyx_RefNannyFinishContext();
20267 return NULL((void*)0);
20268 __pyx_L4_argument_unpacking_done:;
20269 __pyx_r = __pyx_pf_5rados_5Rados_60pg_command(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_pgid, __pyx_v_cmd, __pyx_v_inbuf, __pyx_v_timeout);
20270
20271 /* function exit code */
20272 __Pyx_RefNannyFinishContext();
20273 return __pyx_r;
20274}
20275
20276static PyObject *__pyx_pf_5rados_5Rados_60pg_command(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_pgid, PyObject *__pyx_v_cmd, PyObject *__pyx_v_inbuf, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_timeout) {
20277 char *__pyx_v__pgid;
20278 char **__pyx_v__cmd;
20279 size_t __pyx_v__cmdlen;
20280 char *__pyx_v__inbuf;
20281 size_t __pyx_v__inbuf_len;
20282 char *__pyx_v__outbuf;
20283 size_t __pyx_v__outbuf_len;
20284 char *__pyx_v__outs;
20285 size_t __pyx_v__outs_len;
20286 int __pyx_v_ret;
20287 PyObject *__pyx_v_my_outs = NULL((void*)0);
20288 PyObject *__pyx_v_my_outbuf = NULL((void*)0);
20289 PyObject *__pyx_r = NULL((void*)0);
20290 __Pyx_RefNannyDeclarations
20291 PyObject *__pyx_t_1 = NULL((void*)0);
20292 PyObject *__pyx_t_2 = NULL((void*)0);
20293 PyObject *__pyx_t_3 = NULL((void*)0);
20294 Py_ssize_t __pyx_t_4;
20295 PyObject *__pyx_t_5 = NULL((void*)0);
20296 char *__pyx_t_6;
20297 PyObject *__pyx_t_7 = NULL((void*)0);
20298 int __pyx_t_8;
20299 int __pyx_t_9;
20300 int __pyx_t_10;
20301 char const *__pyx_t_11;
20302 PyObject *__pyx_t_12 = NULL((void*)0);
20303 PyObject *__pyx_t_13 = NULL((void*)0);
20304 PyObject *__pyx_t_14 = NULL((void*)0);
20305 PyObject *__pyx_t_15 = NULL((void*)0);
20306 PyObject *__pyx_t_16 = NULL((void*)0);
20307 PyObject *__pyx_t_17 = NULL((void*)0);
20308 int __pyx_lineno = 0;
20309 const char *__pyx_filename = NULL((void*)0);
20310 int __pyx_clineno = 0;
20311 __Pyx_RefNannySetupContext("pg_command", 0);
20312 __Pyx_INCREF(__pyx_v_pgid)( ((PyObject*)(__pyx_v_pgid))->ob_refcnt++);
20313 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
20314 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
20315
20316 /* "rados.pyx":1453
20317 * # NOTE(sileht): timeout is ignored because C API doesn't provide
20318 * # timeout argument, but we keep it for backward compat with old python binding
20319 * self.require_state("connected") # <<<<<<<<<<<<<<
20320 *
20321 * pgid = cstr(pgid, 'pgid')
20322 */
20323 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__20323; goto __pyx_L1_error;}
20324 __Pyx_GOTREF(__pyx_t_1);
20325 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__39, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__20325; goto __pyx_L1_error;}
20326 __Pyx_GOTREF(__pyx_t_2);
20327 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20328 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
20329
20330 /* "rados.pyx":1455
20331 * self.require_state("connected")
20332 *
20333 * pgid = cstr(pgid, 'pgid') # <<<<<<<<<<<<<<
20334 * cmd = cstr_list(cmd, 'cmd')
20335 * inbuf = cstr(inbuf, 'inbuf')
20336 */
20337 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__20337; goto __pyx_L1_error;}
20338 __Pyx_GOTREF(__pyx_t_1);
20339 __pyx_t_3 = NULL((void*)0);
20340 __pyx_t_4 = 0;
20341 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
20342 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
20343 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
20344 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
20345 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
20346 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
20347 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
20348 __pyx_t_4 = 1;
20349 }
20350 }
20351 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__20351; goto __pyx_L1_error;}
20352 __Pyx_GOTREF(__pyx_t_5);
20353 if (__pyx_t_3) {
20354 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
20355 }
20356 __Pyx_INCREF(__pyx_v_pgid)( ((PyObject*)(__pyx_v_pgid))->ob_refcnt++);
20357 __Pyx_GIVEREF(__pyx_v_pgid);
20358 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_pgid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_pgid
)
;
20359 __Pyx_INCREF(__pyx_n_s_pgid)( ((PyObject*)(__pyx_n_s_pgid))->ob_refcnt++);
20360 __Pyx_GIVEREF(__pyx_n_s_pgid);
20361 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_pgid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_pgid
)
;
20362 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__20362; goto __pyx_L1_error;}
20363 __Pyx_GOTREF(__pyx_t_2);
20364 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
20365 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20366 __Pyx_DECREF_SET(__pyx_v_pgid, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_pgid; __pyx_v_pgid =
__pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
20367 __pyx_t_2 = 0;
20368
20369 /* "rados.pyx":1456
20370 *
20371 * pgid = cstr(pgid, 'pgid')
20372 * cmd = cstr_list(cmd, 'cmd') # <<<<<<<<<<<<<<
20373 * inbuf = cstr(inbuf, 'inbuf')
20374 *
20375 */
20376 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__20376; goto __pyx_L1_error;}
20377 __Pyx_GOTREF(__pyx_t_1);
20378 __pyx_t_5 = NULL((void*)0);
20379 __pyx_t_4 = 0;
20380 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
20381 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
20382 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
20383 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
20384 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
20385 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
20386 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
20387 __pyx_t_4 = 1;
20388 }
20389 }
20390 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__20390; goto __pyx_L1_error;}
20391 __Pyx_GOTREF(__pyx_t_3);
20392 if (__pyx_t_5) {
20393 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
20394 }
20395 __Pyx_INCREF(__pyx_v_cmd)( ((PyObject*)(__pyx_v_cmd))->ob_refcnt++);
20396 __Pyx_GIVEREF(__pyx_v_cmd);
20397 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_cmd)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_cmd
)
;
20398 __Pyx_INCREF(__pyx_n_s_cmd)( ((PyObject*)(__pyx_n_s_cmd))->ob_refcnt++);
20399 __Pyx_GIVEREF(__pyx_n_s_cmd);
20400 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_cmd)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_cmd
)
;
20401 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__20401; goto __pyx_L1_error;}
20402 __Pyx_GOTREF(__pyx_t_2);
20403 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
20404 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20405 __Pyx_DECREF_SET(__pyx_v_cmd, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_cmd; __pyx_v_cmd = __pyx_t_2
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
20406 __pyx_t_2 = 0;
20407
20408 /* "rados.pyx":1457
20409 * pgid = cstr(pgid, 'pgid')
20410 * cmd = cstr_list(cmd, 'cmd')
20411 * inbuf = cstr(inbuf, 'inbuf') # <<<<<<<<<<<<<<
20412 *
20413 * cdef:
20414 */
20415 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1457; __pyx_clineno = __LINE__20415; goto __pyx_L1_error;}
20416 __Pyx_GOTREF(__pyx_t_1);
20417 __pyx_t_3 = NULL((void*)0);
20418 __pyx_t_4 = 0;
20419 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
20420 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
20421 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
20422 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
20423 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
20424 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
20425 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
20426 __pyx_t_4 = 1;
20427 }
20428 }
20429 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1457; __pyx_clineno = __LINE__20429; goto __pyx_L1_error;}
20430 __Pyx_GOTREF(__pyx_t_5);
20431 if (__pyx_t_3) {
20432 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
20433 }
20434 __Pyx_INCREF(__pyx_v_inbuf)( ((PyObject*)(__pyx_v_inbuf))->ob_refcnt++);
20435 __Pyx_GIVEREF(__pyx_v_inbuf);
20436 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_inbuf)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_inbuf
)
;
20437 __Pyx_INCREF(__pyx_n_s_inbuf)( ((PyObject*)(__pyx_n_s_inbuf))->ob_refcnt++);
20438 __Pyx_GIVEREF(__pyx_n_s_inbuf);
20439 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_inbuf)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_inbuf
)
;
20440 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1457; __pyx_clineno = __LINE__20440; goto __pyx_L1_error;}
20441 __Pyx_GOTREF(__pyx_t_2);
20442 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
20443 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20444 __Pyx_DECREF_SET(__pyx_v_inbuf, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_inbuf; __pyx_v_inbuf
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
20445 __pyx_t_2 = 0;
20446
20447 /* "rados.pyx":1460
20448 *
20449 * cdef:
20450 * char *_pgid = pgid # <<<<<<<<<<<<<<
20451 * char **_cmd = to_bytes_array(cmd)
20452 * size_t _cmdlen = len(cmd)
20453 */
20454 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_pgid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1460; __pyx_clineno = __LINE__20454; goto __pyx_L1_error;}
20455 __pyx_v__pgid = __pyx_t_6;
20456
20457 /* "rados.pyx":1461
20458 * cdef:
20459 * char *_pgid = pgid
20460 * char **_cmd = to_bytes_array(cmd) # <<<<<<<<<<<<<<
20461 * size_t _cmdlen = len(cmd)
20462 *
20463 */
20464 __pyx_v__cmd = __pyx_f_5rados_to_bytes_array(__pyx_v_cmd);
20465
20466 /* "rados.pyx":1462
20467 * char *_pgid = pgid
20468 * char **_cmd = to_bytes_array(cmd)
20469 * size_t _cmdlen = len(cmd) # <<<<<<<<<<<<<<
20470 *
20471 * char *_inbuf = inbuf
20472 */
20473 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_cmd); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1462; __pyx_clineno = __LINE__20473; goto __pyx_L1_error;}
20474 __pyx_v__cmdlen = __pyx_t_4;
20475
20476 /* "rados.pyx":1464
20477 * size_t _cmdlen = len(cmd)
20478 *
20479 * char *_inbuf = inbuf # <<<<<<<<<<<<<<
20480 * size_t _inbuf_len = len(inbuf)
20481 *
20482 */
20483 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_inbuf); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1464; __pyx_clineno = __LINE__20483; goto __pyx_L1_error;}
20484 __pyx_v__inbuf = __pyx_t_6;
20485
20486 /* "rados.pyx":1465
20487 *
20488 * char *_inbuf = inbuf
20489 * size_t _inbuf_len = len(inbuf) # <<<<<<<<<<<<<<
20490 *
20491 * char *_outbuf
20492 */
20493 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_inbuf); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1465; __pyx_clineno = __LINE__20493; goto __pyx_L1_error;}
20494 __pyx_v__inbuf_len = __pyx_t_4;
20495
20496 /* "rados.pyx":1472
20497 * size_t _outs_len
20498 *
20499 * try: # <<<<<<<<<<<<<<
20500 * with nogil:
20501 * ret = rados_pg_command(self.cluster, _pgid,
20502 */
20503 /*try:*/ {
20504
20505 /* "rados.pyx":1473
20506 *
20507 * try:
20508 * with nogil: # <<<<<<<<<<<<<<
20509 * ret = rados_pg_command(self.cluster, _pgid,
20510 * <const char **>_cmd, _cmdlen,
20511 */
20512 {
20513 #ifdef WITH_THREAD1
20514 PyThreadState *_save;
20515 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
20516 #endif
20517 /*try:*/ {
20518
20519 /* "rados.pyx":1474
20520 * try:
20521 * with nogil:
20522 * ret = rados_pg_command(self.cluster, _pgid, # <<<<<<<<<<<<<<
20523 * <const char **>_cmd, _cmdlen,
20524 * <const char *>_inbuf, _inbuf_len,
20525 */
20526 __pyx_v_ret = rados_pg_command(__pyx_v_self->cluster, __pyx_v__pgid, ((char const **)__pyx_v__cmd), __pyx_v__cmdlen, ((char const *)__pyx_v__inbuf), __pyx_v__inbuf_len, (&__pyx_v__outbuf), (&__pyx_v__outbuf_len), (&__pyx_v__outs), (&__pyx_v__outs_len));
20527 }
20528
20529 /* "rados.pyx":1473
20530 *
20531 * try:
20532 * with nogil: # <<<<<<<<<<<<<<
20533 * ret = rados_pg_command(self.cluster, _pgid,
20534 * <const char **>_cmd, _cmdlen,
20535 */
20536 /*finally:*/ {
20537 /*normal exit:*/{
20538 #ifdef WITH_THREAD1
20539 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
20540 #endif
20541 goto __pyx_L8;
20542 }
20543 __pyx_L8:;
20544 }
20545 }
20546
20547 /* "rados.pyx":1480
20548 * &_outs, &_outs_len)
20549 *
20550 * my_outs = decode_cstr(_outs[:_outs_len]) # <<<<<<<<<<<<<<
20551 * my_outbuf = _outbuf[:_outbuf_len]
20552 * if _outs_len:
20553 */
20554 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__20554; goto __pyx_L4_error;}
20555 __Pyx_GOTREF(__pyx_t_1);
20556 __pyx_t_5 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outs + 0, __pyx_v__outs_len - 0); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__20556; goto __pyx_L4_error;}
20557 __Pyx_GOTREF(__pyx_t_5);
20558 __pyx_t_3 = NULL((void*)0);
20559 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
20560 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
20561 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
20562 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
20563 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
20564 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
20565 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
20566 }
20567 }
20568 if (!__pyx_t_3) {
20569 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__20569; goto __pyx_L4_error;}
20570 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
20571 __Pyx_GOTREF(__pyx_t_2);
20572 } else {
20573 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__20573; goto __pyx_L4_error;}
20574 __Pyx_GOTREF(__pyx_t_7);
20575 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
20576 __Pyx_GIVEREF(__pyx_t_5);
20577 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
20578 __pyx_t_5 = 0;
20579 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1480; __pyx_clineno = __LINE__20579; goto __pyx_L4_error;}
20580 __Pyx_GOTREF(__pyx_t_2);
20581 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
20582 }
20583 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20584 __pyx_v_my_outs = __pyx_t_2;
20585 __pyx_t_2 = 0;
20586
20587 /* "rados.pyx":1481
20588 *
20589 * my_outs = decode_cstr(_outs[:_outs_len])
20590 * my_outbuf = _outbuf[:_outbuf_len] # <<<<<<<<<<<<<<
20591 * if _outs_len:
20592 * rados_buffer_free(_outs)
20593 */
20594 __pyx_t_2 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v__outbuf + 0, __pyx_v__outbuf_len - 0); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__20594; goto __pyx_L4_error;}
20595 __Pyx_GOTREF(__pyx_t_2);
20596 __pyx_v_my_outbuf = ((PyObject*)__pyx_t_2);
20597 __pyx_t_2 = 0;
20598
20599 /* "rados.pyx":1482
20600 * my_outs = decode_cstr(_outs[:_outs_len])
20601 * my_outbuf = _outbuf[:_outbuf_len]
20602 * if _outs_len: # <<<<<<<<<<<<<<
20603 * rados_buffer_free(_outs)
20604 * if _outbuf_len:
20605 */
20606 __pyx_t_8 = (__pyx_v__outs_len != 0);
20607 if (__pyx_t_8) {
20608
20609 /* "rados.pyx":1483
20610 * my_outbuf = _outbuf[:_outbuf_len]
20611 * if _outs_len:
20612 * rados_buffer_free(_outs) # <<<<<<<<<<<<<<
20613 * if _outbuf_len:
20614 * rados_buffer_free(_outbuf)
20615 */
20616 rados_buffer_free(__pyx_v__outs);
20617
20618 /* "rados.pyx":1482
20619 * my_outs = decode_cstr(_outs[:_outs_len])
20620 * my_outbuf = _outbuf[:_outbuf_len]
20621 * if _outs_len: # <<<<<<<<<<<<<<
20622 * rados_buffer_free(_outs)
20623 * if _outbuf_len:
20624 */
20625 }
20626
20627 /* "rados.pyx":1484
20628 * if _outs_len:
20629 * rados_buffer_free(_outs)
20630 * if _outbuf_len: # <<<<<<<<<<<<<<
20631 * rados_buffer_free(_outbuf)
20632 * return (ret, my_outbuf, my_outs)
20633 */
20634 __pyx_t_8 = (__pyx_v__outbuf_len != 0);
20635 if (__pyx_t_8) {
20636
20637 /* "rados.pyx":1485
20638 * rados_buffer_free(_outs)
20639 * if _outbuf_len:
20640 * rados_buffer_free(_outbuf) # <<<<<<<<<<<<<<
20641 * return (ret, my_outbuf, my_outs)
20642 * finally:
20643 */
20644 rados_buffer_free(__pyx_v__outbuf);
20645
20646 /* "rados.pyx":1484
20647 * if _outs_len:
20648 * rados_buffer_free(_outs)
20649 * if _outbuf_len: # <<<<<<<<<<<<<<
20650 * rados_buffer_free(_outbuf)
20651 * return (ret, my_outbuf, my_outs)
20652 */
20653 }
20654
20655 /* "rados.pyx":1486
20656 * if _outbuf_len:
20657 * rados_buffer_free(_outbuf)
20658 * return (ret, my_outbuf, my_outs) # <<<<<<<<<<<<<<
20659 * finally:
20660 * free(_cmd)
20661 */
20662 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
20663 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1486; __pyx_clineno = __LINE__20663; goto __pyx_L4_error;}
20664 __Pyx_GOTREF(__pyx_t_2);
20665 __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1486; __pyx_clineno = __LINE__20665; goto __pyx_L4_error;}
20666 __Pyx_GOTREF(__pyx_t_1);
20667 __Pyx_GIVEREF(__pyx_t_2);
20668 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_2);
20669 __Pyx_INCREF(__pyx_v_my_outbuf)( ((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt++);
20670 __Pyx_GIVEREF(__pyx_v_my_outbuf);
20671 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_my_outbuf)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_v_my_outbuf
)
;
20672 __Pyx_INCREF(__pyx_v_my_outs)( ((PyObject*)(__pyx_v_my_outs))->ob_refcnt++);
20673 __Pyx_GIVEREF(__pyx_v_my_outs);
20674 PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_my_outs)(((PyTupleObject *)(__pyx_t_1))->ob_item[2] = __pyx_v_my_outs
)
;
20675 __pyx_t_2 = 0;
20676 __pyx_r = __pyx_t_1;
20677 __pyx_t_1 = 0;
20678 goto __pyx_L3_return;
20679 }
20680
20681 /* "rados.pyx":1488
20682 * return (ret, my_outbuf, my_outs)
20683 * finally:
20684 * free(_cmd) # <<<<<<<<<<<<<<
20685 *
20686 * def wait_for_latest_osdmap(self):
20687 */
20688 /*finally:*/ {
20689 /*exception exit:*/{
20690 __pyx_L4_error:;
20691 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
20692 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
20693 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
20694 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
20695 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
20696 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
20697 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
20698 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_12, &
__pyx_t_13, &__pyx_t_14) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
20699 __Pyx_XGOTREF(__pyx_t_12);
20700 __Pyx_XGOTREF(__pyx_t_13);
20701 __Pyx_XGOTREF(__pyx_t_14);
20702 __Pyx_XGOTREF(__pyx_t_15);
20703 __Pyx_XGOTREF(__pyx_t_16);
20704 __Pyx_XGOTREF(__pyx_t_17);
20705 __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename;
20706 {
20707 free(__pyx_v__cmd);
20708 }
20709 if (PY_MAJOR_VERSION2 >= 3) {
20710 __Pyx_XGIVEREF(__pyx_t_15);
20711 __Pyx_XGIVEREF(__pyx_t_16);
20712 __Pyx_XGIVEREF(__pyx_t_17);
20713 __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
20714 }
20715 __Pyx_XGIVEREF(__pyx_t_12);
20716 __Pyx_XGIVEREF(__pyx_t_13);
20717 __Pyx_XGIVEREF(__pyx_t_14);
20718 __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
20719 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
20720 __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11;
20721 goto __pyx_L1_error;
20722 }
20723 __pyx_L3_return: {
20724 __pyx_t_17 = __pyx_r;
20725 __pyx_r = 0;
20726 free(__pyx_v__cmd);
20727 __pyx_r = __pyx_t_17;
20728 __pyx_t_17 = 0;
20729 goto __pyx_L0;
20730 }
20731 }
20732
20733 /* "rados.pyx":1445
20734 * free(_cmd)
20735 *
20736 * def pg_command(self, pgid, cmd, inbuf, timeout=0): # <<<<<<<<<<<<<<
20737 * """
20738 * pg_command(pgid, cmd, inbuf, outbuf, outbuflen, outs, outslen)
20739 */
20740
20741 /* function exit code */
20742 __pyx_L1_error:;
20743 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
20744 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
20745 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
20746 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
20747 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
20748 __Pyx_AddTraceback("rados.Rados.pg_command", __pyx_clineno, __pyx_lineno, __pyx_filename);
20749 __pyx_r = NULL((void*)0);
20750 __pyx_L0:;
20751 __Pyx_XDECREF(__pyx_v_my_outs)do { if ((__pyx_v_my_outs) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outs))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_my_outs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outs)))); } while
(0); } while (0)
;
20752 __Pyx_XDECREF(__pyx_v_my_outbuf)do { if ((__pyx_v_my_outbuf) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_my_outbuf))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_my_outbuf)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_my_outbuf
)))); } while (0); } while (0)
;
20753 __Pyx_XDECREF(__pyx_v_pgid)do { if ((__pyx_v_pgid) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_pgid))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_pgid)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_pgid)))); } while (0); } while
(0)
;
20754 __Pyx_XDECREF(__pyx_v_cmd)do { if ((__pyx_v_cmd) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cmd))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_cmd)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cmd)))); } while (0); } while (0)
;
20755 __Pyx_XDECREF(__pyx_v_inbuf)do { if ((__pyx_v_inbuf) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_inbuf))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_inbuf)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_inbuf)))); } while (0); }
while (0)
;
20756 __Pyx_XGIVEREF(__pyx_r);
20757 __Pyx_RefNannyFinishContext();
20758 return __pyx_r;
20759}
20760
20761/* "rados.pyx":1490
20762 * free(_cmd)
20763 *
20764 * def wait_for_latest_osdmap(self): # <<<<<<<<<<<<<<
20765 * self.require_state("connected")
20766 * with nogil:
20767 */
20768
20769/* Python wrapper */
20770static PyObject *__pyx_pw_5rados_5Rados_63wait_for_latest_osdmap(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
20771static char __pyx_doc_5rados_5Rados_62wait_for_latest_osdmap[] = "Rados.wait_for_latest_osdmap(self)";
20772static PyObject *__pyx_pw_5rados_5Rados_63wait_for_latest_osdmap(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
20773 PyObject *__pyx_r = 0;
20774 __Pyx_RefNannyDeclarations
20775 __Pyx_RefNannySetupContext("wait_for_latest_osdmap (wrapper)", 0);
20776 __pyx_r = __pyx_pf_5rados_5Rados_62wait_for_latest_osdmap(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
20777
20778 /* function exit code */
20779 __Pyx_RefNannyFinishContext();
20780 return __pyx_r;
20781}
20782
20783static PyObject *__pyx_pf_5rados_5Rados_62wait_for_latest_osdmap(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
20784 int __pyx_v_ret;
20785 PyObject *__pyx_r = NULL((void*)0);
20786 __Pyx_RefNannyDeclarations
20787 PyObject *__pyx_t_1 = NULL((void*)0);
20788 PyObject *__pyx_t_2 = NULL((void*)0);
20789 int __pyx_lineno = 0;
20790 const char *__pyx_filename = NULL((void*)0);
20791 int __pyx_clineno = 0;
20792 __Pyx_RefNannySetupContext("wait_for_latest_osdmap", 0);
20793
20794 /* "rados.pyx":1491
20795 *
20796 * def wait_for_latest_osdmap(self):
20797 * self.require_state("connected") # <<<<<<<<<<<<<<
20798 * with nogil:
20799 * ret = rados_wait_for_latest_osdmap(self.cluster)
20800 */
20801 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__20801; goto __pyx_L1_error;}
20802 __Pyx_GOTREF(__pyx_t_1);
20803 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__40, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__20803; goto __pyx_L1_error;}
20804 __Pyx_GOTREF(__pyx_t_2);
20805 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20806 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
20807
20808 /* "rados.pyx":1492
20809 * def wait_for_latest_osdmap(self):
20810 * self.require_state("connected")
20811 * with nogil: # <<<<<<<<<<<<<<
20812 * ret = rados_wait_for_latest_osdmap(self.cluster)
20813 * return ret
20814 */
20815 {
20816 #ifdef WITH_THREAD1
20817 PyThreadState *_save;
20818 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
20819 #endif
20820 /*try:*/ {
20821
20822 /* "rados.pyx":1493
20823 * self.require_state("connected")
20824 * with nogil:
20825 * ret = rados_wait_for_latest_osdmap(self.cluster) # <<<<<<<<<<<<<<
20826 * return ret
20827 *
20828 */
20829 __pyx_v_ret = rados_wait_for_latest_osdmap(__pyx_v_self->cluster);
20830 }
20831
20832 /* "rados.pyx":1492
20833 * def wait_for_latest_osdmap(self):
20834 * self.require_state("connected")
20835 * with nogil: # <<<<<<<<<<<<<<
20836 * ret = rados_wait_for_latest_osdmap(self.cluster)
20837 * return ret
20838 */
20839 /*finally:*/ {
20840 /*normal exit:*/{
20841 #ifdef WITH_THREAD1
20842 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
20843 #endif
20844 goto __pyx_L5;
20845 }
20846 __pyx_L5:;
20847 }
20848 }
20849
20850 /* "rados.pyx":1494
20851 * with nogil:
20852 * ret = rados_wait_for_latest_osdmap(self.cluster)
20853 * return ret # <<<<<<<<<<<<<<
20854 *
20855 * def blacklist_add(self, client_address, expire_seconds=0):
20856 */
20857 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
20858 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1494; __pyx_clineno = __LINE__20858; goto __pyx_L1_error;}
20859 __Pyx_GOTREF(__pyx_t_2);
20860 __pyx_r = __pyx_t_2;
20861 __pyx_t_2 = 0;
20862 goto __pyx_L0;
20863
20864 /* "rados.pyx":1490
20865 * free(_cmd)
20866 *
20867 * def wait_for_latest_osdmap(self): # <<<<<<<<<<<<<<
20868 * self.require_state("connected")
20869 * with nogil:
20870 */
20871
20872 /* function exit code */
20873 __pyx_L1_error:;
20874 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
20875 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
20876 __Pyx_AddTraceback("rados.Rados.wait_for_latest_osdmap", __pyx_clineno, __pyx_lineno, __pyx_filename);
20877 __pyx_r = NULL((void*)0);
20878 __pyx_L0:;
20879 __Pyx_XGIVEREF(__pyx_r);
20880 __Pyx_RefNannyFinishContext();
20881 return __pyx_r;
20882}
20883
20884/* "rados.pyx":1496
20885 * return ret
20886 *
20887 * def blacklist_add(self, client_address, expire_seconds=0): # <<<<<<<<<<<<<<
20888 * """
20889 * Blacklist a client from the OSDs
20890 */
20891
20892/* Python wrapper */
20893static PyObject *__pyx_pw_5rados_5Rados_65blacklist_add(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
20894static char __pyx_doc_5rados_5Rados_64blacklist_add[] = "Rados.blacklist_add(self, client_address, expire_seconds=0)\n\n Blacklist a client from the OSDs\n\n :param client_address: client address\n :type client_address: str\n :param expire_seconds: number of seconds to blacklist\n :type expire_seconds: int\n\n :raises: :class:`Error`\n ";
20895static PyObject *__pyx_pw_5rados_5Rados_65blacklist_add(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
20896 PyObject *__pyx_v_client_address = 0;
20897 PyObject *__pyx_v_expire_seconds = 0;
20898 int __pyx_lineno = 0;
20899 const char *__pyx_filename = NULL((void*)0);
20900 int __pyx_clineno = 0;
20901 PyObject *__pyx_r = 0;
20902 __Pyx_RefNannyDeclarations
20903 __Pyx_RefNannySetupContext("blacklist_add (wrapper)", 0);
20904 {
20905 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_client_address,&__pyx_n_s_expire_seconds,0};
20906 PyObject* values[2] = {0,0};
20907 values[1] = ((PyObject *)__pyx_int_0);
20908 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
20909 Py_ssize_t kw_args;
20910 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
20911 switch (pos_args) {
20912 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
20913 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
20914 case 0: break;
20915 default: goto __pyx_L5_argtuple_error;
20916 }
20917 kw_args = PyDict_Size(__pyx_kwds);
20918 switch (pos_args) {
20919 case 0:
20920 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_client_address)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_client_address
)) != 0), 1)
) kw_args--;
20921 else goto __pyx_L5_argtuple_error;
20922 case 1:
20923 if (kw_args > 0) {
20924 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_expire_seconds);
20925 if (value) { values[1] = value; kw_args--; }
20926 }
20927 }
20928 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
20929 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "blacklist_add") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "blacklist_add") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1496; __pyx_clineno = __LINE__20929; goto __pyx_L3_error;}
20930 }
20931 } else {
20932 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
20933 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
20934 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
20935 break;
20936 default: goto __pyx_L5_argtuple_error;
20937 }
20938 }
20939 __pyx_v_client_address = values[0];
20940 __pyx_v_expire_seconds = values[1];
20941 }
20942 goto __pyx_L4_argument_unpacking_done;
20943 __pyx_L5_argtuple_error:;
20944 __Pyx_RaiseArgtupleInvalid("blacklist_add", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1496; __pyx_clineno = __LINE__20944; goto __pyx_L3_error;}
20945 __pyx_L3_error:;
20946 __Pyx_AddTraceback("rados.Rados.blacklist_add", __pyx_clineno, __pyx_lineno, __pyx_filename);
20947 __Pyx_RefNannyFinishContext();
20948 return NULL((void*)0);
20949 __pyx_L4_argument_unpacking_done:;
20950 __pyx_r = __pyx_pf_5rados_5Rados_64blacklist_add(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_client_address, __pyx_v_expire_seconds);
20951
20952 /* function exit code */
20953 __Pyx_RefNannyFinishContext();
20954 return __pyx_r;
20955}
20956
20957static PyObject *__pyx_pf_5rados_5Rados_64blacklist_add(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_client_address, PyObject *__pyx_v_expire_seconds) {
20958 uint32_t __pyx_v__expire_seconds;
20959 char *__pyx_v__client_address;
20960 int __pyx_v_ret;
20961 PyObject *__pyx_r = NULL((void*)0);
20962 __Pyx_RefNannyDeclarations
20963 PyObject *__pyx_t_1 = NULL((void*)0);
20964 PyObject *__pyx_t_2 = NULL((void*)0);
20965 PyObject *__pyx_t_3 = NULL((void*)0);
20966 Py_ssize_t __pyx_t_4;
20967 PyObject *__pyx_t_5 = NULL((void*)0);
20968 uint32_t __pyx_t_6;
20969 char *__pyx_t_7;
20970 int __pyx_t_8;
20971 int __pyx_lineno = 0;
20972 const char *__pyx_filename = NULL((void*)0);
20973 int __pyx_clineno = 0;
20974 __Pyx_RefNannySetupContext("blacklist_add", 0);
20975 __Pyx_INCREF(__pyx_v_client_address)( ((PyObject*)(__pyx_v_client_address))->ob_refcnt++);
20976
20977 /* "rados.pyx":1507
20978 * :raises: :class:`Error`
20979 * """
20980 * self.require_state("connected") # <<<<<<<<<<<<<<
20981 * client_address = cstr(client_address, 'client_address')
20982 * cdef:
20983 */
20984 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__20984; goto __pyx_L1_error;}
20985 __Pyx_GOTREF(__pyx_t_1);
20986 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__41, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__20986; goto __pyx_L1_error;}
20987 __Pyx_GOTREF(__pyx_t_2);
20988 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
20989 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
20990
20991 /* "rados.pyx":1508
20992 * """
20993 * self.require_state("connected")
20994 * client_address = cstr(client_address, 'client_address') # <<<<<<<<<<<<<<
20995 * cdef:
20996 * uint32_t _expire_seconds = expire_seconds
20997 */
20998 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__20998; goto __pyx_L1_error;}
20999 __Pyx_GOTREF(__pyx_t_1);
21000 __pyx_t_3 = NULL((void*)0);
21001 __pyx_t_4 = 0;
21002 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
21003 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
21004 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
21005 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
21006 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
21007 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
21008 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
21009 __pyx_t_4 = 1;
21010 }
21011 }
21012 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__21012; goto __pyx_L1_error;}
21013 __Pyx_GOTREF(__pyx_t_5);
21014 if (__pyx_t_3) {
21015 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
21016 }
21017 __Pyx_INCREF(__pyx_v_client_address)( ((PyObject*)(__pyx_v_client_address))->ob_refcnt++);
21018 __Pyx_GIVEREF(__pyx_v_client_address);
21019 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_client_address)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_client_address
)
;
21020 __Pyx_INCREF(__pyx_n_s_client_address)( ((PyObject*)(__pyx_n_s_client_address))->ob_refcnt++);
21021 __Pyx_GIVEREF(__pyx_n_s_client_address);
21022 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_client_address)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_client_address
)
;
21023 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1508; __pyx_clineno = __LINE__21023; goto __pyx_L1_error;}
21024 __Pyx_GOTREF(__pyx_t_2);
21025 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
21026 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21027 __Pyx_DECREF_SET(__pyx_v_client_address, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_client_address; __pyx_v_client_address
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
21028 __pyx_t_2 = 0;
21029
21030 /* "rados.pyx":1510
21031 * client_address = cstr(client_address, 'client_address')
21032 * cdef:
21033 * uint32_t _expire_seconds = expire_seconds # <<<<<<<<<<<<<<
21034 * char *_client_address = client_address
21035 *
21036 */
21037 __pyx_t_6 = __Pyx_PyInt_As_uint32_t(__pyx_v_expire_seconds); if (unlikely((__pyx_t_6 == (uint32_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_6 == (uint32_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__21037; goto __pyx_L1_error;}
21038 __pyx_v__expire_seconds = __pyx_t_6;
21039
21040 /* "rados.pyx":1511
21041 * cdef:
21042 * uint32_t _expire_seconds = expire_seconds
21043 * char *_client_address = client_address # <<<<<<<<<<<<<<
21044 *
21045 * with nogil:
21046 */
21047 __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_client_address); if (unlikely((!__pyx_t_7) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_7) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1511; __pyx_clineno = __LINE__21047; goto __pyx_L1_error;}
21048 __pyx_v__client_address = __pyx_t_7;
21049
21050 /* "rados.pyx":1513
21051 * char *_client_address = client_address
21052 *
21053 * with nogil: # <<<<<<<<<<<<<<
21054 * ret = rados_blacklist_add(self.cluster, _client_address, _expire_seconds)
21055 * if ret < 0:
21056 */
21057 {
21058 #ifdef WITH_THREAD1
21059 PyThreadState *_save;
21060 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
21061 #endif
21062 /*try:*/ {
21063
21064 /* "rados.pyx":1514
21065 *
21066 * with nogil:
21067 * ret = rados_blacklist_add(self.cluster, _client_address, _expire_seconds) # <<<<<<<<<<<<<<
21068 * if ret < 0:
21069 * raise make_ex(ret, "error blacklisting client '%s'" % client_address)
21070 */
21071 __pyx_v_ret = rados_blacklist_add(__pyx_v_self->cluster, __pyx_v__client_address, __pyx_v__expire_seconds);
21072 }
21073
21074 /* "rados.pyx":1513
21075 * char *_client_address = client_address
21076 *
21077 * with nogil: # <<<<<<<<<<<<<<
21078 * ret = rados_blacklist_add(self.cluster, _client_address, _expire_seconds)
21079 * if ret < 0:
21080 */
21081 /*finally:*/ {
21082 /*normal exit:*/{
21083 #ifdef WITH_THREAD1
21084 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
21085 #endif
21086 goto __pyx_L5;
21087 }
21088 __pyx_L5:;
21089 }
21090 }
21091
21092 /* "rados.pyx":1515
21093 * with nogil:
21094 * ret = rados_blacklist_add(self.cluster, _client_address, _expire_seconds)
21095 * if ret < 0: # <<<<<<<<<<<<<<
21096 * raise make_ex(ret, "error blacklisting client '%s'" % client_address)
21097 *
21098 */
21099 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
21100 if (__pyx_t_8) {
21101
21102 /* "rados.pyx":1516
21103 * ret = rados_blacklist_add(self.cluster, _client_address, _expire_seconds)
21104 * if ret < 0:
21105 * raise make_ex(ret, "error blacklisting client '%s'" % client_address) # <<<<<<<<<<<<<<
21106 *
21107 * def monitor_log(self, level, callback, arg):
21108 */
21109 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1516; __pyx_clineno = __LINE__21109; goto __pyx_L1_error;}
21110 __Pyx_GOTREF(__pyx_t_2);
21111 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_error_blacklisting_client_s, __pyx_v_client_address)PyString_Format(__pyx_kp_s_error_blacklisting_client_s, __pyx_v_client_address
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1516; __pyx_clineno = __LINE__21111; goto __pyx_L1_error;}
21112 __Pyx_GOTREF(__pyx_t_1);
21113 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1516; __pyx_clineno = __LINE__21113; goto __pyx_L1_error;}
21114 __Pyx_GOTREF(__pyx_t_5);
21115 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
21116 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21117 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
21118 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
21119 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1516; __pyx_clineno = __LINE__21119; goto __pyx_L1_error;}
21120
21121 /* "rados.pyx":1515
21122 * with nogil:
21123 * ret = rados_blacklist_add(self.cluster, _client_address, _expire_seconds)
21124 * if ret < 0: # <<<<<<<<<<<<<<
21125 * raise make_ex(ret, "error blacklisting client '%s'" % client_address)
21126 *
21127 */
21128 }
21129
21130 /* "rados.pyx":1496
21131 * return ret
21132 *
21133 * def blacklist_add(self, client_address, expire_seconds=0): # <<<<<<<<<<<<<<
21134 * """
21135 * Blacklist a client from the OSDs
21136 */
21137
21138 /* function exit code */
21139 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
21140 goto __pyx_L0;
21141 __pyx_L1_error:;
21142 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
21143 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
21144 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
21145 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
21146 __Pyx_AddTraceback("rados.Rados.blacklist_add", __pyx_clineno, __pyx_lineno, __pyx_filename);
21147 __pyx_r = NULL((void*)0);
21148 __pyx_L0:;
21149 __Pyx_XDECREF(__pyx_v_client_address)do { if ((__pyx_v_client_address) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_client_address))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_client_address
)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_client_address
)))); } while (0); } while (0)
;
21150 __Pyx_XGIVEREF(__pyx_r);
21151 __Pyx_RefNannyFinishContext();
21152 return __pyx_r;
21153}
21154
21155/* "rados.pyx":1518
21156 * raise make_ex(ret, "error blacklisting client '%s'" % client_address)
21157 *
21158 * def monitor_log(self, level, callback, arg): # <<<<<<<<<<<<<<
21159 * if level not in MONITOR_LEVELS:
21160 * raise LogicError("invalid monitor level " + level)
21161 */
21162
21163/* Python wrapper */
21164static PyObject *__pyx_pw_5rados_5Rados_67monitor_log(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21165static char __pyx_doc_5rados_5Rados_66monitor_log[] = "Rados.monitor_log(self, level, callback, arg)";
21166static PyObject *__pyx_pw_5rados_5Rados_67monitor_log(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21167 PyObject *__pyx_v_level = 0;
21168 PyObject *__pyx_v_callback = 0;
21169 PyObject *__pyx_v_arg = 0;
21170 int __pyx_lineno = 0;
21171 const char *__pyx_filename = NULL((void*)0);
21172 int __pyx_clineno = 0;
21173 PyObject *__pyx_r = 0;
21174 __Pyx_RefNannyDeclarations
21175 __Pyx_RefNannySetupContext("monitor_log (wrapper)", 0);
21176 {
21177 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_callback,&__pyx_n_s_arg,0};
21178 PyObject* values[3] = {0,0,0};
21179 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
21180 Py_ssize_t kw_args;
21181 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
21182 switch (pos_args) {
21183 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
21184 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
21185 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
21186 case 0: break;
21187 default: goto __pyx_L5_argtuple_error;
21188 }
21189 kw_args = PyDict_Size(__pyx_kwds);
21190 switch (pos_args) {
21191 case 0:
21192 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level
)) != 0), 1)
) kw_args--;
21193 else goto __pyx_L5_argtuple_error;
21194 case 1:
21195 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_callback)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_callback
)) != 0), 1)
) kw_args--;
21196 else {
21197 __Pyx_RaiseArgtupleInvalid("monitor_log", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__21197; goto __pyx_L3_error;}
21198 }
21199 case 2:
21200 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg
)) != 0), 1)
) kw_args--;
21201 else {
21202 __Pyx_RaiseArgtupleInvalid("monitor_log", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__21202; goto __pyx_L3_error;}
21203 }
21204 }
21205 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
21206 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "monitor_log") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "monitor_log") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__21206; goto __pyx_L3_error;}
21207 }
21208 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
21209 goto __pyx_L5_argtuple_error;
21210 } else {
21211 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
21212 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
21213 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
21214 }
21215 __pyx_v_level = values[0];
21216 __pyx_v_callback = values[1];
21217 __pyx_v_arg = values[2];
21218 }
21219 goto __pyx_L4_argument_unpacking_done;
21220 __pyx_L5_argtuple_error:;
21221 __Pyx_RaiseArgtupleInvalid("monitor_log", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__21221; goto __pyx_L3_error;}
21222 __pyx_L3_error:;
21223 __Pyx_AddTraceback("rados.Rados.monitor_log", __pyx_clineno, __pyx_lineno, __pyx_filename);
21224 __Pyx_RefNannyFinishContext();
21225 return NULL((void*)0);
21226 __pyx_L4_argument_unpacking_done:;
21227 __pyx_r = __pyx_pf_5rados_5Rados_66monitor_log(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_level, __pyx_v_callback, __pyx_v_arg);
21228
21229 /* function exit code */
21230 __Pyx_RefNannyFinishContext();
21231 return __pyx_r;
21232}
21233
21234static PyObject *__pyx_pf_5rados_5Rados_66monitor_log(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_level, PyObject *__pyx_v_callback, PyObject *__pyx_v_arg) {
21235 char *__pyx_v__level;
21236 int __pyx_v_r;
21237 PyObject *__pyx_v_cb = NULL((void*)0);
21238 PyObject *__pyx_v__arg;
21239 PyObject *__pyx_r = NULL((void*)0);
21240 __Pyx_RefNannyDeclarations
21241 PyObject *__pyx_t_1 = NULL((void*)0);
21242 int __pyx_t_2;
21243 int __pyx_t_3;
21244 PyObject *__pyx_t_4 = NULL((void*)0);
21245 PyObject *__pyx_t_5 = NULL((void*)0);
21246 PyObject *__pyx_t_6 = NULL((void*)0);
21247 PyObject *__pyx_t_7 = NULL((void*)0);
21248 int __pyx_t_8;
21249 Py_ssize_t __pyx_t_9;
21250 char *__pyx_t_10;
21251 int __pyx_lineno = 0;
21252 const char *__pyx_filename = NULL((void*)0);
21253 int __pyx_clineno = 0;
21254 __Pyx_RefNannySetupContext("monitor_log", 0);
21255 __Pyx_INCREF(__pyx_v_level)( ((PyObject*)(__pyx_v_level))->ob_refcnt++);
21256
21257 /* "rados.pyx":1519
21258 *
21259 * def monitor_log(self, level, callback, arg):
21260 * if level not in MONITOR_LEVELS: # <<<<<<<<<<<<<<
21261 * raise LogicError("invalid monitor level " + level)
21262 * if callback is not None and not callable(callback):
21263 */
21264 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_MONITOR_LEVELS); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__21264; goto __pyx_L1_error;}
21265 __Pyx_GOTREF(__pyx_t_1);
21266 __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_level, __pyx_t_1, Py_NE3)); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__21266; goto __pyx_L1_error;}
21267 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21268 __pyx_t_3 = (__pyx_t_2 != 0);
21269 if (__pyx_t_3) {
21270
21271 /* "rados.pyx":1520
21272 * def monitor_log(self, level, callback, arg):
21273 * if level not in MONITOR_LEVELS:
21274 * raise LogicError("invalid monitor level " + level) # <<<<<<<<<<<<<<
21275 * if callback is not None and not callable(callback):
21276 * raise LogicError("callback must be a callable function or None")
21277 */
21278 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__21278; goto __pyx_L1_error;}
21279 __Pyx_GOTREF(__pyx_t_4);
21280 __pyx_t_5 = PyNumber_Add(__pyx_kp_s_invalid_monitor_level, __pyx_v_level); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__21280; goto __pyx_L1_error;}
21281 __Pyx_GOTREF(__pyx_t_5);
21282 __pyx_t_6 = NULL((void*)0);
21283 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
21284 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
21285 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
21286 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
21287 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
21288 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
21289 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
21290 }
21291 }
21292 if (!__pyx_t_6) {
21293 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__21293; goto __pyx_L1_error;}
21294 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
21295 __Pyx_GOTREF(__pyx_t_1);
21296 } else {
21297 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__21297; goto __pyx_L1_error;}
21298 __Pyx_GOTREF(__pyx_t_7);
21299 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
21300 __Pyx_GIVEREF(__pyx_t_5);
21301 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
21302 __pyx_t_5 = 0;
21303 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__21303; goto __pyx_L1_error;}
21304 __Pyx_GOTREF(__pyx_t_1);
21305 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
21306 }
21307 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
21308 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
21309 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21310 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__21310; goto __pyx_L1_error;}
21311
21312 /* "rados.pyx":1519
21313 *
21314 * def monitor_log(self, level, callback, arg):
21315 * if level not in MONITOR_LEVELS: # <<<<<<<<<<<<<<
21316 * raise LogicError("invalid monitor level " + level)
21317 * if callback is not None and not callable(callback):
21318 */
21319 }
21320
21321 /* "rados.pyx":1521
21322 * if level not in MONITOR_LEVELS:
21323 * raise LogicError("invalid monitor level " + level)
21324 * if callback is not None and not callable(callback): # <<<<<<<<<<<<<<
21325 * raise LogicError("callback must be a callable function or None")
21326 *
21327 */
21328 __pyx_t_2 = (__pyx_v_callback != Py_None(&_Py_NoneStruct));
21329 __pyx_t_8 = (__pyx_t_2 != 0);
21330 if (__pyx_t_8) {
21331 } else {
21332 __pyx_t_3 = __pyx_t_8;
21333 goto __pyx_L5_bool_binop_done;
21334 }
21335 __pyx_t_8 = __Pyx_PyCallable_Check(__pyx_v_callback)PyCallable_Check(__pyx_v_callback); if (unlikely(__pyx_t_8 == -1)__builtin_expect(!!(__pyx_t_8 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__21335; goto __pyx_L1_error;}
21336 __pyx_t_2 = ((!(__pyx_t_8 != 0)) != 0);
21337 __pyx_t_3 = __pyx_t_2;
21338 __pyx_L5_bool_binop_done:;
21339 if (__pyx_t_3) {
21340
21341 /* "rados.pyx":1522
21342 * raise LogicError("invalid monitor level " + level)
21343 * if callback is not None and not callable(callback):
21344 * raise LogicError("callback must be a callable function or None") # <<<<<<<<<<<<<<
21345 *
21346 * level = cstr(level, 'level')
21347 */
21348 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__21348; goto __pyx_L1_error;}
21349 __Pyx_GOTREF(__pyx_t_1);
21350 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__42, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__21350; goto __pyx_L1_error;}
21351 __Pyx_GOTREF(__pyx_t_4);
21352 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21353 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
21354 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
21355 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__21355; goto __pyx_L1_error;}
21356
21357 /* "rados.pyx":1521
21358 * if level not in MONITOR_LEVELS:
21359 * raise LogicError("invalid monitor level " + level)
21360 * if callback is not None and not callable(callback): # <<<<<<<<<<<<<<
21361 * raise LogicError("callback must be a callable function or None")
21362 *
21363 */
21364 }
21365
21366 /* "rados.pyx":1524
21367 * raise LogicError("callback must be a callable function or None")
21368 *
21369 * level = cstr(level, 'level') # <<<<<<<<<<<<<<
21370 * cdef char *_level = level
21371 *
21372 */
21373 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__21373; goto __pyx_L1_error;}
21374 __Pyx_GOTREF(__pyx_t_1);
21375 __pyx_t_7 = NULL((void*)0);
21376 __pyx_t_9 = 0;
21377 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
21378 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
21379 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
21380 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
21381 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
21382 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
21383 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
21384 __pyx_t_9 = 1;
21385 }
21386 }
21387 __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__21387; goto __pyx_L1_error;}
21388 __Pyx_GOTREF(__pyx_t_5);
21389 if (__pyx_t_7) {
21390 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
21391 }
21392 __Pyx_INCREF(__pyx_v_level)( ((PyObject*)(__pyx_v_level))->ob_refcnt++);
21393 __Pyx_GIVEREF(__pyx_v_level);
21394 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_v_level)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_9] = __pyx_v_level
)
;
21395 __Pyx_INCREF(__pyx_n_s_level)( ((PyObject*)(__pyx_n_s_level))->ob_refcnt++);
21396 __Pyx_GIVEREF(__pyx_n_s_level);
21397 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_n_s_level)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_9] = __pyx_n_s_level
)
;
21398 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__21398; goto __pyx_L1_error;}
21399 __Pyx_GOTREF(__pyx_t_4);
21400 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
21401 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21402 __Pyx_DECREF_SET(__pyx_v_level, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_v_level; __pyx_v_level
= __pyx_t_4; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
21403 __pyx_t_4 = 0;
21404
21405 /* "rados.pyx":1525
21406 *
21407 * level = cstr(level, 'level')
21408 * cdef char *_level = level # <<<<<<<<<<<<<<
21409 *
21410 * if callback is None:
21411 */
21412 __pyx_t_10 = __Pyx_PyObject_AsString(__pyx_v_level); if (unlikely((!__pyx_t_10) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_10) && PyErr_Occurred()
), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1525; __pyx_clineno = __LINE__21412; goto __pyx_L1_error;}
21413 __pyx_v__level = __pyx_t_10;
21414
21415 /* "rados.pyx":1527
21416 * cdef char *_level = level
21417 *
21418 * if callback is None: # <<<<<<<<<<<<<<
21419 * with nogil:
21420 * r = rados_monitor_log(self.cluster, <const char*>_level, NULL, NULL)
21421 */
21422 __pyx_t_3 = (__pyx_v_callback == Py_None(&_Py_NoneStruct));
21423 __pyx_t_2 = (__pyx_t_3 != 0);
21424 if (__pyx_t_2) {
21425
21426 /* "rados.pyx":1528
21427 *
21428 * if callback is None:
21429 * with nogil: # <<<<<<<<<<<<<<
21430 * r = rados_monitor_log(self.cluster, <const char*>_level, NULL, NULL)
21431 * self.monitor_callback = None
21432 */
21433 {
21434 #ifdef WITH_THREAD1
21435 PyThreadState *_save;
21436 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
21437 #endif
21438 /*try:*/ {
21439
21440 /* "rados.pyx":1529
21441 * if callback is None:
21442 * with nogil:
21443 * r = rados_monitor_log(self.cluster, <const char*>_level, NULL, NULL) # <<<<<<<<<<<<<<
21444 * self.monitor_callback = None
21445 * self.monitor_callback2 = None
21446 */
21447 __pyx_v_r = rados_monitor_log(__pyx_v_self->cluster, ((char const *)__pyx_v__level), NULL((void*)0), NULL((void*)0));
21448 }
21449
21450 /* "rados.pyx":1528
21451 *
21452 * if callback is None:
21453 * with nogil: # <<<<<<<<<<<<<<
21454 * r = rados_monitor_log(self.cluster, <const char*>_level, NULL, NULL)
21455 * self.monitor_callback = None
21456 */
21457 /*finally:*/ {
21458 /*normal exit:*/{
21459 #ifdef WITH_THREAD1
21460 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
21461 #endif
21462 goto __pyx_L10;
21463 }
21464 __pyx_L10:;
21465 }
21466 }
21467
21468 /* "rados.pyx":1530
21469 * with nogil:
21470 * r = rados_monitor_log(self.cluster, <const char*>_level, NULL, NULL)
21471 * self.monitor_callback = None # <<<<<<<<<<<<<<
21472 * self.monitor_callback2 = None
21473 * return
21474 */
21475 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
21476 __Pyx_GIVEREF(Py_None);
21477 __Pyx_GOTREF(__pyx_v_self->monitor_callback);
21478 __Pyx_DECREF(__pyx_v_self->monitor_callback)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback)))); } while
(0)
;
21479 __pyx_v_self->monitor_callback = Py_None(&_Py_NoneStruct);
21480
21481 /* "rados.pyx":1531
21482 * r = rados_monitor_log(self.cluster, <const char*>_level, NULL, NULL)
21483 * self.monitor_callback = None
21484 * self.monitor_callback2 = None # <<<<<<<<<<<<<<
21485 * return
21486 *
21487 */
21488 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
21489 __Pyx_GIVEREF(Py_None);
21490 __Pyx_GOTREF(__pyx_v_self->monitor_callback2);
21491 __Pyx_DECREF(__pyx_v_self->monitor_callback2)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback2))
->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback2)))); } while
(0)
;
21492 __pyx_v_self->monitor_callback2 = Py_None(&_Py_NoneStruct);
21493
21494 /* "rados.pyx":1532
21495 * self.monitor_callback = None
21496 * self.monitor_callback2 = None
21497 * return # <<<<<<<<<<<<<<
21498 *
21499 * cb = (callback, arg)
21500 */
21501 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
21502 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
21503 goto __pyx_L0;
21504
21505 /* "rados.pyx":1527
21506 * cdef char *_level = level
21507 *
21508 * if callback is None: # <<<<<<<<<<<<<<
21509 * with nogil:
21510 * r = rados_monitor_log(self.cluster, <const char*>_level, NULL, NULL)
21511 */
21512 }
21513
21514 /* "rados.pyx":1534
21515 * return
21516 *
21517 * cb = (callback, arg) # <<<<<<<<<<<<<<
21518 * cdef PyObject* _arg = <PyObject*>cb
21519 * with nogil:
21520 */
21521 __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1534; __pyx_clineno = __LINE__21521; goto __pyx_L1_error;}
21522 __Pyx_GOTREF(__pyx_t_4);
21523 __Pyx_INCREF(__pyx_v_callback)( ((PyObject*)(__pyx_v_callback))->ob_refcnt++);
21524 __Pyx_GIVEREF(__pyx_v_callback);
21525 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_callback)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_v_callback
)
;
21526 __Pyx_INCREF(__pyx_v_arg)( ((PyObject*)(__pyx_v_arg))->ob_refcnt++);
21527 __Pyx_GIVEREF(__pyx_v_arg);
21528 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_arg)(((PyTupleObject *)(__pyx_t_4))->ob_item[1] = __pyx_v_arg);
21529 __pyx_v_cb = ((PyObject*)__pyx_t_4);
21530 __pyx_t_4 = 0;
21531
21532 /* "rados.pyx":1535
21533 *
21534 * cb = (callback, arg)
21535 * cdef PyObject* _arg = <PyObject*>cb # <<<<<<<<<<<<<<
21536 * with nogil:
21537 * r = rados_monitor_log(self.cluster, <const char*>_level,
21538 */
21539 __pyx_v__arg = ((PyObject *)__pyx_v_cb);
21540
21541 /* "rados.pyx":1536
21542 * cb = (callback, arg)
21543 * cdef PyObject* _arg = <PyObject*>cb
21544 * with nogil: # <<<<<<<<<<<<<<
21545 * r = rados_monitor_log(self.cluster, <const char*>_level,
21546 * <rados_log_callback_t>&__monitor_callback, _arg)
21547 */
21548 {
21549 #ifdef WITH_THREAD1
21550 PyThreadState *_save;
21551 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
21552 #endif
21553 /*try:*/ {
21554
21555 /* "rados.pyx":1537
21556 * cdef PyObject* _arg = <PyObject*>cb
21557 * with nogil:
21558 * r = rados_monitor_log(self.cluster, <const char*>_level, # <<<<<<<<<<<<<<
21559 * <rados_log_callback_t>&__monitor_callback, _arg)
21560 *
21561 */
21562 __pyx_v_r = rados_monitor_log(__pyx_v_self->cluster, ((char const *)__pyx_v__level), ((rados_log_callback_t)(&__pyx_f_5rados___monitor_callback)), __pyx_v__arg);
21563 }
21564
21565 /* "rados.pyx":1536
21566 * cb = (callback, arg)
21567 * cdef PyObject* _arg = <PyObject*>cb
21568 * with nogil: # <<<<<<<<<<<<<<
21569 * r = rados_monitor_log(self.cluster, <const char*>_level,
21570 * <rados_log_callback_t>&__monitor_callback, _arg)
21571 */
21572 /*finally:*/ {
21573 /*normal exit:*/{
21574 #ifdef WITH_THREAD1
21575 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
21576 #endif
21577 goto __pyx_L13;
21578 }
21579 __pyx_L13:;
21580 }
21581 }
21582
21583 /* "rados.pyx":1540
21584 * <rados_log_callback_t>&__monitor_callback, _arg)
21585 *
21586 * if r: # <<<<<<<<<<<<<<
21587 * raise make_ex(r, 'error calling rados_monitor_log')
21588 * # NOTE(sileht): Prevents the callback method from being garbage collected
21589 */
21590 __pyx_t_2 = (__pyx_v_r != 0);
21591 if (__pyx_t_2) {
21592
21593 /* "rados.pyx":1541
21594 *
21595 * if r:
21596 * raise make_ex(r, 'error calling rados_monitor_log') # <<<<<<<<<<<<<<
21597 * # NOTE(sileht): Prevents the callback method from being garbage collected
21598 * self.monitor_callback = cb
21599 */
21600 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_r); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__21600; goto __pyx_L1_error;}
21601 __Pyx_GOTREF(__pyx_t_4);
21602 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_4, __pyx_kp_s_error_calling_rados_monitor_log); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__21602; goto __pyx_L1_error;}
21603 __Pyx_GOTREF(__pyx_t_1);
21604 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
21605 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
21606 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21607 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__21607; goto __pyx_L1_error;}
21608
21609 /* "rados.pyx":1540
21610 * <rados_log_callback_t>&__monitor_callback, _arg)
21611 *
21612 * if r: # <<<<<<<<<<<<<<
21613 * raise make_ex(r, 'error calling rados_monitor_log')
21614 * # NOTE(sileht): Prevents the callback method from being garbage collected
21615 */
21616 }
21617
21618 /* "rados.pyx":1543
21619 * raise make_ex(r, 'error calling rados_monitor_log')
21620 * # NOTE(sileht): Prevents the callback method from being garbage collected
21621 * self.monitor_callback = cb # <<<<<<<<<<<<<<
21622 * self.monitor_callback2 = None
21623 *
21624 */
21625 __Pyx_INCREF(__pyx_v_cb)( ((PyObject*)(__pyx_v_cb))->ob_refcnt++);
21626 __Pyx_GIVEREF(__pyx_v_cb);
21627 __Pyx_GOTREF(__pyx_v_self->monitor_callback);
21628 __Pyx_DECREF(__pyx_v_self->monitor_callback)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback)))); } while
(0)
;
21629 __pyx_v_self->monitor_callback = __pyx_v_cb;
21630
21631 /* "rados.pyx":1544
21632 * # NOTE(sileht): Prevents the callback method from being garbage collected
21633 * self.monitor_callback = cb
21634 * self.monitor_callback2 = None # <<<<<<<<<<<<<<
21635 *
21636 * def monitor_log2(self, level, callback, arg):
21637 */
21638 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
21639 __Pyx_GIVEREF(Py_None);
21640 __Pyx_GOTREF(__pyx_v_self->monitor_callback2);
21641 __Pyx_DECREF(__pyx_v_self->monitor_callback2)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback2))
->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback2)))); } while
(0)
;
21642 __pyx_v_self->monitor_callback2 = Py_None(&_Py_NoneStruct);
21643
21644 /* "rados.pyx":1518
21645 * raise make_ex(ret, "error blacklisting client '%s'" % client_address)
21646 *
21647 * def monitor_log(self, level, callback, arg): # <<<<<<<<<<<<<<
21648 * if level not in MONITOR_LEVELS:
21649 * raise LogicError("invalid monitor level " + level)
21650 */
21651
21652 /* function exit code */
21653 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
21654 goto __pyx_L0;
21655 __pyx_L1_error:;
21656 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
21657 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
21658 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
21659 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
21660 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
21661 __Pyx_AddTraceback("rados.Rados.monitor_log", __pyx_clineno, __pyx_lineno, __pyx_filename);
21662 __pyx_r = NULL((void*)0);
21663 __pyx_L0:;
21664 __Pyx_XDECREF(__pyx_v_cb)do { if ((__pyx_v_cb) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cb))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_v_cb)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cb)))); } while (0); } while (0)
;
21665 __Pyx_XDECREF(__pyx_v_level)do { if ((__pyx_v_level) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_level))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_level)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_level)))); } while (0); }
while (0)
;
21666 __Pyx_XGIVEREF(__pyx_r);
21667 __Pyx_RefNannyFinishContext();
21668 return __pyx_r;
21669}
21670
21671/* "rados.pyx":1546
21672 * self.monitor_callback2 = None
21673 *
21674 * def monitor_log2(self, level, callback, arg): # <<<<<<<<<<<<<<
21675 * if level not in MONITOR_LEVELS:
21676 * raise LogicError("invalid monitor level " + level)
21677 */
21678
21679/* Python wrapper */
21680static PyObject *__pyx_pw_5rados_5Rados_69monitor_log2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21681static char __pyx_doc_5rados_5Rados_68monitor_log2[] = "Rados.monitor_log2(self, level, callback, arg)";
21682static PyObject *__pyx_pw_5rados_5Rados_69monitor_log2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21683 PyObject *__pyx_v_level = 0;
21684 PyObject *__pyx_v_callback = 0;
21685 PyObject *__pyx_v_arg = 0;
21686 int __pyx_lineno = 0;
21687 const char *__pyx_filename = NULL((void*)0);
21688 int __pyx_clineno = 0;
21689 PyObject *__pyx_r = 0;
21690 __Pyx_RefNannyDeclarations
21691 __Pyx_RefNannySetupContext("monitor_log2 (wrapper)", 0);
21692 {
21693 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_callback,&__pyx_n_s_arg,0};
21694 PyObject* values[3] = {0,0,0};
21695 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
21696 Py_ssize_t kw_args;
21697 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
21698 switch (pos_args) {
21699 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
21700 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
21701 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
21702 case 0: break;
21703 default: goto __pyx_L5_argtuple_error;
21704 }
21705 kw_args = PyDict_Size(__pyx_kwds);
21706 switch (pos_args) {
21707 case 0:
21708 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level
)) != 0), 1)
) kw_args--;
21709 else goto __pyx_L5_argtuple_error;
21710 case 1:
21711 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_callback)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_callback
)) != 0), 1)
) kw_args--;
21712 else {
21713 __Pyx_RaiseArgtupleInvalid("monitor_log2", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__21713; goto __pyx_L3_error;}
21714 }
21715 case 2:
21716 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg
)) != 0), 1)
) kw_args--;
21717 else {
21718 __Pyx_RaiseArgtupleInvalid("monitor_log2", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__21718; goto __pyx_L3_error;}
21719 }
21720 }
21721 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
21722 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "monitor_log2") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "monitor_log2") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__21722; goto __pyx_L3_error;}
21723 }
21724 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
21725 goto __pyx_L5_argtuple_error;
21726 } else {
21727 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
21728 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
21729 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
21730 }
21731 __pyx_v_level = values[0];
21732 __pyx_v_callback = values[1];
21733 __pyx_v_arg = values[2];
21734 }
21735 goto __pyx_L4_argument_unpacking_done;
21736 __pyx_L5_argtuple_error:;
21737 __Pyx_RaiseArgtupleInvalid("monitor_log2", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1546; __pyx_clineno = __LINE__21737; goto __pyx_L3_error;}
21738 __pyx_L3_error:;
21739 __Pyx_AddTraceback("rados.Rados.monitor_log2", __pyx_clineno, __pyx_lineno, __pyx_filename);
21740 __Pyx_RefNannyFinishContext();
21741 return NULL((void*)0);
21742 __pyx_L4_argument_unpacking_done:;
21743 __pyx_r = __pyx_pf_5rados_5Rados_68monitor_log2(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_level, __pyx_v_callback, __pyx_v_arg);
21744
21745 /* function exit code */
21746 __Pyx_RefNannyFinishContext();
21747 return __pyx_r;
21748}
21749
21750static PyObject *__pyx_pf_5rados_5Rados_68monitor_log2(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_level, PyObject *__pyx_v_callback, PyObject *__pyx_v_arg) {
21751 char *__pyx_v__level;
21752 int __pyx_v_r;
21753 PyObject *__pyx_v_cb = NULL((void*)0);
21754 PyObject *__pyx_v__arg;
21755 PyObject *__pyx_r = NULL((void*)0);
21756 __Pyx_RefNannyDeclarations
21757 PyObject *__pyx_t_1 = NULL((void*)0);
21758 int __pyx_t_2;
21759 int __pyx_t_3;
21760 PyObject *__pyx_t_4 = NULL((void*)0);
21761 PyObject *__pyx_t_5 = NULL((void*)0);
21762 PyObject *__pyx_t_6 = NULL((void*)0);
21763 PyObject *__pyx_t_7 = NULL((void*)0);
21764 int __pyx_t_8;
21765 Py_ssize_t __pyx_t_9;
21766 char *__pyx_t_10;
21767 int __pyx_lineno = 0;
21768 const char *__pyx_filename = NULL((void*)0);
21769 int __pyx_clineno = 0;
21770 __Pyx_RefNannySetupContext("monitor_log2", 0);
21771 __Pyx_INCREF(__pyx_v_level)( ((PyObject*)(__pyx_v_level))->ob_refcnt++);
21772
21773 /* "rados.pyx":1547
21774 *
21775 * def monitor_log2(self, level, callback, arg):
21776 * if level not in MONITOR_LEVELS: # <<<<<<<<<<<<<<
21777 * raise LogicError("invalid monitor level " + level)
21778 * if callback is not None and not callable(callback):
21779 */
21780 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_MONITOR_LEVELS); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1547; __pyx_clineno = __LINE__21780; goto __pyx_L1_error;}
21781 __Pyx_GOTREF(__pyx_t_1);
21782 __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_level, __pyx_t_1, Py_NE3)); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1547; __pyx_clineno = __LINE__21782; goto __pyx_L1_error;}
21783 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21784 __pyx_t_3 = (__pyx_t_2 != 0);
21785 if (__pyx_t_3) {
21786
21787 /* "rados.pyx":1548
21788 * def monitor_log2(self, level, callback, arg):
21789 * if level not in MONITOR_LEVELS:
21790 * raise LogicError("invalid monitor level " + level) # <<<<<<<<<<<<<<
21791 * if callback is not None and not callable(callback):
21792 * raise LogicError("callback must be a callable function or None")
21793 */
21794 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__21794; goto __pyx_L1_error;}
21795 __Pyx_GOTREF(__pyx_t_4);
21796 __pyx_t_5 = PyNumber_Add(__pyx_kp_s_invalid_monitor_level, __pyx_v_level); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__21796; goto __pyx_L1_error;}
21797 __Pyx_GOTREF(__pyx_t_5);
21798 __pyx_t_6 = NULL((void*)0);
21799 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
21800 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
21801 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
21802 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
21803 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
21804 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
21805 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
21806 }
21807 }
21808 if (!__pyx_t_6) {
21809 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__21809; goto __pyx_L1_error;}
21810 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
21811 __Pyx_GOTREF(__pyx_t_1);
21812 } else {
21813 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__21813; goto __pyx_L1_error;}
21814 __Pyx_GOTREF(__pyx_t_7);
21815 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
21816 __Pyx_GIVEREF(__pyx_t_5);
21817 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
21818 __pyx_t_5 = 0;
21819 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__21819; goto __pyx_L1_error;}
21820 __Pyx_GOTREF(__pyx_t_1);
21821 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
21822 }
21823 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
21824 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
21825 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21826 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__21826; goto __pyx_L1_error;}
21827
21828 /* "rados.pyx":1547
21829 *
21830 * def monitor_log2(self, level, callback, arg):
21831 * if level not in MONITOR_LEVELS: # <<<<<<<<<<<<<<
21832 * raise LogicError("invalid monitor level " + level)
21833 * if callback is not None and not callable(callback):
21834 */
21835 }
21836
21837 /* "rados.pyx":1549
21838 * if level not in MONITOR_LEVELS:
21839 * raise LogicError("invalid monitor level " + level)
21840 * if callback is not None and not callable(callback): # <<<<<<<<<<<<<<
21841 * raise LogicError("callback must be a callable function or None")
21842 *
21843 */
21844 __pyx_t_2 = (__pyx_v_callback != Py_None(&_Py_NoneStruct));
21845 __pyx_t_8 = (__pyx_t_2 != 0);
21846 if (__pyx_t_8) {
21847 } else {
21848 __pyx_t_3 = __pyx_t_8;
21849 goto __pyx_L5_bool_binop_done;
21850 }
21851 __pyx_t_8 = __Pyx_PyCallable_Check(__pyx_v_callback)PyCallable_Check(__pyx_v_callback); if (unlikely(__pyx_t_8 == -1)__builtin_expect(!!(__pyx_t_8 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__21851; goto __pyx_L1_error;}
21852 __pyx_t_2 = ((!(__pyx_t_8 != 0)) != 0);
21853 __pyx_t_3 = __pyx_t_2;
21854 __pyx_L5_bool_binop_done:;
21855 if (__pyx_t_3) {
21856
21857 /* "rados.pyx":1550
21858 * raise LogicError("invalid monitor level " + level)
21859 * if callback is not None and not callable(callback):
21860 * raise LogicError("callback must be a callable function or None") # <<<<<<<<<<<<<<
21861 *
21862 * level = cstr(level, 'level')
21863 */
21864 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1550; __pyx_clineno = __LINE__21864; goto __pyx_L1_error;}
21865 __Pyx_GOTREF(__pyx_t_1);
21866 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__43, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1550; __pyx_clineno = __LINE__21866; goto __pyx_L1_error;}
21867 __Pyx_GOTREF(__pyx_t_4);
21868 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21869 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
21870 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
21871 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1550; __pyx_clineno = __LINE__21871; goto __pyx_L1_error;}
21872
21873 /* "rados.pyx":1549
21874 * if level not in MONITOR_LEVELS:
21875 * raise LogicError("invalid monitor level " + level)
21876 * if callback is not None and not callable(callback): # <<<<<<<<<<<<<<
21877 * raise LogicError("callback must be a callable function or None")
21878 *
21879 */
21880 }
21881
21882 /* "rados.pyx":1552
21883 * raise LogicError("callback must be a callable function or None")
21884 *
21885 * level = cstr(level, 'level') # <<<<<<<<<<<<<<
21886 * cdef char *_level = level
21887 *
21888 */
21889 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1552; __pyx_clineno = __LINE__21889; goto __pyx_L1_error;}
21890 __Pyx_GOTREF(__pyx_t_1);
21891 __pyx_t_7 = NULL((void*)0);
21892 __pyx_t_9 = 0;
21893 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
21894 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
21895 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
21896 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
21897 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
21898 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
21899 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
21900 __pyx_t_9 = 1;
21901 }
21902 }
21903 __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1552; __pyx_clineno = __LINE__21903; goto __pyx_L1_error;}
21904 __Pyx_GOTREF(__pyx_t_5);
21905 if (__pyx_t_7) {
21906 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
21907 }
21908 __Pyx_INCREF(__pyx_v_level)( ((PyObject*)(__pyx_v_level))->ob_refcnt++);
21909 __Pyx_GIVEREF(__pyx_v_level);
21910 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_v_level)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_9] = __pyx_v_level
)
;
21911 __Pyx_INCREF(__pyx_n_s_level)( ((PyObject*)(__pyx_n_s_level))->ob_refcnt++);
21912 __Pyx_GIVEREF(__pyx_n_s_level);
21913 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_n_s_level)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_9] = __pyx_n_s_level
)
;
21914 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1552; __pyx_clineno = __LINE__21914; goto __pyx_L1_error;}
21915 __Pyx_GOTREF(__pyx_t_4);
21916 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
21917 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
21918 __Pyx_DECREF_SET(__pyx_v_level, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_v_level; __pyx_v_level
= __pyx_t_4; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
21919 __pyx_t_4 = 0;
21920
21921 /* "rados.pyx":1553
21922 *
21923 * level = cstr(level, 'level')
21924 * cdef char *_level = level # <<<<<<<<<<<<<<
21925 *
21926 * if callback is None:
21927 */
21928 __pyx_t_10 = __Pyx_PyObject_AsString(__pyx_v_level); if (unlikely((!__pyx_t_10) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_10) && PyErr_Occurred()
), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__21928; goto __pyx_L1_error;}
21929 __pyx_v__level = __pyx_t_10;
21930
21931 /* "rados.pyx":1555
21932 * cdef char *_level = level
21933 *
21934 * if callback is None: # <<<<<<<<<<<<<<
21935 * with nogil:
21936 * r = rados_monitor_log2(self.cluster, <const char*>_level, NULL, NULL)
21937 */
21938 __pyx_t_3 = (__pyx_v_callback == Py_None(&_Py_NoneStruct));
21939 __pyx_t_2 = (__pyx_t_3 != 0);
21940 if (__pyx_t_2) {
21941
21942 /* "rados.pyx":1556
21943 *
21944 * if callback is None:
21945 * with nogil: # <<<<<<<<<<<<<<
21946 * r = rados_monitor_log2(self.cluster, <const char*>_level, NULL, NULL)
21947 * self.monitor_callback = None
21948 */
21949 {
21950 #ifdef WITH_THREAD1
21951 PyThreadState *_save;
21952 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
21953 #endif
21954 /*try:*/ {
21955
21956 /* "rados.pyx":1557
21957 * if callback is None:
21958 * with nogil:
21959 * r = rados_monitor_log2(self.cluster, <const char*>_level, NULL, NULL) # <<<<<<<<<<<<<<
21960 * self.monitor_callback = None
21961 * self.monitor_callback2 = None
21962 */
21963 __pyx_v_r = rados_monitor_log2(__pyx_v_self->cluster, ((char const *)__pyx_v__level), NULL((void*)0), NULL((void*)0));
21964 }
21965
21966 /* "rados.pyx":1556
21967 *
21968 * if callback is None:
21969 * with nogil: # <<<<<<<<<<<<<<
21970 * r = rados_monitor_log2(self.cluster, <const char*>_level, NULL, NULL)
21971 * self.monitor_callback = None
21972 */
21973 /*finally:*/ {
21974 /*normal exit:*/{
21975 #ifdef WITH_THREAD1
21976 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
21977 #endif
21978 goto __pyx_L10;
21979 }
21980 __pyx_L10:;
21981 }
21982 }
21983
21984 /* "rados.pyx":1558
21985 * with nogil:
21986 * r = rados_monitor_log2(self.cluster, <const char*>_level, NULL, NULL)
21987 * self.monitor_callback = None # <<<<<<<<<<<<<<
21988 * self.monitor_callback2 = None
21989 * return
21990 */
21991 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
21992 __Pyx_GIVEREF(Py_None);
21993 __Pyx_GOTREF(__pyx_v_self->monitor_callback);
21994 __Pyx_DECREF(__pyx_v_self->monitor_callback)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback)))); } while
(0)
;
21995 __pyx_v_self->monitor_callback = Py_None(&_Py_NoneStruct);
21996
21997 /* "rados.pyx":1559
21998 * r = rados_monitor_log2(self.cluster, <const char*>_level, NULL, NULL)
21999 * self.monitor_callback = None
22000 * self.monitor_callback2 = None # <<<<<<<<<<<<<<
22001 * return
22002 *
22003 */
22004 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22005 __Pyx_GIVEREF(Py_None);
22006 __Pyx_GOTREF(__pyx_v_self->monitor_callback2);
22007 __Pyx_DECREF(__pyx_v_self->monitor_callback2)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback2))
->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback2)))); } while
(0)
;
22008 __pyx_v_self->monitor_callback2 = Py_None(&_Py_NoneStruct);
22009
22010 /* "rados.pyx":1560
22011 * self.monitor_callback = None
22012 * self.monitor_callback2 = None
22013 * return # <<<<<<<<<<<<<<
22014 *
22015 * cb = (callback, arg)
22016 */
22017 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
22018 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22019 goto __pyx_L0;
22020
22021 /* "rados.pyx":1555
22022 * cdef char *_level = level
22023 *
22024 * if callback is None: # <<<<<<<<<<<<<<
22025 * with nogil:
22026 * r = rados_monitor_log2(self.cluster, <const char*>_level, NULL, NULL)
22027 */
22028 }
22029
22030 /* "rados.pyx":1562
22031 * return
22032 *
22033 * cb = (callback, arg) # <<<<<<<<<<<<<<
22034 * cdef PyObject* _arg = <PyObject*>cb
22035 * with nogil:
22036 */
22037 __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1562; __pyx_clineno = __LINE__22037; goto __pyx_L1_error;}
22038 __Pyx_GOTREF(__pyx_t_4);
22039 __Pyx_INCREF(__pyx_v_callback)( ((PyObject*)(__pyx_v_callback))->ob_refcnt++);
22040 __Pyx_GIVEREF(__pyx_v_callback);
22041 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_callback)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_v_callback
)
;
22042 __Pyx_INCREF(__pyx_v_arg)( ((PyObject*)(__pyx_v_arg))->ob_refcnt++);
22043 __Pyx_GIVEREF(__pyx_v_arg);
22044 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_arg)(((PyTupleObject *)(__pyx_t_4))->ob_item[1] = __pyx_v_arg);
22045 __pyx_v_cb = ((PyObject*)__pyx_t_4);
22046 __pyx_t_4 = 0;
22047
22048 /* "rados.pyx":1563
22049 *
22050 * cb = (callback, arg)
22051 * cdef PyObject* _arg = <PyObject*>cb # <<<<<<<<<<<<<<
22052 * with nogil:
22053 * r = rados_monitor_log2(self.cluster, <const char*>_level,
22054 */
22055 __pyx_v__arg = ((PyObject *)__pyx_v_cb);
22056
22057 /* "rados.pyx":1564
22058 * cb = (callback, arg)
22059 * cdef PyObject* _arg = <PyObject*>cb
22060 * with nogil: # <<<<<<<<<<<<<<
22061 * r = rados_monitor_log2(self.cluster, <const char*>_level,
22062 * <rados_log_callback2_t>&__monitor_callback2, _arg)
22063 */
22064 {
22065 #ifdef WITH_THREAD1
22066 PyThreadState *_save;
22067 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
22068 #endif
22069 /*try:*/ {
22070
22071 /* "rados.pyx":1565
22072 * cdef PyObject* _arg = <PyObject*>cb
22073 * with nogil:
22074 * r = rados_monitor_log2(self.cluster, <const char*>_level, # <<<<<<<<<<<<<<
22075 * <rados_log_callback2_t>&__monitor_callback2, _arg)
22076 *
22077 */
22078 __pyx_v_r = rados_monitor_log2(__pyx_v_self->cluster, ((char const *)__pyx_v__level), ((rados_log_callback2_t)(&__pyx_f_5rados___monitor_callback2)), __pyx_v__arg);
22079 }
22080
22081 /* "rados.pyx":1564
22082 * cb = (callback, arg)
22083 * cdef PyObject* _arg = <PyObject*>cb
22084 * with nogil: # <<<<<<<<<<<<<<
22085 * r = rados_monitor_log2(self.cluster, <const char*>_level,
22086 * <rados_log_callback2_t>&__monitor_callback2, _arg)
22087 */
22088 /*finally:*/ {
22089 /*normal exit:*/{
22090 #ifdef WITH_THREAD1
22091 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
22092 #endif
22093 goto __pyx_L13;
22094 }
22095 __pyx_L13:;
22096 }
22097 }
22098
22099 /* "rados.pyx":1568
22100 * <rados_log_callback2_t>&__monitor_callback2, _arg)
22101 *
22102 * if r: # <<<<<<<<<<<<<<
22103 * raise make_ex(r, 'error calling rados_monitor_log')
22104 * # NOTE(sileht): Prevents the callback method from being garbage collected
22105 */
22106 __pyx_t_2 = (__pyx_v_r != 0);
22107 if (__pyx_t_2) {
22108
22109 /* "rados.pyx":1569
22110 *
22111 * if r:
22112 * raise make_ex(r, 'error calling rados_monitor_log') # <<<<<<<<<<<<<<
22113 * # NOTE(sileht): Prevents the callback method from being garbage collected
22114 * self.monitor_callback = None
22115 */
22116 __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_r); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1569; __pyx_clineno = __LINE__22116; goto __pyx_L1_error;}
22117 __Pyx_GOTREF(__pyx_t_4);
22118 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_4, __pyx_kp_s_error_calling_rados_monitor_log); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1569; __pyx_clineno = __LINE__22118; goto __pyx_L1_error;}
22119 __Pyx_GOTREF(__pyx_t_1);
22120 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
22121 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
22122 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
22123 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1569; __pyx_clineno = __LINE__22123; goto __pyx_L1_error;}
22124
22125 /* "rados.pyx":1568
22126 * <rados_log_callback2_t>&__monitor_callback2, _arg)
22127 *
22128 * if r: # <<<<<<<<<<<<<<
22129 * raise make_ex(r, 'error calling rados_monitor_log')
22130 * # NOTE(sileht): Prevents the callback method from being garbage collected
22131 */
22132 }
22133
22134 /* "rados.pyx":1571
22135 * raise make_ex(r, 'error calling rados_monitor_log')
22136 * # NOTE(sileht): Prevents the callback method from being garbage collected
22137 * self.monitor_callback = None # <<<<<<<<<<<<<<
22138 * self.monitor_callback2 = cb
22139 *
22140 */
22141 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22142 __Pyx_GIVEREF(Py_None);
22143 __Pyx_GOTREF(__pyx_v_self->monitor_callback);
22144 __Pyx_DECREF(__pyx_v_self->monitor_callback)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback)))); } while
(0)
;
22145 __pyx_v_self->monitor_callback = Py_None(&_Py_NoneStruct);
22146
22147 /* "rados.pyx":1572
22148 * # NOTE(sileht): Prevents the callback method from being garbage collected
22149 * self.monitor_callback = None
22150 * self.monitor_callback2 = cb # <<<<<<<<<<<<<<
22151 *
22152 * @requires(('service', str_type), ('daemon', str_type), ('metadata', dict))
22153 */
22154 __Pyx_INCREF(__pyx_v_cb)( ((PyObject*)(__pyx_v_cb))->ob_refcnt++);
22155 __Pyx_GIVEREF(__pyx_v_cb);
22156 __Pyx_GOTREF(__pyx_v_self->monitor_callback2);
22157 __Pyx_DECREF(__pyx_v_self->monitor_callback2)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback2))
->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback2)))); } while
(0)
;
22158 __pyx_v_self->monitor_callback2 = __pyx_v_cb;
22159
22160 /* "rados.pyx":1546
22161 * self.monitor_callback2 = None
22162 *
22163 * def monitor_log2(self, level, callback, arg): # <<<<<<<<<<<<<<
22164 * if level not in MONITOR_LEVELS:
22165 * raise LogicError("invalid monitor level " + level)
22166 */
22167
22168 /* function exit code */
22169 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22170 goto __pyx_L0;
22171 __pyx_L1_error:;
22172 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
22173 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
22174 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
22175 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
22176 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
22177 __Pyx_AddTraceback("rados.Rados.monitor_log2", __pyx_clineno, __pyx_lineno, __pyx_filename);
22178 __pyx_r = NULL((void*)0);
22179 __pyx_L0:;
22180 __Pyx_XDECREF(__pyx_v_cb)do { if ((__pyx_v_cb) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cb))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_v_cb)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cb)))); } while (0); } while (0)
;
22181 __Pyx_XDECREF(__pyx_v_level)do { if ((__pyx_v_level) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_level))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_level)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_level)))); } while (0); }
while (0)
;
22182 __Pyx_XGIVEREF(__pyx_r);
22183 __Pyx_RefNannyFinishContext();
22184 return __pyx_r;
22185}
22186
22187/* "rados.pyx":1575
22188 *
22189 * @requires(('service', str_type), ('daemon', str_type), ('metadata', dict))
22190 * def service_daemon_register(self, service, daemon, metadata): # <<<<<<<<<<<<<<
22191 * """
22192 * :param str service: service name (e.g. "rgw")
22193 */
22194
22195/* Python wrapper */
22196static PyObject *__pyx_pw_5rados_5Rados_71service_daemon_register(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
22197static char __pyx_doc_5rados_5Rados_70service_daemon_register[] = "Rados.service_daemon_register(self, service, daemon, metadata)\n\n :param str service: service name (e.g. \"rgw\")\n :param str daemon: daemon name (e.g. \"gwfoo\")\n :param dict metadata: static metadata about the register daemon\n (e.g., the version of Ceph, the kernel version.)\n ";
22198static PyObject *__pyx_pw_5rados_5Rados_71service_daemon_register(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
22199 PyObject *__pyx_v_service = 0;
22200 PyObject *__pyx_v_daemon = 0;
22201 PyObject *__pyx_v_metadata = 0;
22202 int __pyx_lineno = 0;
22203 const char *__pyx_filename = NULL((void*)0);
22204 int __pyx_clineno = 0;
22205 PyObject *__pyx_r = 0;
22206 __Pyx_RefNannyDeclarations
22207 __Pyx_RefNannySetupContext("service_daemon_register (wrapper)", 0);
22208 {
22209 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_service,&__pyx_n_s_daemon,&__pyx_n_s_metadata,0};
22210 PyObject* values[3] = {0,0,0};
22211 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
22212 Py_ssize_t kw_args;
22213 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
22214 switch (pos_args) {
22215 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
22216 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
22217 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
22218 case 0: break;
22219 default: goto __pyx_L5_argtuple_error;
22220 }
22221 kw_args = PyDict_Size(__pyx_kwds);
22222 switch (pos_args) {
22223 case 0:
22224 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_service)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_service
)) != 0), 1)
) kw_args--;
22225 else goto __pyx_L5_argtuple_error;
22226 case 1:
22227 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_daemon)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_daemon
)) != 0), 1)
) kw_args--;
22228 else {
22229 __Pyx_RaiseArgtupleInvalid("service_daemon_register", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__22229; goto __pyx_L3_error;}
22230 }
22231 case 2:
22232 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_metadata)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_metadata
)) != 0), 1)
) kw_args--;
22233 else {
22234 __Pyx_RaiseArgtupleInvalid("service_daemon_register", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__22234; goto __pyx_L3_error;}
22235 }
22236 }
22237 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
22238 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "service_daemon_register") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "service_daemon_register") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__22238; goto __pyx_L3_error;}
22239 }
22240 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
22241 goto __pyx_L5_argtuple_error;
22242 } else {
22243 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
22244 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
22245 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
22246 }
22247 __pyx_v_service = values[0];
22248 __pyx_v_daemon = values[1];
22249 __pyx_v_metadata = values[2];
22250 }
22251 goto __pyx_L4_argument_unpacking_done;
22252 __pyx_L5_argtuple_error:;
22253 __Pyx_RaiseArgtupleInvalid("service_daemon_register", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__22253; goto __pyx_L3_error;}
22254 __pyx_L3_error:;
22255 __Pyx_AddTraceback("rados.Rados.service_daemon_register", __pyx_clineno, __pyx_lineno, __pyx_filename);
22256 __Pyx_RefNannyFinishContext();
22257 return NULL((void*)0);
22258 __pyx_L4_argument_unpacking_done:;
22259 __pyx_r = __pyx_pf_5rados_5Rados_70service_daemon_register(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), __pyx_v_service, __pyx_v_daemon, __pyx_v_metadata);
22260
22261 /* function exit code */
22262 __Pyx_RefNannyFinishContext();
22263 return __pyx_r;
22264}
22265
22266static PyObject *__pyx_pf_5rados_5Rados_70service_daemon_register(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_service, PyObject *__pyx_v_daemon, PyObject *__pyx_v_metadata) {
22267 PyObject *__pyx_v_metadata_dict = NULL((void*)0);
22268 char *__pyx_v__service;
22269 char *__pyx_v__daemon;
22270 char *__pyx_v__metadata;
22271 int __pyx_v_ret;
22272 PyObject *__pyx_r = NULL((void*)0);
22273 __Pyx_RefNannyDeclarations
22274 PyObject *__pyx_t_1 = NULL((void*)0);
22275 PyObject *__pyx_t_2 = NULL((void*)0);
22276 PyObject *__pyx_t_3 = NULL((void*)0);
22277 Py_ssize_t __pyx_t_4;
22278 PyObject *__pyx_t_5 = NULL((void*)0);
22279 char *__pyx_t_6;
22280 int __pyx_t_7;
22281 int __pyx_lineno = 0;
22282 const char *__pyx_filename = NULL((void*)0);
22283 int __pyx_clineno = 0;
22284 __Pyx_RefNannySetupContext("service_daemon_register", 0);
22285 __Pyx_INCREF(__pyx_v_service)( ((PyObject*)(__pyx_v_service))->ob_refcnt++);
22286 __Pyx_INCREF(__pyx_v_daemon)( ((PyObject*)(__pyx_v_daemon))->ob_refcnt++);
22287
22288 /* "rados.pyx":1582
22289 * (e.g., the version of Ceph, the kernel version.)
22290 * """
22291 * service = cstr(service, 'service') # <<<<<<<<<<<<<<
22292 * daemon = cstr(daemon, 'daemon')
22293 * metadata_dict = flatten_dict(metadata, 'metadata')
22294 */
22295 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1582; __pyx_clineno = __LINE__22295; goto __pyx_L1_error;}
22296 __Pyx_GOTREF(__pyx_t_2);
22297 __pyx_t_3 = NULL((void*)0);
22298 __pyx_t_4 = 0;
22299 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
22300 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
22301 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
22302 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
22303 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
22304 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
22305 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
22306 __pyx_t_4 = 1;
22307 }
22308 }
22309 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1582; __pyx_clineno = __LINE__22309; goto __pyx_L1_error;}
22310 __Pyx_GOTREF(__pyx_t_5);
22311 if (__pyx_t_3) {
22312 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
22313 }
22314 __Pyx_INCREF(__pyx_v_service)( ((PyObject*)(__pyx_v_service))->ob_refcnt++);
22315 __Pyx_GIVEREF(__pyx_v_service);
22316 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_service)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_service
)
;
22317 __Pyx_INCREF(__pyx_n_s_service)( ((PyObject*)(__pyx_n_s_service))->ob_refcnt++);
22318 __Pyx_GIVEREF(__pyx_n_s_service);
22319 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_service)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_service
)
;
22320 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1582; __pyx_clineno = __LINE__22320; goto __pyx_L1_error;}
22321 __Pyx_GOTREF(__pyx_t_1);
22322 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
22323 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
22324 __Pyx_DECREF_SET(__pyx_v_service, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_service; __pyx_v_service
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
22325 __pyx_t_1 = 0;
22326
22327 /* "rados.pyx":1583
22328 * """
22329 * service = cstr(service, 'service')
22330 * daemon = cstr(daemon, 'daemon') # <<<<<<<<<<<<<<
22331 * metadata_dict = flatten_dict(metadata, 'metadata')
22332 * cdef:
22333 */
22334 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__22334; goto __pyx_L1_error;}
22335 __Pyx_GOTREF(__pyx_t_2);
22336 __pyx_t_5 = NULL((void*)0);
22337 __pyx_t_4 = 0;
22338 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
22339 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
22340 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
22341 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
22342 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
22343 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
22344 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
22345 __pyx_t_4 = 1;
22346 }
22347 }
22348 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__22348; goto __pyx_L1_error;}
22349 __Pyx_GOTREF(__pyx_t_3);
22350 if (__pyx_t_5) {
22351 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
22352 }
22353 __Pyx_INCREF(__pyx_v_daemon)( ((PyObject*)(__pyx_v_daemon))->ob_refcnt++);
22354 __Pyx_GIVEREF(__pyx_v_daemon);
22355 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_daemon)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_daemon
)
;
22356 __Pyx_INCREF(__pyx_n_s_daemon)( ((PyObject*)(__pyx_n_s_daemon))->ob_refcnt++);
22357 __Pyx_GIVEREF(__pyx_n_s_daemon);
22358 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_daemon)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_daemon
)
;
22359 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__22359; goto __pyx_L1_error;}
22360 __Pyx_GOTREF(__pyx_t_1);
22361 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
22362 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
22363 __Pyx_DECREF_SET(__pyx_v_daemon, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_daemon; __pyx_v_daemon
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
22364 __pyx_t_1 = 0;
22365
22366 /* "rados.pyx":1584
22367 * service = cstr(service, 'service')
22368 * daemon = cstr(daemon, 'daemon')
22369 * metadata_dict = flatten_dict(metadata, 'metadata') # <<<<<<<<<<<<<<
22370 * cdef:
22371 * char *_service = service
22372 */
22373 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_flatten_dict); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__22373; goto __pyx_L1_error;}
22374 __Pyx_GOTREF(__pyx_t_2);
22375 __pyx_t_3 = NULL((void*)0);
22376 __pyx_t_4 = 0;
22377 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
22378 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
22379 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
22380 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
22381 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
22382 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
22383 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
22384 __pyx_t_4 = 1;
22385 }
22386 }
22387 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__22387; goto __pyx_L1_error;}
22388 __Pyx_GOTREF(__pyx_t_5);
22389 if (__pyx_t_3) {
22390 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
22391 }
22392 __Pyx_INCREF(__pyx_v_metadata)( ((PyObject*)(__pyx_v_metadata))->ob_refcnt++);
22393 __Pyx_GIVEREF(__pyx_v_metadata);
22394 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_metadata)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_metadata
)
;
22395 __Pyx_INCREF(__pyx_n_s_metadata)( ((PyObject*)(__pyx_n_s_metadata))->ob_refcnt++);
22396 __Pyx_GIVEREF(__pyx_n_s_metadata);
22397 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_metadata)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_metadata
)
;
22398 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__22398; goto __pyx_L1_error;}
22399 __Pyx_GOTREF(__pyx_t_1);
22400 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
22401 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
22402 __pyx_v_metadata_dict = __pyx_t_1;
22403 __pyx_t_1 = 0;
22404
22405 /* "rados.pyx":1586
22406 * metadata_dict = flatten_dict(metadata, 'metadata')
22407 * cdef:
22408 * char *_service = service # <<<<<<<<<<<<<<
22409 * char *_daemon = daemon
22410 * char *_metadata = metadata_dict
22411 */
22412 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_service); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__22412; goto __pyx_L1_error;}
22413 __pyx_v__service = __pyx_t_6;
22414
22415 /* "rados.pyx":1587
22416 * cdef:
22417 * char *_service = service
22418 * char *_daemon = daemon # <<<<<<<<<<<<<<
22419 * char *_metadata = metadata_dict
22420 *
22421 */
22422 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_daemon); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__22422; goto __pyx_L1_error;}
22423 __pyx_v__daemon = __pyx_t_6;
22424
22425 /* "rados.pyx":1588
22426 * char *_service = service
22427 * char *_daemon = daemon
22428 * char *_metadata = metadata_dict # <<<<<<<<<<<<<<
22429 *
22430 * with nogil:
22431 */
22432 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_metadata_dict); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__22432; goto __pyx_L1_error;}
22433 __pyx_v__metadata = __pyx_t_6;
22434
22435 /* "rados.pyx":1590
22436 * char *_metadata = metadata_dict
22437 *
22438 * with nogil: # <<<<<<<<<<<<<<
22439 * ret = rados_service_register(self.cluster, _service, _daemon, _metadata)
22440 * if ret != 0:
22441 */
22442 {
22443 #ifdef WITH_THREAD1
22444 PyThreadState *_save;
22445 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
22446 #endif
22447 /*try:*/ {
22448
22449 /* "rados.pyx":1591
22450 *
22451 * with nogil:
22452 * ret = rados_service_register(self.cluster, _service, _daemon, _metadata) # <<<<<<<<<<<<<<
22453 * if ret != 0:
22454 * raise make_ex(ret, "error calling service_register()")
22455 */
22456 __pyx_v_ret = rados_service_register(__pyx_v_self->cluster, __pyx_v__service, __pyx_v__daemon, __pyx_v__metadata);
22457 }
22458
22459 /* "rados.pyx":1590
22460 * char *_metadata = metadata_dict
22461 *
22462 * with nogil: # <<<<<<<<<<<<<<
22463 * ret = rados_service_register(self.cluster, _service, _daemon, _metadata)
22464 * if ret != 0:
22465 */
22466 /*finally:*/ {
22467 /*normal exit:*/{
22468 #ifdef WITH_THREAD1
22469 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
22470 #endif
22471 goto __pyx_L5;
22472 }
22473 __pyx_L5:;
22474 }
22475 }
22476
22477 /* "rados.pyx":1592
22478 * with nogil:
22479 * ret = rados_service_register(self.cluster, _service, _daemon, _metadata)
22480 * if ret != 0: # <<<<<<<<<<<<<<
22481 * raise make_ex(ret, "error calling service_register()")
22482 *
22483 */
22484 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
22485 if (__pyx_t_7) {
22486
22487 /* "rados.pyx":1593
22488 * ret = rados_service_register(self.cluster, _service, _daemon, _metadata)
22489 * if ret != 0:
22490 * raise make_ex(ret, "error calling service_register()") # <<<<<<<<<<<<<<
22491 *
22492 * @requires(('metadata', dict))
22493 */
22494 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__22494; goto __pyx_L1_error;}
22495 __Pyx_GOTREF(__pyx_t_1);
22496 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_error_calling_service_register); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__22496; goto __pyx_L1_error;}
22497 __Pyx_GOTREF(__pyx_t_2);
22498 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
22499 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
22500 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
22501 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__22501; goto __pyx_L1_error;}
22502
22503 /* "rados.pyx":1592
22504 * with nogil:
22505 * ret = rados_service_register(self.cluster, _service, _daemon, _metadata)
22506 * if ret != 0: # <<<<<<<<<<<<<<
22507 * raise make_ex(ret, "error calling service_register()")
22508 *
22509 */
22510 }
22511
22512 /* "rados.pyx":1575
22513 *
22514 * @requires(('service', str_type), ('daemon', str_type), ('metadata', dict))
22515 * def service_daemon_register(self, service, daemon, metadata): # <<<<<<<<<<<<<<
22516 * """
22517 * :param str service: service name (e.g. "rgw")
22518 */
22519
22520 /* function exit code */
22521 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22522 goto __pyx_L0;
22523 __pyx_L1_error:;
22524 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
22525 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
22526 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
22527 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
22528 __Pyx_AddTraceback("rados.Rados.service_daemon_register", __pyx_clineno, __pyx_lineno, __pyx_filename);
22529 __pyx_r = NULL((void*)0);
22530 __pyx_L0:;
22531 __Pyx_XDECREF(__pyx_v_metadata_dict)do { if ((__pyx_v_metadata_dict) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_metadata_dict))->ob_refcnt != 0)
; else ( (*(((PyObject*)((PyObject *)(__pyx_v_metadata_dict)
))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_metadata_dict
)))); } while (0); } while (0)
;
22532 __Pyx_XDECREF(__pyx_v_service)do { if ((__pyx_v_service) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_service))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_service)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_service)))); } while
(0); } while (0)
;
22533 __Pyx_XDECREF(__pyx_v_daemon)do { if ((__pyx_v_daemon) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_daemon))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_daemon)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_daemon)))); } while
(0); } while (0)
;
22534 __Pyx_XGIVEREF(__pyx_r);
22535 __Pyx_RefNannyFinishContext();
22536 return __pyx_r;
22537}
22538
22539/* "rados.pyx":1596
22540 *
22541 * @requires(('metadata', dict))
22542 * def service_daemon_update(self, status): # <<<<<<<<<<<<<<
22543 * status_dict = flatten_dict(status, 'status')
22544 * cdef:
22545 */
22546
22547/* Python wrapper */
22548static PyObject *__pyx_pw_5rados_5Rados_73service_daemon_update(PyObject *__pyx_v_self, PyObject *__pyx_v_status); /*proto*/
22549static char __pyx_doc_5rados_5Rados_72service_daemon_update[] = "Rados.service_daemon_update(self, status)";
22550static PyObject *__pyx_pw_5rados_5Rados_73service_daemon_update(PyObject *__pyx_v_self, PyObject *__pyx_v_status) {
22551 PyObject *__pyx_r = 0;
22552 __Pyx_RefNannyDeclarations
22553 __Pyx_RefNannySetupContext("service_daemon_update (wrapper)", 0);
22554 __pyx_r = __pyx_pf_5rados_5Rados_72service_daemon_update(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_status));
22555
22556 /* function exit code */
22557 __Pyx_RefNannyFinishContext();
22558 return __pyx_r;
22559}
22560
22561static PyObject *__pyx_pf_5rados_5Rados_72service_daemon_update(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_status) {
22562 PyObject *__pyx_v_status_dict = NULL((void*)0);
22563 char *__pyx_v__status;
22564 int __pyx_v_ret;
22565 PyObject *__pyx_r = NULL((void*)0);
22566 __Pyx_RefNannyDeclarations
22567 PyObject *__pyx_t_1 = NULL((void*)0);
22568 PyObject *__pyx_t_2 = NULL((void*)0);
22569 PyObject *__pyx_t_3 = NULL((void*)0);
22570 Py_ssize_t __pyx_t_4;
22571 PyObject *__pyx_t_5 = NULL((void*)0);
22572 char *__pyx_t_6;
22573 int __pyx_t_7;
22574 int __pyx_lineno = 0;
22575 const char *__pyx_filename = NULL((void*)0);
22576 int __pyx_clineno = 0;
22577 __Pyx_RefNannySetupContext("service_daemon_update", 0);
22578
22579 /* "rados.pyx":1597
22580 * @requires(('metadata', dict))
22581 * def service_daemon_update(self, status):
22582 * status_dict = flatten_dict(status, 'status') # <<<<<<<<<<<<<<
22583 * cdef:
22584 * char *_status = status_dict
22585 */
22586 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_flatten_dict); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1597; __pyx_clineno = __LINE__22586; goto __pyx_L1_error;}
22587 __Pyx_GOTREF(__pyx_t_2);
22588 __pyx_t_3 = NULL((void*)0);
22589 __pyx_t_4 = 0;
22590 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
22591 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
22592 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
22593 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
22594 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
22595 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
22596 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
22597 __pyx_t_4 = 1;
22598 }
22599 }
22600 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1597; __pyx_clineno = __LINE__22600; goto __pyx_L1_error;}
22601 __Pyx_GOTREF(__pyx_t_5);
22602 if (__pyx_t_3) {
22603 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
22604 }
22605 __Pyx_INCREF(__pyx_v_status)( ((PyObject*)(__pyx_v_status))->ob_refcnt++);
22606 __Pyx_GIVEREF(__pyx_v_status);
22607 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_status)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_status
)
;
22608 __Pyx_INCREF(__pyx_n_s_status)( ((PyObject*)(__pyx_n_s_status))->ob_refcnt++);
22609 __Pyx_GIVEREF(__pyx_n_s_status);
22610 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_status)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_status
)
;
22611 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1597; __pyx_clineno = __LINE__22611; goto __pyx_L1_error;}
22612 __Pyx_GOTREF(__pyx_t_1);
22613 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
22614 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
22615 __pyx_v_status_dict = __pyx_t_1;
22616 __pyx_t_1 = 0;
22617
22618 /* "rados.pyx":1599
22619 * status_dict = flatten_dict(status, 'status')
22620 * cdef:
22621 * char *_status = status_dict # <<<<<<<<<<<<<<
22622 *
22623 * with nogil:
22624 */
22625 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_status_dict); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1599; __pyx_clineno = __LINE__22625; goto __pyx_L1_error;}
22626 __pyx_v__status = __pyx_t_6;
22627
22628 /* "rados.pyx":1601
22629 * char *_status = status_dict
22630 *
22631 * with nogil: # <<<<<<<<<<<<<<
22632 * ret = rados_service_update_status(self.cluster, _status)
22633 * if ret != 0:
22634 */
22635 {
22636 #ifdef WITH_THREAD1
22637 PyThreadState *_save;
22638 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
22639 #endif
22640 /*try:*/ {
22641
22642 /* "rados.pyx":1602
22643 *
22644 * with nogil:
22645 * ret = rados_service_update_status(self.cluster, _status) # <<<<<<<<<<<<<<
22646 * if ret != 0:
22647 * raise make_ex(ret, "error calling service_daemon_update()")
22648 */
22649 __pyx_v_ret = rados_service_update_status(__pyx_v_self->cluster, __pyx_v__status);
22650 }
22651
22652 /* "rados.pyx":1601
22653 * char *_status = status_dict
22654 *
22655 * with nogil: # <<<<<<<<<<<<<<
22656 * ret = rados_service_update_status(self.cluster, _status)
22657 * if ret != 0:
22658 */
22659 /*finally:*/ {
22660 /*normal exit:*/{
22661 #ifdef WITH_THREAD1
22662 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
22663 #endif
22664 goto __pyx_L5;
22665 }
22666 __pyx_L5:;
22667 }
22668 }
22669
22670 /* "rados.pyx":1603
22671 * with nogil:
22672 * ret = rados_service_update_status(self.cluster, _status)
22673 * if ret != 0: # <<<<<<<<<<<<<<
22674 * raise make_ex(ret, "error calling service_daemon_update()")
22675 *
22676 */
22677 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
22678 if (__pyx_t_7) {
22679
22680 /* "rados.pyx":1604
22681 * ret = rados_service_update_status(self.cluster, _status)
22682 * if ret != 0:
22683 * raise make_ex(ret, "error calling service_daemon_update()") # <<<<<<<<<<<<<<
22684 *
22685 *
22686 */
22687 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1604; __pyx_clineno = __LINE__22687; goto __pyx_L1_error;}
22688 __Pyx_GOTREF(__pyx_t_1);
22689 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_error_calling_service_daemon_upd); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1604; __pyx_clineno = __LINE__22689; goto __pyx_L1_error;}
22690 __Pyx_GOTREF(__pyx_t_2);
22691 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
22692 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
22693 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
22694 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1604; __pyx_clineno = __LINE__22694; goto __pyx_L1_error;}
22695
22696 /* "rados.pyx":1603
22697 * with nogil:
22698 * ret = rados_service_update_status(self.cluster, _status)
22699 * if ret != 0: # <<<<<<<<<<<<<<
22700 * raise make_ex(ret, "error calling service_daemon_update()")
22701 *
22702 */
22703 }
22704
22705 /* "rados.pyx":1596
22706 *
22707 * @requires(('metadata', dict))
22708 * def service_daemon_update(self, status): # <<<<<<<<<<<<<<
22709 * status_dict = flatten_dict(status, 'status')
22710 * cdef:
22711 */
22712
22713 /* function exit code */
22714 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22715 goto __pyx_L0;
22716 __pyx_L1_error:;
22717 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
22718 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
22719 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
22720 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
22721 __Pyx_AddTraceback("rados.Rados.service_daemon_update", __pyx_clineno, __pyx_lineno, __pyx_filename);
22722 __pyx_r = NULL((void*)0);
22723 __pyx_L0:;
22724 __Pyx_XDECREF(__pyx_v_status_dict)do { if ((__pyx_v_status_dict) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_status_dict))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_status_dict)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_status_dict
)))); } while (0); } while (0)
;
22725 __Pyx_XGIVEREF(__pyx_r);
22726 __Pyx_RefNannyFinishContext();
22727 return __pyx_r;
22728}
22729
22730/* "rados.pxd":17
22731 * cdef:
22732 * rados_t cluster
22733 * public object state # <<<<<<<<<<<<<<
22734 * public object monitor_callback
22735 * public object monitor_callback2
22736 */
22737
22738/* Python wrapper */
22739static PyObject *__pyx_pw_5rados_5Rados_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
22740static PyObject *__pyx_pw_5rados_5Rados_5state_1__get__(PyObject *__pyx_v_self) {
22741 PyObject *__pyx_r = 0;
22742 __Pyx_RefNannyDeclarations
22743 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
22744 __pyx_r = __pyx_pf_5rados_5Rados_5state___get__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
22745
22746 /* function exit code */
22747 __Pyx_RefNannyFinishContext();
22748 return __pyx_r;
22749}
22750
22751static PyObject *__pyx_pf_5rados_5Rados_5state___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
22752 PyObject *__pyx_r = NULL((void*)0);
22753 __Pyx_RefNannyDeclarations
22754 __Pyx_RefNannySetupContext("__get__", 0);
22755 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
22756 __Pyx_INCREF(__pyx_v_self->state)( ((PyObject*)(__pyx_v_self->state))->ob_refcnt++);
22757 __pyx_r = __pyx_v_self->state;
22758 goto __pyx_L0;
22759
22760 /* function exit code */
22761 __pyx_L0:;
22762 __Pyx_XGIVEREF(__pyx_r);
22763 __Pyx_RefNannyFinishContext();
22764 return __pyx_r;
22765}
22766
22767/* Python wrapper */
22768static int __pyx_pw_5rados_5Rados_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
22769static int __pyx_pw_5rados_5Rados_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
22770 int __pyx_r;
22771 __Pyx_RefNannyDeclarations
22772 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
22773 __pyx_r = __pyx_pf_5rados_5Rados_5state_2__set__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_value));
22774
22775 /* function exit code */
22776 __Pyx_RefNannyFinishContext();
22777 return __pyx_r;
22778}
22779
22780static int __pyx_pf_5rados_5Rados_5state_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value) {
22781 int __pyx_r;
22782 __Pyx_RefNannyDeclarations
22783 __Pyx_RefNannySetupContext("__set__", 0);
22784 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
22785 __Pyx_GIVEREF(__pyx_v_value);
22786 __Pyx_GOTREF(__pyx_v_self->state);
22787 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
22788 __pyx_v_self->state = __pyx_v_value;
22789
22790 /* function exit code */
22791 __pyx_r = 0;
22792 __Pyx_RefNannyFinishContext();
22793 return __pyx_r;
22794}
22795
22796/* Python wrapper */
22797static int __pyx_pw_5rados_5Rados_5state_5__del__(PyObject *__pyx_v_self); /*proto*/
22798static int __pyx_pw_5rados_5Rados_5state_5__del__(PyObject *__pyx_v_self) {
22799 int __pyx_r;
22800 __Pyx_RefNannyDeclarations
22801 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
22802 __pyx_r = __pyx_pf_5rados_5Rados_5state_4__del__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
22803
22804 /* function exit code */
22805 __Pyx_RefNannyFinishContext();
22806 return __pyx_r;
22807}
22808
22809static int __pyx_pf_5rados_5Rados_5state_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
22810 int __pyx_r;
22811 __Pyx_RefNannyDeclarations
22812 __Pyx_RefNannySetupContext("__del__", 0);
22813 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22814 __Pyx_GIVEREF(Py_None);
22815 __Pyx_GOTREF(__pyx_v_self->state);
22816 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
22817 __pyx_v_self->state = Py_None(&_Py_NoneStruct);
22818
22819 /* function exit code */
22820 __pyx_r = 0;
22821 __Pyx_RefNannyFinishContext();
22822 return __pyx_r;
22823}
22824
22825/* "rados.pxd":18
22826 * rados_t cluster
22827 * public object state
22828 * public object monitor_callback # <<<<<<<<<<<<<<
22829 * public object monitor_callback2
22830 * public object parsed_args
22831 */
22832
22833/* Python wrapper */
22834static PyObject *__pyx_pw_5rados_5Rados_16monitor_callback_1__get__(PyObject *__pyx_v_self); /*proto*/
22835static PyObject *__pyx_pw_5rados_5Rados_16monitor_callback_1__get__(PyObject *__pyx_v_self) {
22836 PyObject *__pyx_r = 0;
22837 __Pyx_RefNannyDeclarations
22838 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
22839 __pyx_r = __pyx_pf_5rados_5Rados_16monitor_callback___get__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
22840
22841 /* function exit code */
22842 __Pyx_RefNannyFinishContext();
22843 return __pyx_r;
22844}
22845
22846static PyObject *__pyx_pf_5rados_5Rados_16monitor_callback___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
22847 PyObject *__pyx_r = NULL((void*)0);
22848 __Pyx_RefNannyDeclarations
22849 __Pyx_RefNannySetupContext("__get__", 0);
22850 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
22851 __Pyx_INCREF(__pyx_v_self->monitor_callback)( ((PyObject*)(__pyx_v_self->monitor_callback))->ob_refcnt
++)
;
22852 __pyx_r = __pyx_v_self->monitor_callback;
22853 goto __pyx_L0;
22854
22855 /* function exit code */
22856 __pyx_L0:;
22857 __Pyx_XGIVEREF(__pyx_r);
22858 __Pyx_RefNannyFinishContext();
22859 return __pyx_r;
22860}
22861
22862/* Python wrapper */
22863static int __pyx_pw_5rados_5Rados_16monitor_callback_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
22864static int __pyx_pw_5rados_5Rados_16monitor_callback_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
22865 int __pyx_r;
22866 __Pyx_RefNannyDeclarations
22867 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
22868 __pyx_r = __pyx_pf_5rados_5Rados_16monitor_callback_2__set__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_value));
22869
22870 /* function exit code */
22871 __Pyx_RefNannyFinishContext();
22872 return __pyx_r;
22873}
22874
22875static int __pyx_pf_5rados_5Rados_16monitor_callback_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value) {
22876 int __pyx_r;
22877 __Pyx_RefNannyDeclarations
22878 __Pyx_RefNannySetupContext("__set__", 0);
22879 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
22880 __Pyx_GIVEREF(__pyx_v_value);
22881 __Pyx_GOTREF(__pyx_v_self->monitor_callback);
22882 __Pyx_DECREF(__pyx_v_self->monitor_callback)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback)))); } while
(0)
;
22883 __pyx_v_self->monitor_callback = __pyx_v_value;
22884
22885 /* function exit code */
22886 __pyx_r = 0;
22887 __Pyx_RefNannyFinishContext();
22888 return __pyx_r;
22889}
22890
22891/* Python wrapper */
22892static int __pyx_pw_5rados_5Rados_16monitor_callback_5__del__(PyObject *__pyx_v_self); /*proto*/
22893static int __pyx_pw_5rados_5Rados_16monitor_callback_5__del__(PyObject *__pyx_v_self) {
22894 int __pyx_r;
22895 __Pyx_RefNannyDeclarations
22896 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
22897 __pyx_r = __pyx_pf_5rados_5Rados_16monitor_callback_4__del__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
22898
22899 /* function exit code */
22900 __Pyx_RefNannyFinishContext();
22901 return __pyx_r;
22902}
22903
22904static int __pyx_pf_5rados_5Rados_16monitor_callback_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
22905 int __pyx_r;
22906 __Pyx_RefNannyDeclarations
22907 __Pyx_RefNannySetupContext("__del__", 0);
22908 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
22909 __Pyx_GIVEREF(Py_None);
22910 __Pyx_GOTREF(__pyx_v_self->monitor_callback);
22911 __Pyx_DECREF(__pyx_v_self->monitor_callback)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback)))); } while
(0)
;
22912 __pyx_v_self->monitor_callback = Py_None(&_Py_NoneStruct);
22913
22914 /* function exit code */
22915 __pyx_r = 0;
22916 __Pyx_RefNannyFinishContext();
22917 return __pyx_r;
22918}
22919
22920/* "rados.pxd":19
22921 * public object state
22922 * public object monitor_callback
22923 * public object monitor_callback2 # <<<<<<<<<<<<<<
22924 * public object parsed_args
22925 * public object conf_defaults
22926 */
22927
22928/* Python wrapper */
22929static PyObject *__pyx_pw_5rados_5Rados_17monitor_callback2_1__get__(PyObject *__pyx_v_self); /*proto*/
22930static PyObject *__pyx_pw_5rados_5Rados_17monitor_callback2_1__get__(PyObject *__pyx_v_self) {
22931 PyObject *__pyx_r = 0;
22932 __Pyx_RefNannyDeclarations
22933 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
22934 __pyx_r = __pyx_pf_5rados_5Rados_17monitor_callback2___get__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
22935
22936 /* function exit code */
22937 __Pyx_RefNannyFinishContext();
22938 return __pyx_r;
22939}
22940
22941static PyObject *__pyx_pf_5rados_5Rados_17monitor_callback2___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
22942 PyObject *__pyx_r = NULL((void*)0);
22943 __Pyx_RefNannyDeclarations
22944 __Pyx_RefNannySetupContext("__get__", 0);
22945 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
22946 __Pyx_INCREF(__pyx_v_self->monitor_callback2)( ((PyObject*)(__pyx_v_self->monitor_callback2))->ob_refcnt
++)
;
22947 __pyx_r = __pyx_v_self->monitor_callback2;
22948 goto __pyx_L0;
22949
22950 /* function exit code */
22951 __pyx_L0:;
22952 __Pyx_XGIVEREF(__pyx_r);
22953 __Pyx_RefNannyFinishContext();
22954 return __pyx_r;
22955}
22956
22957/* Python wrapper */
22958static int __pyx_pw_5rados_5Rados_17monitor_callback2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
22959static int __pyx_pw_5rados_5Rados_17monitor_callback2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
22960 int __pyx_r;
22961 __Pyx_RefNannyDeclarations
22962 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
22963 __pyx_r = __pyx_pf_5rados_5Rados_17monitor_callback2_2__set__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_value));
22964
22965 /* function exit code */
22966 __Pyx_RefNannyFinishContext();
22967 return __pyx_r;
22968}
22969
22970static int __pyx_pf_5rados_5Rados_17monitor_callback2_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value) {
22971 int __pyx_r;
22972 __Pyx_RefNannyDeclarations
22973 __Pyx_RefNannySetupContext("__set__", 0);
22974 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
22975 __Pyx_GIVEREF(__pyx_v_value);
22976 __Pyx_GOTREF(__pyx_v_self->monitor_callback2);
22977 __Pyx_DECREF(__pyx_v_self->monitor_callback2)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback2))
->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback2)))); } while
(0)
;
22978 __pyx_v_self->monitor_callback2 = __pyx_v_value;
22979
22980 /* function exit code */
22981 __pyx_r = 0;
22982 __Pyx_RefNannyFinishContext();
22983 return __pyx_r;
22984}
22985
22986/* Python wrapper */
22987static int __pyx_pw_5rados_5Rados_17monitor_callback2_5__del__(PyObject *__pyx_v_self); /*proto*/
22988static int __pyx_pw_5rados_5Rados_17monitor_callback2_5__del__(PyObject *__pyx_v_self) {
22989 int __pyx_r;
22990 __Pyx_RefNannyDeclarations
22991 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
22992 __pyx_r = __pyx_pf_5rados_5Rados_17monitor_callback2_4__del__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
22993
22994 /* function exit code */
22995 __Pyx_RefNannyFinishContext();
22996 return __pyx_r;
22997}
22998
22999static int __pyx_pf_5rados_5Rados_17monitor_callback2_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23000 int __pyx_r;
23001 __Pyx_RefNannyDeclarations
23002 __Pyx_RefNannySetupContext("__del__", 0);
23003 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
23004 __Pyx_GIVEREF(Py_None);
23005 __Pyx_GOTREF(__pyx_v_self->monitor_callback2);
23006 __Pyx_DECREF(__pyx_v_self->monitor_callback2)do { if ( --((PyObject*)(__pyx_v_self->monitor_callback2))
->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->monitor_callback2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->monitor_callback2)))); } while
(0)
;
23007 __pyx_v_self->monitor_callback2 = Py_None(&_Py_NoneStruct);
23008
23009 /* function exit code */
23010 __pyx_r = 0;
23011 __Pyx_RefNannyFinishContext();
23012 return __pyx_r;
23013}
23014
23015/* "rados.pxd":20
23016 * public object monitor_callback
23017 * public object monitor_callback2
23018 * public object parsed_args # <<<<<<<<<<<<<<
23019 * public object conf_defaults
23020 * public object conffile
23021 */
23022
23023/* Python wrapper */
23024static PyObject *__pyx_pw_5rados_5Rados_11parsed_args_1__get__(PyObject *__pyx_v_self); /*proto*/
23025static PyObject *__pyx_pw_5rados_5Rados_11parsed_args_1__get__(PyObject *__pyx_v_self) {
23026 PyObject *__pyx_r = 0;
23027 __Pyx_RefNannyDeclarations
23028 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
23029 __pyx_r = __pyx_pf_5rados_5Rados_11parsed_args___get__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23030
23031 /* function exit code */
23032 __Pyx_RefNannyFinishContext();
23033 return __pyx_r;
23034}
23035
23036static PyObject *__pyx_pf_5rados_5Rados_11parsed_args___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23037 PyObject *__pyx_r = NULL((void*)0);
23038 __Pyx_RefNannyDeclarations
23039 __Pyx_RefNannySetupContext("__get__", 0);
23040 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
23041 __Pyx_INCREF(__pyx_v_self->parsed_args)( ((PyObject*)(__pyx_v_self->parsed_args))->ob_refcnt++
)
;
23042 __pyx_r = __pyx_v_self->parsed_args;
23043 goto __pyx_L0;
23044
23045 /* function exit code */
23046 __pyx_L0:;
23047 __Pyx_XGIVEREF(__pyx_r);
23048 __Pyx_RefNannyFinishContext();
23049 return __pyx_r;
23050}
23051
23052/* Python wrapper */
23053static int __pyx_pw_5rados_5Rados_11parsed_args_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
23054static int __pyx_pw_5rados_5Rados_11parsed_args_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
23055 int __pyx_r;
23056 __Pyx_RefNannyDeclarations
23057 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
23058 __pyx_r = __pyx_pf_5rados_5Rados_11parsed_args_2__set__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_value));
23059
23060 /* function exit code */
23061 __Pyx_RefNannyFinishContext();
23062 return __pyx_r;
23063}
23064
23065static int __pyx_pf_5rados_5Rados_11parsed_args_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value) {
23066 int __pyx_r;
23067 __Pyx_RefNannyDeclarations
23068 __Pyx_RefNannySetupContext("__set__", 0);
23069 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
23070 __Pyx_GIVEREF(__pyx_v_value);
23071 __Pyx_GOTREF(__pyx_v_self->parsed_args);
23072 __Pyx_DECREF(__pyx_v_self->parsed_args)do { if ( --((PyObject*)(__pyx_v_self->parsed_args))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
parsed_args)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->parsed_args)))); } while (0)
;
23073 __pyx_v_self->parsed_args = __pyx_v_value;
23074
23075 /* function exit code */
23076 __pyx_r = 0;
23077 __Pyx_RefNannyFinishContext();
23078 return __pyx_r;
23079}
23080
23081/* Python wrapper */
23082static int __pyx_pw_5rados_5Rados_11parsed_args_5__del__(PyObject *__pyx_v_self); /*proto*/
23083static int __pyx_pw_5rados_5Rados_11parsed_args_5__del__(PyObject *__pyx_v_self) {
23084 int __pyx_r;
23085 __Pyx_RefNannyDeclarations
23086 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
23087 __pyx_r = __pyx_pf_5rados_5Rados_11parsed_args_4__del__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23088
23089 /* function exit code */
23090 __Pyx_RefNannyFinishContext();
23091 return __pyx_r;
23092}
23093
23094static int __pyx_pf_5rados_5Rados_11parsed_args_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23095 int __pyx_r;
23096 __Pyx_RefNannyDeclarations
23097 __Pyx_RefNannySetupContext("__del__", 0);
23098 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
23099 __Pyx_GIVEREF(Py_None);
23100 __Pyx_GOTREF(__pyx_v_self->parsed_args);
23101 __Pyx_DECREF(__pyx_v_self->parsed_args)do { if ( --((PyObject*)(__pyx_v_self->parsed_args))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
parsed_args)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->parsed_args)))); } while (0)
;
23102 __pyx_v_self->parsed_args = Py_None(&_Py_NoneStruct);
23103
23104 /* function exit code */
23105 __pyx_r = 0;
23106 __Pyx_RefNannyFinishContext();
23107 return __pyx_r;
23108}
23109
23110/* "rados.pxd":21
23111 * public object monitor_callback2
23112 * public object parsed_args
23113 * public object conf_defaults # <<<<<<<<<<<<<<
23114 * public object conffile
23115 * public object rados_id
23116 */
23117
23118/* Python wrapper */
23119static PyObject *__pyx_pw_5rados_5Rados_13conf_defaults_1__get__(PyObject *__pyx_v_self); /*proto*/
23120static PyObject *__pyx_pw_5rados_5Rados_13conf_defaults_1__get__(PyObject *__pyx_v_self) {
23121 PyObject *__pyx_r = 0;
23122 __Pyx_RefNannyDeclarations
23123 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
23124 __pyx_r = __pyx_pf_5rados_5Rados_13conf_defaults___get__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23125
23126 /* function exit code */
23127 __Pyx_RefNannyFinishContext();
23128 return __pyx_r;
23129}
23130
23131static PyObject *__pyx_pf_5rados_5Rados_13conf_defaults___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23132 PyObject *__pyx_r = NULL((void*)0);
23133 __Pyx_RefNannyDeclarations
23134 __Pyx_RefNannySetupContext("__get__", 0);
23135 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
23136 __Pyx_INCREF(__pyx_v_self->conf_defaults)( ((PyObject*)(__pyx_v_self->conf_defaults))->ob_refcnt
++)
;
23137 __pyx_r = __pyx_v_self->conf_defaults;
23138 goto __pyx_L0;
23139
23140 /* function exit code */
23141 __pyx_L0:;
23142 __Pyx_XGIVEREF(__pyx_r);
23143 __Pyx_RefNannyFinishContext();
23144 return __pyx_r;
23145}
23146
23147/* Python wrapper */
23148static int __pyx_pw_5rados_5Rados_13conf_defaults_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
23149static int __pyx_pw_5rados_5Rados_13conf_defaults_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
23150 int __pyx_r;
23151 __Pyx_RefNannyDeclarations
23152 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
23153 __pyx_r = __pyx_pf_5rados_5Rados_13conf_defaults_2__set__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_value));
23154
23155 /* function exit code */
23156 __Pyx_RefNannyFinishContext();
23157 return __pyx_r;
23158}
23159
23160static int __pyx_pf_5rados_5Rados_13conf_defaults_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value) {
23161 int __pyx_r;
23162 __Pyx_RefNannyDeclarations
23163 __Pyx_RefNannySetupContext("__set__", 0);
23164 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
23165 __Pyx_GIVEREF(__pyx_v_value);
23166 __Pyx_GOTREF(__pyx_v_self->conf_defaults);
23167 __Pyx_DECREF(__pyx_v_self->conf_defaults)do { if ( --((PyObject*)(__pyx_v_self->conf_defaults))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->conf_defaults)))->ob_type)->tp_dealloc)((PyObject *
)((PyObject *)(__pyx_v_self->conf_defaults)))); } while (0
)
;
23168 __pyx_v_self->conf_defaults = __pyx_v_value;
23169
23170 /* function exit code */
23171 __pyx_r = 0;
23172 __Pyx_RefNannyFinishContext();
23173 return __pyx_r;
23174}
23175
23176/* Python wrapper */
23177static int __pyx_pw_5rados_5Rados_13conf_defaults_5__del__(PyObject *__pyx_v_self); /*proto*/
23178static int __pyx_pw_5rados_5Rados_13conf_defaults_5__del__(PyObject *__pyx_v_self) {
23179 int __pyx_r;
23180 __Pyx_RefNannyDeclarations
23181 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
23182 __pyx_r = __pyx_pf_5rados_5Rados_13conf_defaults_4__del__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23183
23184 /* function exit code */
23185 __Pyx_RefNannyFinishContext();
23186 return __pyx_r;
23187}
23188
23189static int __pyx_pf_5rados_5Rados_13conf_defaults_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23190 int __pyx_r;
23191 __Pyx_RefNannyDeclarations
23192 __Pyx_RefNannySetupContext("__del__", 0);
23193 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
23194 __Pyx_GIVEREF(Py_None);
23195 __Pyx_GOTREF(__pyx_v_self->conf_defaults);
23196 __Pyx_DECREF(__pyx_v_self->conf_defaults)do { if ( --((PyObject*)(__pyx_v_self->conf_defaults))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->conf_defaults)))->ob_type)->tp_dealloc)((PyObject *
)((PyObject *)(__pyx_v_self->conf_defaults)))); } while (0
)
;
23197 __pyx_v_self->conf_defaults = Py_None(&_Py_NoneStruct);
23198
23199 /* function exit code */
23200 __pyx_r = 0;
23201 __Pyx_RefNannyFinishContext();
23202 return __pyx_r;
23203}
23204
23205/* "rados.pxd":22
23206 * public object parsed_args
23207 * public object conf_defaults
23208 * public object conffile # <<<<<<<<<<<<<<
23209 * public object rados_id
23210 *
23211 */
23212
23213/* Python wrapper */
23214static PyObject *__pyx_pw_5rados_5Rados_8conffile_1__get__(PyObject *__pyx_v_self); /*proto*/
23215static PyObject *__pyx_pw_5rados_5Rados_8conffile_1__get__(PyObject *__pyx_v_self) {
23216 PyObject *__pyx_r = 0;
23217 __Pyx_RefNannyDeclarations
23218 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
23219 __pyx_r = __pyx_pf_5rados_5Rados_8conffile___get__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23220
23221 /* function exit code */
23222 __Pyx_RefNannyFinishContext();
23223 return __pyx_r;
23224}
23225
23226static PyObject *__pyx_pf_5rados_5Rados_8conffile___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23227 PyObject *__pyx_r = NULL((void*)0);
23228 __Pyx_RefNannyDeclarations
23229 __Pyx_RefNannySetupContext("__get__", 0);
23230 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
23231 __Pyx_INCREF(__pyx_v_self->conffile)( ((PyObject*)(__pyx_v_self->conffile))->ob_refcnt++);
23232 __pyx_r = __pyx_v_self->conffile;
23233 goto __pyx_L0;
23234
23235 /* function exit code */
23236 __pyx_L0:;
23237 __Pyx_XGIVEREF(__pyx_r);
23238 __Pyx_RefNannyFinishContext();
23239 return __pyx_r;
23240}
23241
23242/* Python wrapper */
23243static int __pyx_pw_5rados_5Rados_8conffile_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
23244static int __pyx_pw_5rados_5Rados_8conffile_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
23245 int __pyx_r;
23246 __Pyx_RefNannyDeclarations
23247 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
23248 __pyx_r = __pyx_pf_5rados_5Rados_8conffile_2__set__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_value));
23249
23250 /* function exit code */
23251 __Pyx_RefNannyFinishContext();
23252 return __pyx_r;
23253}
23254
23255static int __pyx_pf_5rados_5Rados_8conffile_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value) {
23256 int __pyx_r;
23257 __Pyx_RefNannyDeclarations
23258 __Pyx_RefNannySetupContext("__set__", 0);
23259 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
23260 __Pyx_GIVEREF(__pyx_v_value);
23261 __Pyx_GOTREF(__pyx_v_self->conffile);
23262 __Pyx_DECREF(__pyx_v_self->conffile)do { if ( --((PyObject*)(__pyx_v_self->conffile))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
conffile)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->conffile)))); } while (0)
;
23263 __pyx_v_self->conffile = __pyx_v_value;
23264
23265 /* function exit code */
23266 __pyx_r = 0;
23267 __Pyx_RefNannyFinishContext();
23268 return __pyx_r;
23269}
23270
23271/* Python wrapper */
23272static int __pyx_pw_5rados_5Rados_8conffile_5__del__(PyObject *__pyx_v_self); /*proto*/
23273static int __pyx_pw_5rados_5Rados_8conffile_5__del__(PyObject *__pyx_v_self) {
23274 int __pyx_r;
23275 __Pyx_RefNannyDeclarations
23276 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
23277 __pyx_r = __pyx_pf_5rados_5Rados_8conffile_4__del__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23278
23279 /* function exit code */
23280 __Pyx_RefNannyFinishContext();
23281 return __pyx_r;
23282}
23283
23284static int __pyx_pf_5rados_5Rados_8conffile_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23285 int __pyx_r;
23286 __Pyx_RefNannyDeclarations
23287 __Pyx_RefNannySetupContext("__del__", 0);
23288 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
23289 __Pyx_GIVEREF(Py_None);
23290 __Pyx_GOTREF(__pyx_v_self->conffile);
23291 __Pyx_DECREF(__pyx_v_self->conffile)do { if ( --((PyObject*)(__pyx_v_self->conffile))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
conffile)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->conffile)))); } while (0)
;
23292 __pyx_v_self->conffile = Py_None(&_Py_NoneStruct);
23293
23294 /* function exit code */
23295 __pyx_r = 0;
23296 __Pyx_RefNannyFinishContext();
23297 return __pyx_r;
23298}
23299
23300/* "rados.pxd":23
23301 * public object conf_defaults
23302 * public object conffile
23303 * public object rados_id # <<<<<<<<<<<<<<
23304 *
23305 *
23306 */
23307
23308/* Python wrapper */
23309static PyObject *__pyx_pw_5rados_5Rados_8rados_id_1__get__(PyObject *__pyx_v_self); /*proto*/
23310static PyObject *__pyx_pw_5rados_5Rados_8rados_id_1__get__(PyObject *__pyx_v_self) {
23311 PyObject *__pyx_r = 0;
23312 __Pyx_RefNannyDeclarations
23313 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
23314 __pyx_r = __pyx_pf_5rados_5Rados_8rados_id___get__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23315
23316 /* function exit code */
23317 __Pyx_RefNannyFinishContext();
23318 return __pyx_r;
23319}
23320
23321static PyObject *__pyx_pf_5rados_5Rados_8rados_id___get__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23322 PyObject *__pyx_r = NULL((void*)0);
23323 __Pyx_RefNannyDeclarations
23324 __Pyx_RefNannySetupContext("__get__", 0);
23325 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
23326 __Pyx_INCREF(__pyx_v_self->rados_id)( ((PyObject*)(__pyx_v_self->rados_id))->ob_refcnt++);
23327 __pyx_r = __pyx_v_self->rados_id;
23328 goto __pyx_L0;
23329
23330 /* function exit code */
23331 __pyx_L0:;
23332 __Pyx_XGIVEREF(__pyx_r);
23333 __Pyx_RefNannyFinishContext();
23334 return __pyx_r;
23335}
23336
23337/* Python wrapper */
23338static int __pyx_pw_5rados_5Rados_8rados_id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
23339static int __pyx_pw_5rados_5Rados_8rados_id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
23340 int __pyx_r;
23341 __Pyx_RefNannyDeclarations
23342 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
23343 __pyx_r = __pyx_pf_5rados_5Rados_8rados_id_2__set__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self), ((PyObject *)__pyx_v_value));
23344
23345 /* function exit code */
23346 __Pyx_RefNannyFinishContext();
23347 return __pyx_r;
23348}
23349
23350static int __pyx_pf_5rados_5Rados_8rados_id_2__set__(struct __pyx_obj_5rados_Rados *__pyx_v_self, PyObject *__pyx_v_value) {
23351 int __pyx_r;
23352 __Pyx_RefNannyDeclarations
23353 __Pyx_RefNannySetupContext("__set__", 0);
23354 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
23355 __Pyx_GIVEREF(__pyx_v_value);
23356 __Pyx_GOTREF(__pyx_v_self->rados_id);
23357 __Pyx_DECREF(__pyx_v_self->rados_id)do { if ( --((PyObject*)(__pyx_v_self->rados_id))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
rados_id)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->rados_id)))); } while (0)
;
23358 __pyx_v_self->rados_id = __pyx_v_value;
23359
23360 /* function exit code */
23361 __pyx_r = 0;
23362 __Pyx_RefNannyFinishContext();
23363 return __pyx_r;
23364}
23365
23366/* Python wrapper */
23367static int __pyx_pw_5rados_5Rados_8rados_id_5__del__(PyObject *__pyx_v_self); /*proto*/
23368static int __pyx_pw_5rados_5Rados_8rados_id_5__del__(PyObject *__pyx_v_self) {
23369 int __pyx_r;
23370 __Pyx_RefNannyDeclarations
23371 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
23372 __pyx_r = __pyx_pf_5rados_5Rados_8rados_id_4__del__(((struct __pyx_obj_5rados_Rados *)__pyx_v_self));
23373
23374 /* function exit code */
23375 __Pyx_RefNannyFinishContext();
23376 return __pyx_r;
23377}
23378
23379static int __pyx_pf_5rados_5Rados_8rados_id_4__del__(struct __pyx_obj_5rados_Rados *__pyx_v_self) {
23380 int __pyx_r;
23381 __Pyx_RefNannyDeclarations
23382 __Pyx_RefNannySetupContext("__del__", 0);
23383 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
23384 __Pyx_GIVEREF(Py_None);
23385 __Pyx_GOTREF(__pyx_v_self->rados_id);
23386 __Pyx_DECREF(__pyx_v_self->rados_id)do { if ( --((PyObject*)(__pyx_v_self->rados_id))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
rados_id)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->rados_id)))); } while (0)
;
23387 __pyx_v_self->rados_id = Py_None(&_Py_NoneStruct);
23388
23389 /* function exit code */
23390 __pyx_r = 0;
23391 __Pyx_RefNannyFinishContext();
23392 return __pyx_r;
23393}
23394
23395/* "rados.pyx":1613
23396 * cdef rados_omap_iter_t ctx
23397 *
23398 * def __cinit__(self, Ioctx ioctx): # <<<<<<<<<<<<<<
23399 * self.ioctx = ioctx
23400 *
23401 */
23402
23403/* Python wrapper */
23404static int __pyx_pw_5rados_12OmapIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23405static int __pyx_pw_5rados_12OmapIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23406 struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx = 0;
23407 int __pyx_lineno = 0;
23408 const char *__pyx_filename = NULL((void*)0);
23409 int __pyx_clineno = 0;
23410 int __pyx_r;
23411 __Pyx_RefNannyDeclarations
23412 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
23413 {
23414 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ioctx,0};
23415 PyObject* values[1] = {0};
23416 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
23417 Py_ssize_t kw_args;
23418 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
23419 switch (pos_args) {
23420 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
23421 case 0: break;
23422 default: goto __pyx_L5_argtuple_error;
23423 }
23424 kw_args = PyDict_Size(__pyx_kwds);
23425 switch (pos_args) {
23426 case 0:
23427 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx
)) != 0), 1)
) kw_args--;
23428 else goto __pyx_L5_argtuple_error;
23429 }
23430 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
23431 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__cinit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1613; __pyx_clineno = __LINE__23431; goto __pyx_L3_error;}
23432 }
23433 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 1) {
23434 goto __pyx_L5_argtuple_error;
23435 } else {
23436 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
23437 }
23438 __pyx_v_ioctx = ((struct __pyx_obj_5rados_Ioctx *)values[0]);
23439 }
23440 goto __pyx_L4_argument_unpacking_done;
23441 __pyx_L5_argtuple_error:;
23442 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1613; __pyx_clineno = __LINE__23442; goto __pyx_L3_error;}
23443 __pyx_L3_error:;
23444 __Pyx_AddTraceback("rados.OmapIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
23445 __Pyx_RefNannyFinishContext();
23446 return -1;
23447 __pyx_L4_argument_unpacking_done:;
23448 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0))__builtin_expect(!!(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx
), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1613; __pyx_clineno = __LINE__23448; goto __pyx_L1_error;}
23449 __pyx_r = __pyx_pf_5rados_12OmapIterator___cinit__(((struct __pyx_obj_5rados_OmapIterator *)__pyx_v_self), __pyx_v_ioctx);
23450
23451 /* function exit code */
23452 goto __pyx_L0;
23453 __pyx_L1_error:;
23454 __pyx_r = -1;
23455 __pyx_L0:;
23456 __Pyx_RefNannyFinishContext();
23457 return __pyx_r;
23458}
23459
23460static int __pyx_pf_5rados_12OmapIterator___cinit__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx) {
23461 int __pyx_r;
23462 __Pyx_RefNannyDeclarations
23463 __Pyx_RefNannySetupContext("__cinit__", 0);
23464
23465 /* "rados.pyx":1614
23466 *
23467 * def __cinit__(self, Ioctx ioctx):
23468 * self.ioctx = ioctx # <<<<<<<<<<<<<<
23469 *
23470 * def __iter__(self):
23471 */
23472 __Pyx_INCREF(((PyObject *)__pyx_v_ioctx))( ((PyObject*)(((PyObject *)__pyx_v_ioctx)))->ob_refcnt++);
23473 __Pyx_GIVEREF(((PyObject *)__pyx_v_ioctx));
23474 __Pyx_GOTREF(__pyx_v_self->ioctx);
23475 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
23476 __pyx_v_self->ioctx = __pyx_v_ioctx;
23477
23478 /* "rados.pyx":1613
23479 * cdef rados_omap_iter_t ctx
23480 *
23481 * def __cinit__(self, Ioctx ioctx): # <<<<<<<<<<<<<<
23482 * self.ioctx = ioctx
23483 *
23484 */
23485
23486 /* function exit code */
23487 __pyx_r = 0;
23488 __Pyx_RefNannyFinishContext();
23489 return __pyx_r;
23490}
23491
23492/* "rados.pyx":1616
23493 * self.ioctx = ioctx
23494 *
23495 * def __iter__(self): # <<<<<<<<<<<<<<
23496 * return self
23497 *
23498 */
23499
23500/* Python wrapper */
23501static PyObject *__pyx_pw_5rados_12OmapIterator_3__iter__(PyObject *__pyx_v_self); /*proto*/
23502static PyObject *__pyx_pw_5rados_12OmapIterator_3__iter__(PyObject *__pyx_v_self) {
23503 PyObject *__pyx_r = 0;
23504 __Pyx_RefNannyDeclarations
23505 __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
23506 __pyx_r = __pyx_pf_5rados_12OmapIterator_2__iter__(((struct __pyx_obj_5rados_OmapIterator *)__pyx_v_self));
23507
23508 /* function exit code */
23509 __Pyx_RefNannyFinishContext();
23510 return __pyx_r;
23511}
23512
23513static PyObject *__pyx_pf_5rados_12OmapIterator_2__iter__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self) {
23514 PyObject *__pyx_r = NULL((void*)0);
23515 __Pyx_RefNannyDeclarations
23516 __Pyx_RefNannySetupContext("__iter__", 0);
23517
23518 /* "rados.pyx":1617
23519 *
23520 * def __iter__(self):
23521 * return self # <<<<<<<<<<<<<<
23522 *
23523 * def __next__(self):
23524 */
23525 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
23526 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
23527 __pyx_r = ((PyObject *)__pyx_v_self);
23528 goto __pyx_L0;
23529
23530 /* "rados.pyx":1616
23531 * self.ioctx = ioctx
23532 *
23533 * def __iter__(self): # <<<<<<<<<<<<<<
23534 * return self
23535 *
23536 */
23537
23538 /* function exit code */
23539 __pyx_L0:;
23540 __Pyx_XGIVEREF(__pyx_r);
23541 __Pyx_RefNannyFinishContext();
23542 return __pyx_r;
23543}
23544
23545/* "rados.pyx":1619
23546 * return self
23547 *
23548 * def __next__(self): # <<<<<<<<<<<<<<
23549 * """
23550 * Get the next key-value pair in the object
23551 */
23552
23553/* Python wrapper */
23554static PyObject *__pyx_pw_5rados_12OmapIterator_5__next__(PyObject *__pyx_v_self); /*proto*/
23555static char __pyx_doc_5rados_12OmapIterator_4__next__[] = "\n Get the next key-value pair in the object\n :returns: next rados.OmapItem\n ";
23556#if CYTHON_COMPILING_IN_CPYTHON1
23557struct wrapperbase __pyx_wrapperbase_5rados_12OmapIterator_4__next__;
23558#endif
23559static PyObject *__pyx_pw_5rados_12OmapIterator_5__next__(PyObject *__pyx_v_self) {
23560 PyObject *__pyx_r = 0;
23561 __Pyx_RefNannyDeclarations
23562 __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
23563 __pyx_r = __pyx_pf_5rados_12OmapIterator_4__next__(((struct __pyx_obj_5rados_OmapIterator *)__pyx_v_self));
23564
23565 /* function exit code */
23566 __Pyx_RefNannyFinishContext();
23567 return __pyx_r;
23568}
23569
23570static PyObject *__pyx_pf_5rados_12OmapIterator_4__next__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self) {
23571 char *__pyx_v_key_;
23572 char *__pyx_v_val_;
23573 size_t __pyx_v_len_;
23574 int __pyx_v_ret;
23575 PyObject *__pyx_v_key = NULL((void*)0);
23576 PyObject *__pyx_v_val = NULL((void*)0);
23577 PyObject *__pyx_r = NULL((void*)0);
23578 __Pyx_RefNannyDeclarations
23579 int __pyx_t_1;
23580 PyObject *__pyx_t_2 = NULL((void*)0);
23581 PyObject *__pyx_t_3 = NULL((void*)0);
23582 PyObject *__pyx_t_4 = NULL((void*)0);
23583 PyObject *__pyx_t_5 = NULL((void*)0);
23584 PyObject *__pyx_t_6 = NULL((void*)0);
23585 int __pyx_lineno = 0;
23586 const char *__pyx_filename = NULL((void*)0);
23587 int __pyx_clineno = 0;
23588 __Pyx_RefNannySetupContext("__next__", 0);
23589
23590 /* "rados.pyx":1625
23591 * """
23592 * cdef:
23593 * char *key_ = NULL # <<<<<<<<<<<<<<
23594 * char *val_ = NULL
23595 * size_t len_
23596 */
23597 __pyx_v_key_ = NULL((void*)0);
23598
23599 /* "rados.pyx":1626
23600 * cdef:
23601 * char *key_ = NULL
23602 * char *val_ = NULL # <<<<<<<<<<<<<<
23603 * size_t len_
23604 *
23605 */
23606 __pyx_v_val_ = NULL((void*)0);
23607
23608 /* "rados.pyx":1629
23609 * size_t len_
23610 *
23611 * with nogil: # <<<<<<<<<<<<<<
23612 * ret = rados_omap_get_next(self.ctx, &key_, &val_, &len_)
23613 *
23614 */
23615 {
23616 #ifdef WITH_THREAD1
23617 PyThreadState *_save;
23618 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
23619 #endif
23620 /*try:*/ {
23621
23622 /* "rados.pyx":1630
23623 *
23624 * with nogil:
23625 * ret = rados_omap_get_next(self.ctx, &key_, &val_, &len_) # <<<<<<<<<<<<<<
23626 *
23627 * if ret != 0:
23628 */
23629 __pyx_v_ret = rados_omap_get_next(__pyx_v_self->ctx, (&__pyx_v_key_), (&__pyx_v_val_), (&__pyx_v_len_));
23630 }
23631
23632 /* "rados.pyx":1629
23633 * size_t len_
23634 *
23635 * with nogil: # <<<<<<<<<<<<<<
23636 * ret = rados_omap_get_next(self.ctx, &key_, &val_, &len_)
23637 *
23638 */
23639 /*finally:*/ {
23640 /*normal exit:*/{
23641 #ifdef WITH_THREAD1
23642 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
23643 #endif
23644 goto __pyx_L5;
23645 }
23646 __pyx_L5:;
23647 }
23648 }
23649
23650 /* "rados.pyx":1632
23651 * ret = rados_omap_get_next(self.ctx, &key_, &val_, &len_)
23652 *
23653 * if ret != 0: # <<<<<<<<<<<<<<
23654 * raise make_ex(ret, "error iterating over the omap")
23655 * if key_ == NULL:
23656 */
23657 __pyx_t_1 = ((__pyx_v_ret != 0) != 0);
23658 if (__pyx_t_1) {
23659
23660 /* "rados.pyx":1633
23661 *
23662 * if ret != 0:
23663 * raise make_ex(ret, "error iterating over the omap") # <<<<<<<<<<<<<<
23664 * if key_ == NULL:
23665 * raise StopIteration()
23666 */
23667 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__23667; goto __pyx_L1_error;}
23668 __Pyx_GOTREF(__pyx_t_2);
23669 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_iterating_over_the_omap); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__23669; goto __pyx_L1_error;}
23670 __Pyx_GOTREF(__pyx_t_3);
23671 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
23672 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
23673 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
23674 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__23674; goto __pyx_L1_error;}
23675
23676 /* "rados.pyx":1632
23677 * ret = rados_omap_get_next(self.ctx, &key_, &val_, &len_)
23678 *
23679 * if ret != 0: # <<<<<<<<<<<<<<
23680 * raise make_ex(ret, "error iterating over the omap")
23681 * if key_ == NULL:
23682 */
23683 }
23684
23685 /* "rados.pyx":1634
23686 * if ret != 0:
23687 * raise make_ex(ret, "error iterating over the omap")
23688 * if key_ == NULL: # <<<<<<<<<<<<<<
23689 * raise StopIteration()
23690 * key = decode_cstr(key_)
23691 */
23692 __pyx_t_1 = ((__pyx_v_key_ == NULL((void*)0)) != 0);
23693 if (__pyx_t_1) {
23694
23695 /* "rados.pyx":1635
23696 * raise make_ex(ret, "error iterating over the omap")
23697 * if key_ == NULL:
23698 * raise StopIteration() # <<<<<<<<<<<<<<
23699 * key = decode_cstr(key_)
23700 * val = None
23701 */
23702 __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_builtin_StopIteration); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1635; __pyx_clineno = __LINE__23702; goto __pyx_L1_error;}
23703 __Pyx_GOTREF(__pyx_t_3);
23704 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
23705 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
23706 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1635; __pyx_clineno = __LINE__23706; goto __pyx_L1_error;}
23707
23708 /* "rados.pyx":1634
23709 * if ret != 0:
23710 * raise make_ex(ret, "error iterating over the omap")
23711 * if key_ == NULL: # <<<<<<<<<<<<<<
23712 * raise StopIteration()
23713 * key = decode_cstr(key_)
23714 */
23715 }
23716
23717 /* "rados.pyx":1636
23718 * if key_ == NULL:
23719 * raise StopIteration()
23720 * key = decode_cstr(key_) # <<<<<<<<<<<<<<
23721 * val = None
23722 * if val_ != NULL:
23723 */
23724 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__23724; goto __pyx_L1_error;}
23725 __Pyx_GOTREF(__pyx_t_2);
23726 __pyx_t_4 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_key_); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__23726; goto __pyx_L1_error;}
23727 __Pyx_GOTREF(__pyx_t_4);
23728 __pyx_t_5 = NULL((void*)0);
23729 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
23730 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
23731 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
23732 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
23733 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
23734 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
23735 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
23736 }
23737 }
23738 if (!__pyx_t_5) {
23739 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__23739; goto __pyx_L1_error;}
23740 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
23741 __Pyx_GOTREF(__pyx_t_3);
23742 } else {
23743 __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__23743; goto __pyx_L1_error;}
23744 __Pyx_GOTREF(__pyx_t_6);
23745 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
23746 __Pyx_GIVEREF(__pyx_t_4);
23747 PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+1] = __pyx_t_4);
23748 __pyx_t_4 = 0;
23749 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__23749; goto __pyx_L1_error;}
23750 __Pyx_GOTREF(__pyx_t_3);
23751 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
23752 }
23753 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
23754 __pyx_v_key = __pyx_t_3;
23755 __pyx_t_3 = 0;
23756
23757 /* "rados.pyx":1637
23758 * raise StopIteration()
23759 * key = decode_cstr(key_)
23760 * val = None # <<<<<<<<<<<<<<
23761 * if val_ != NULL:
23762 * val = val_[:len_]
23763 */
23764 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
23765 __pyx_v_val = Py_None(&_Py_NoneStruct);
23766
23767 /* "rados.pyx":1638
23768 * key = decode_cstr(key_)
23769 * val = None
23770 * if val_ != NULL: # <<<<<<<<<<<<<<
23771 * val = val_[:len_]
23772 * return (key, val)
23773 */
23774 __pyx_t_1 = ((__pyx_v_val_ != NULL((void*)0)) != 0);
23775 if (__pyx_t_1) {
23776
23777 /* "rados.pyx":1639
23778 * val = None
23779 * if val_ != NULL:
23780 * val = val_[:len_] # <<<<<<<<<<<<<<
23781 * return (key, val)
23782 *
23783 */
23784 __pyx_t_3 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_val_ + 0, __pyx_v_len_ - 0); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1639; __pyx_clineno = __LINE__23784; goto __pyx_L1_error;}
23785 __Pyx_GOTREF(__pyx_t_3);
23786 __Pyx_DECREF_SET(__pyx_v_val, __pyx_t_3)do { PyObject *tmp = (PyObject *) __pyx_v_val; __pyx_v_val = __pyx_t_3
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
23787 __pyx_t_3 = 0;
23788
23789 /* "rados.pyx":1638
23790 * key = decode_cstr(key_)
23791 * val = None
23792 * if val_ != NULL: # <<<<<<<<<<<<<<
23793 * val = val_[:len_]
23794 * return (key, val)
23795 */
23796 }
23797
23798 /* "rados.pyx":1640
23799 * if val_ != NULL:
23800 * val = val_[:len_]
23801 * return (key, val) # <<<<<<<<<<<<<<
23802 *
23803 * def __dealloc__(self):
23804 */
23805 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
23806 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1640; __pyx_clineno = __LINE__23806; goto __pyx_L1_error;}
23807 __Pyx_GOTREF(__pyx_t_3);
23808 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
23809 __Pyx_GIVEREF(__pyx_v_key);
23810 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_v_key);
23811 __Pyx_INCREF(__pyx_v_val)( ((PyObject*)(__pyx_v_val))->ob_refcnt++);
23812 __Pyx_GIVEREF(__pyx_v_val);
23813 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_val)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_val);
23814 __pyx_r = __pyx_t_3;
23815 __pyx_t_3 = 0;
23816 goto __pyx_L0;
23817
23818 /* "rados.pyx":1619
23819 * return self
23820 *
23821 * def __next__(self): # <<<<<<<<<<<<<<
23822 * """
23823 * Get the next key-value pair in the object
23824 */
23825
23826 /* function exit code */
23827 __pyx_L1_error:;
23828 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
23829 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
23830 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
23831 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
23832 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
23833 __Pyx_AddTraceback("rados.OmapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
23834 __pyx_r = NULL((void*)0);
23835 __pyx_L0:;
23836 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
23837 __Pyx_XDECREF(__pyx_v_val)do { if ((__pyx_v_val) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_val))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_val)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_val)))); } while (0); } while (0)
;
23838 __Pyx_XGIVEREF(__pyx_r);
23839 __Pyx_RefNannyFinishContext();
23840 return __pyx_r;
23841}
23842
23843/* "rados.pyx":1642
23844 * return (key, val)
23845 *
23846 * def __dealloc__(self): # <<<<<<<<<<<<<<
23847 * with nogil:
23848 * rados_omap_get_end(self.ctx)
23849 */
23850
23851/* Python wrapper */
23852static void __pyx_pw_5rados_12OmapIterator_7__dealloc__(PyObject *__pyx_v_self); /*proto*/
23853static void __pyx_pw_5rados_12OmapIterator_7__dealloc__(PyObject *__pyx_v_self) {
23854 __Pyx_RefNannyDeclarations
23855 __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
23856 __pyx_pf_5rados_12OmapIterator_6__dealloc__(((struct __pyx_obj_5rados_OmapIterator *)__pyx_v_self));
23857
23858 /* function exit code */
23859 __Pyx_RefNannyFinishContext();
23860}
23861
23862static void __pyx_pf_5rados_12OmapIterator_6__dealloc__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self) {
23863 __Pyx_RefNannyDeclarations
23864 __Pyx_RefNannySetupContext("__dealloc__", 0);
23865
23866 /* "rados.pyx":1643
23867 *
23868 * def __dealloc__(self):
23869 * with nogil: # <<<<<<<<<<<<<<
23870 * rados_omap_get_end(self.ctx)
23871 *
23872 */
23873 {
23874 #ifdef WITH_THREAD1
23875 PyThreadState *_save;
23876 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
23877 #endif
23878 /*try:*/ {
23879
23880 /* "rados.pyx":1644
23881 * def __dealloc__(self):
23882 * with nogil:
23883 * rados_omap_get_end(self.ctx) # <<<<<<<<<<<<<<
23884 *
23885 *
23886 */
23887 rados_omap_get_end(__pyx_v_self->ctx);
23888 }
23889
23890 /* "rados.pyx":1643
23891 *
23892 * def __dealloc__(self):
23893 * with nogil: # <<<<<<<<<<<<<<
23894 * rados_omap_get_end(self.ctx)
23895 *
23896 */
23897 /*finally:*/ {
23898 /*normal exit:*/{
23899 #ifdef WITH_THREAD1
23900 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
23901 #endif
23902 goto __pyx_L5;
23903 }
23904 __pyx_L5:;
23905 }
23906 }
23907
23908 /* "rados.pyx":1642
23909 * return (key, val)
23910 *
23911 * def __dealloc__(self): # <<<<<<<<<<<<<<
23912 * with nogil:
23913 * rados_omap_get_end(self.ctx)
23914 */
23915
23916 /* function exit code */
23917 __Pyx_RefNannyFinishContext();
23918}
23919
23920/* "rados.pyx":1610
23921 * """Omap iterator"""
23922 *
23923 * cdef public Ioctx ioctx # <<<<<<<<<<<<<<
23924 * cdef rados_omap_iter_t ctx
23925 *
23926 */
23927
23928/* Python wrapper */
23929static PyObject *__pyx_pw_5rados_12OmapIterator_5ioctx_1__get__(PyObject *__pyx_v_self); /*proto*/
23930static PyObject *__pyx_pw_5rados_12OmapIterator_5ioctx_1__get__(PyObject *__pyx_v_self) {
23931 PyObject *__pyx_r = 0;
23932 __Pyx_RefNannyDeclarations
23933 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
23934 __pyx_r = __pyx_pf_5rados_12OmapIterator_5ioctx___get__(((struct __pyx_obj_5rados_OmapIterator *)__pyx_v_self));
23935
23936 /* function exit code */
23937 __Pyx_RefNannyFinishContext();
23938 return __pyx_r;
23939}
23940
23941static PyObject *__pyx_pf_5rados_12OmapIterator_5ioctx___get__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self) {
23942 PyObject *__pyx_r = NULL((void*)0);
23943 __Pyx_RefNannyDeclarations
23944 __Pyx_RefNannySetupContext("__get__", 0);
23945 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
23946 __Pyx_INCREF(((PyObject *)__pyx_v_self->ioctx))( ((PyObject*)(((PyObject *)__pyx_v_self->ioctx)))->ob_refcnt
++)
;
23947 __pyx_r = ((PyObject *)__pyx_v_self->ioctx);
23948 goto __pyx_L0;
23949
23950 /* function exit code */
23951 __pyx_L0:;
23952 __Pyx_XGIVEREF(__pyx_r);
23953 __Pyx_RefNannyFinishContext();
23954 return __pyx_r;
23955}
23956
23957/* Python wrapper */
23958static int __pyx_pw_5rados_12OmapIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
23959static int __pyx_pw_5rados_12OmapIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
23960 int __pyx_r;
23961 __Pyx_RefNannyDeclarations
23962 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
23963 __pyx_r = __pyx_pf_5rados_12OmapIterator_5ioctx_2__set__(((struct __pyx_obj_5rados_OmapIterator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
23964
23965 /* function exit code */
23966 __Pyx_RefNannyFinishContext();
23967 return __pyx_r;
23968}
23969
23970static int __pyx_pf_5rados_12OmapIterator_5ioctx_2__set__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self, PyObject *__pyx_v_value) {
23971 int __pyx_r;
23972 __Pyx_RefNannyDeclarations
23973 PyObject *__pyx_t_1 = NULL((void*)0);
23974 int __pyx_lineno = 0;
23975 const char *__pyx_filename = NULL((void*)0);
23976 int __pyx_clineno = 0;
23977 __Pyx_RefNannySetupContext("__set__", 0);
23978 if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx)))__builtin_expect(!!(((__pyx_v_value) == (&_Py_NoneStruct)
) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__23978; goto __pyx_L1_error;}
23979 __pyx_t_1 = __pyx_v_value;
23980 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
23981 __Pyx_GIVEREF(__pyx_t_1);
23982 __Pyx_GOTREF(__pyx_v_self->ioctx);
23983 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
23984 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)__pyx_t_1);
23985 __pyx_t_1 = 0;
23986
23987 /* function exit code */
23988 __pyx_r = 0;
23989 goto __pyx_L0;
23990 __pyx_L1_error:;
23991 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
23992 __Pyx_AddTraceback("rados.OmapIterator.ioctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
23993 __pyx_r = -1;
23994 __pyx_L0:;
23995 __Pyx_RefNannyFinishContext();
23996 return __pyx_r;
23997}
23998
23999/* Python wrapper */
24000static int __pyx_pw_5rados_12OmapIterator_5ioctx_5__del__(PyObject *__pyx_v_self); /*proto*/
24001static int __pyx_pw_5rados_12OmapIterator_5ioctx_5__del__(PyObject *__pyx_v_self) {
24002 int __pyx_r;
24003 __Pyx_RefNannyDeclarations
24004 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
24005 __pyx_r = __pyx_pf_5rados_12OmapIterator_5ioctx_4__del__(((struct __pyx_obj_5rados_OmapIterator *)__pyx_v_self));
24006
24007 /* function exit code */
24008 __Pyx_RefNannyFinishContext();
24009 return __pyx_r;
24010}
24011
24012static int __pyx_pf_5rados_12OmapIterator_5ioctx_4__del__(struct __pyx_obj_5rados_OmapIterator *__pyx_v_self) {
24013 int __pyx_r;
24014 __Pyx_RefNannyDeclarations
24015 __Pyx_RefNannySetupContext("__del__", 0);
24016 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
24017 __Pyx_GIVEREF(Py_None);
24018 __Pyx_GOTREF(__pyx_v_self->ioctx);
24019 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
24020 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct));
24021
24022 /* function exit code */
24023 __pyx_r = 0;
24024 __Pyx_RefNannyFinishContext();
24025 return __pyx_r;
24026}
24027
24028/* "rados.pyx":1654
24029 * cdef public object ioctx
24030 *
24031 * def __cinit__(self, Ioctx ioctx): # <<<<<<<<<<<<<<
24032 * self.ioctx = ioctx
24033 *
24034 */
24035
24036/* Python wrapper */
24037static int __pyx_pw_5rados_14ObjectIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24038static int __pyx_pw_5rados_14ObjectIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24039 struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx = 0;
24040 int __pyx_lineno = 0;
24041 const char *__pyx_filename = NULL((void*)0);
24042 int __pyx_clineno = 0;
24043 int __pyx_r;
24044 __Pyx_RefNannyDeclarations
24045 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
24046 {
24047 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ioctx,0};
24048 PyObject* values[1] = {0};
24049 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
24050 Py_ssize_t kw_args;
24051 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
24052 switch (pos_args) {
24053 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
24054 case 0: break;
24055 default: goto __pyx_L5_argtuple_error;
24056 }
24057 kw_args = PyDict_Size(__pyx_kwds);
24058 switch (pos_args) {
24059 case 0:
24060 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx
)) != 0), 1)
) kw_args--;
24061 else goto __pyx_L5_argtuple_error;
24062 }
24063 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
24064 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__cinit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__24064; goto __pyx_L3_error;}
24065 }
24066 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 1) {
24067 goto __pyx_L5_argtuple_error;
24068 } else {
24069 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
24070 }
24071 __pyx_v_ioctx = ((struct __pyx_obj_5rados_Ioctx *)values[0]);
24072 }
24073 goto __pyx_L4_argument_unpacking_done;
24074 __pyx_L5_argtuple_error:;
24075 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__24075; goto __pyx_L3_error;}
24076 __pyx_L3_error:;
24077 __Pyx_AddTraceback("rados.ObjectIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
24078 __Pyx_RefNannyFinishContext();
24079 return -1;
24080 __pyx_L4_argument_unpacking_done:;
24081 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0))__builtin_expect(!!(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx
), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__24081; goto __pyx_L1_error;}
24082 __pyx_r = __pyx_pf_5rados_14ObjectIterator___cinit__(((struct __pyx_obj_5rados_ObjectIterator *)__pyx_v_self), __pyx_v_ioctx);
24083
24084 /* function exit code */
24085 goto __pyx_L0;
24086 __pyx_L1_error:;
24087 __pyx_r = -1;
24088 __pyx_L0:;
24089 __Pyx_RefNannyFinishContext();
24090 return __pyx_r;
24091}
24092
24093static int __pyx_pf_5rados_14ObjectIterator___cinit__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx) {
24094 int __pyx_v_ret;
24095 int __pyx_r;
24096 __Pyx_RefNannyDeclarations
24097 int __pyx_t_1;
24098 PyObject *__pyx_t_2 = NULL((void*)0);
24099 PyObject *__pyx_t_3 = NULL((void*)0);
24100 PyObject *__pyx_t_4 = NULL((void*)0);
24101 int __pyx_lineno = 0;
24102 const char *__pyx_filename = NULL((void*)0);
24103 int __pyx_clineno = 0;
24104 __Pyx_RefNannySetupContext("__cinit__", 0);
24105
24106 /* "rados.pyx":1655
24107 *
24108 * def __cinit__(self, Ioctx ioctx):
24109 * self.ioctx = ioctx # <<<<<<<<<<<<<<
24110 *
24111 * with nogil:
24112 */
24113 __Pyx_INCREF(((PyObject *)__pyx_v_ioctx))( ((PyObject*)(((PyObject *)__pyx_v_ioctx)))->ob_refcnt++);
24114 __Pyx_GIVEREF(((PyObject *)__pyx_v_ioctx));
24115 __Pyx_GOTREF(__pyx_v_self->ioctx);
24116 __Pyx_DECREF(__pyx_v_self->ioctx)do { if ( --((PyObject*)(__pyx_v_self->ioctx))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
ioctx)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->ioctx)))); } while (0)
;
24117 __pyx_v_self->ioctx = ((PyObject *)__pyx_v_ioctx);
24118
24119 /* "rados.pyx":1657
24120 * self.ioctx = ioctx
24121 *
24122 * with nogil: # <<<<<<<<<<<<<<
24123 * ret = rados_nobjects_list_open(ioctx.io, &self.ctx)
24124 * if ret < 0:
24125 */
24126 {
24127 #ifdef WITH_THREAD1
24128 PyThreadState *_save;
24129 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
24130 #endif
24131 /*try:*/ {
24132
24133 /* "rados.pyx":1658
24134 *
24135 * with nogil:
24136 * ret = rados_nobjects_list_open(ioctx.io, &self.ctx) # <<<<<<<<<<<<<<
24137 * if ret < 0:
24138 * raise make_ex(ret, "error iterating over the objects in ioctx '%s'"
24139 */
24140 __pyx_v_ret = rados_nobjects_list_open(__pyx_v_ioctx->io, (&__pyx_v_self->ctx));
24141 }
24142
24143 /* "rados.pyx":1657
24144 * self.ioctx = ioctx
24145 *
24146 * with nogil: # <<<<<<<<<<<<<<
24147 * ret = rados_nobjects_list_open(ioctx.io, &self.ctx)
24148 * if ret < 0:
24149 */
24150 /*finally:*/ {
24151 /*normal exit:*/{
24152 #ifdef WITH_THREAD1
24153 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
24154 #endif
24155 goto __pyx_L5;
24156 }
24157 __pyx_L5:;
24158 }
24159 }
24160
24161 /* "rados.pyx":1659
24162 * with nogil:
24163 * ret = rados_nobjects_list_open(ioctx.io, &self.ctx)
24164 * if ret < 0: # <<<<<<<<<<<<<<
24165 * raise make_ex(ret, "error iterating over the objects in ioctx '%s'"
24166 * % self.ioctx.name)
24167 */
24168 __pyx_t_1 = ((__pyx_v_ret < 0) != 0);
24169 if (__pyx_t_1) {
24170
24171 /* "rados.pyx":1660
24172 * ret = rados_nobjects_list_open(ioctx.io, &self.ctx)
24173 * if ret < 0:
24174 * raise make_ex(ret, "error iterating over the objects in ioctx '%s'" # <<<<<<<<<<<<<<
24175 * % self.ioctx.name)
24176 *
24177 */
24178 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1660; __pyx_clineno = __LINE__24178; goto __pyx_L1_error;}
24179 __Pyx_GOTREF(__pyx_t_2);
24180
24181 /* "rados.pyx":1661
24182 * if ret < 0:
24183 * raise make_ex(ret, "error iterating over the objects in ioctx '%s'"
24184 * % self.ioctx.name) # <<<<<<<<<<<<<<
24185 *
24186 * def __iter__(self):
24187 */
24188 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ioctx, __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__24188; goto __pyx_L1_error;}
24189 __Pyx_GOTREF(__pyx_t_3);
24190 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_error_iterating_over_the_objects, __pyx_t_3)PyString_Format(__pyx_kp_s_error_iterating_over_the_objects, __pyx_t_3
)
; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__24190; goto __pyx_L1_error;}
24191 __Pyx_GOTREF(__pyx_t_4);
24192 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
24193
24194 /* "rados.pyx":1660
24195 * ret = rados_nobjects_list_open(ioctx.io, &self.ctx)
24196 * if ret < 0:
24197 * raise make_ex(ret, "error iterating over the objects in ioctx '%s'" # <<<<<<<<<<<<<<
24198 * % self.ioctx.name)
24199 *
24200 */
24201 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1660; __pyx_clineno = __LINE__24201; goto __pyx_L1_error;}
24202 __Pyx_GOTREF(__pyx_t_3);
24203 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
24204 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
24205 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
24206 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
24207 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1660; __pyx_clineno = __LINE__24207; goto __pyx_L1_error;}
24208
24209 /* "rados.pyx":1659
24210 * with nogil:
24211 * ret = rados_nobjects_list_open(ioctx.io, &self.ctx)
24212 * if ret < 0: # <<<<<<<<<<<<<<
24213 * raise make_ex(ret, "error iterating over the objects in ioctx '%s'"
24214 * % self.ioctx.name)
24215 */
24216 }
24217
24218 /* "rados.pyx":1654
24219 * cdef public object ioctx
24220 *
24221 * def __cinit__(self, Ioctx ioctx): # <<<<<<<<<<<<<<
24222 * self.ioctx = ioctx
24223 *
24224 */
24225
24226 /* function exit code */
24227 __pyx_r = 0;
24228 goto __pyx_L0;
24229 __pyx_L1_error:;
24230 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
24231 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
24232 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
24233 __Pyx_AddTraceback("rados.ObjectIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
24234 __pyx_r = -1;
24235 __pyx_L0:;
24236 __Pyx_RefNannyFinishContext();
24237 return __pyx_r;
24238}
24239
24240/* "rados.pyx":1663
24241 * % self.ioctx.name)
24242 *
24243 * def __iter__(self): # <<<<<<<<<<<<<<
24244 * return self
24245 *
24246 */
24247
24248/* Python wrapper */
24249static PyObject *__pyx_pw_5rados_14ObjectIterator_3__iter__(PyObject *__pyx_v_self); /*proto*/
24250static PyObject *__pyx_pw_5rados_14ObjectIterator_3__iter__(PyObject *__pyx_v_self) {
24251 PyObject *__pyx_r = 0;
24252 __Pyx_RefNannyDeclarations
24253 __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
24254 __pyx_r = __pyx_pf_5rados_14ObjectIterator_2__iter__(((struct __pyx_obj_5rados_ObjectIterator *)__pyx_v_self));
24255
24256 /* function exit code */
24257 __Pyx_RefNannyFinishContext();
24258 return __pyx_r;
24259}
24260
24261static PyObject *__pyx_pf_5rados_14ObjectIterator_2__iter__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self) {
24262 PyObject *__pyx_r = NULL((void*)0);
24263 __Pyx_RefNannyDeclarations
24264 __Pyx_RefNannySetupContext("__iter__", 0);
24265
24266 /* "rados.pyx":1664
24267 *
24268 * def __iter__(self):
24269 * return self # <<<<<<<<<<<<<<
24270 *
24271 * def __next__(self):
24272 */
24273 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
24274 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
24275 __pyx_r = ((PyObject *)__pyx_v_self);
24276 goto __pyx_L0;
24277
24278 /* "rados.pyx":1663
24279 * % self.ioctx.name)
24280 *
24281 * def __iter__(self): # <<<<<<<<<<<<<<
24282 * return self
24283 *
24284 */
24285
24286 /* function exit code */
24287 __pyx_L0:;
24288 __Pyx_XGIVEREF(__pyx_r);
24289 __Pyx_RefNannyFinishContext();
24290 return __pyx_r;
24291}
24292
24293/* "rados.pyx":1666
24294 * return self
24295 *
24296 * def __next__(self): # <<<<<<<<<<<<<<
24297 * """
24298 * Get the next object name and locator in the pool
24299 */
24300
24301/* Python wrapper */
24302static PyObject *__pyx_pw_5rados_14ObjectIterator_5__next__(PyObject *__pyx_v_self); /*proto*/
24303static char __pyx_doc_5rados_14ObjectIterator_4__next__[] = "\n Get the next object name and locator in the pool\n\n :raises: StopIteration\n :returns: next rados.Ioctx Object\n ";
24304#if CYTHON_COMPILING_IN_CPYTHON1
24305struct wrapperbase __pyx_wrapperbase_5rados_14ObjectIterator_4__next__;
24306#endif
24307static PyObject *__pyx_pw_5rados_14ObjectIterator_5__next__(PyObject *__pyx_v_self) {
24308 PyObject *__pyx_r = 0;
24309 __Pyx_RefNannyDeclarations
24310 __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
24311 __pyx_r = __pyx_pf_5rados_14ObjectIterator_4__next__(((struct __pyx_obj_5rados_ObjectIterator *)__pyx_v_self));
24312
24313 /* function exit code */
24314 __Pyx_RefNannyFinishContext();
24315 return __pyx_r;
24316}
24317
24318static PyObject *__pyx_pf_5rados_14ObjectIterator_4__next__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self) {
24319 char const *__pyx_v_key_;
24320 char const *__pyx_v_locator_;
24321 char const *__pyx_v_nspace_;
24322 int __pyx_v_ret;
24323 PyObject *__pyx_v_key = NULL((void*)0);
24324 PyObject *__pyx_v_locator = NULL((void*)0);
24325 PyObject *__pyx_v_nspace = NULL((void*)0);
24326 PyObject *__pyx_r = NULL((void*)0);
24327 __Pyx_RefNannyDeclarations
24328 int __pyx_t_1;
24329 PyObject *__pyx_t_2 = NULL((void*)0);
24330 PyObject *__pyx_t_3 = NULL((void*)0);
24331 PyObject *__pyx_t_4 = NULL((void*)0);
24332 PyObject *__pyx_t_5 = NULL((void*)0);
24333 PyObject *__pyx_t_6 = NULL((void*)0);
24334 PyObject *__pyx_t_7 = NULL((void*)0);
24335 Py_ssize_t __pyx_t_8;
24336 int __pyx_lineno = 0;
24337 const char *__pyx_filename = NULL((void*)0);
24338 int __pyx_clineno = 0;
24339 __Pyx_RefNannySetupContext("__next__", 0);
24340
24341 /* "rados.pyx":1674
24342 * """
24343 * cdef:
24344 * const char *key_ = NULL # <<<<<<<<<<<<<<
24345 * const char *locator_ = NULL
24346 * const char *nspace_ = NULL
24347 */
24348 __pyx_v_key_ = NULL((void*)0);
24349
24350 /* "rados.pyx":1675
24351 * cdef:
24352 * const char *key_ = NULL
24353 * const char *locator_ = NULL # <<<<<<<<<<<<<<
24354 * const char *nspace_ = NULL
24355 *
24356 */
24357 __pyx_v_locator_ = NULL((void*)0);
24358
24359 /* "rados.pyx":1676
24360 * const char *key_ = NULL
24361 * const char *locator_ = NULL
24362 * const char *nspace_ = NULL # <<<<<<<<<<<<<<
24363 *
24364 * with nogil:
24365 */
24366 __pyx_v_nspace_ = NULL((void*)0);
24367
24368 /* "rados.pyx":1678
24369 * const char *nspace_ = NULL
24370 *
24371 * with nogil: # <<<<<<<<<<<<<<
24372 * ret = rados_nobjects_list_next(self.ctx, &key_, &locator_, &nspace_)
24373 *
24374 */
24375 {
24376 #ifdef WITH_THREAD1
24377 PyThreadState *_save;
24378 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
24379 #endif
24380 /*try:*/ {
24381
24382 /* "rados.pyx":1679
24383 *
24384 * with nogil:
24385 * ret = rados_nobjects_list_next(self.ctx, &key_, &locator_, &nspace_) # <<<<<<<<<<<<<<
24386 *
24387 * if ret < 0:
24388 */
24389 __pyx_v_ret = rados_nobjects_list_next(__pyx_v_self->ctx, (&__pyx_v_key_), (&__pyx_v_locator_), (&__pyx_v_nspace_));
24390 }
24391
24392 /* "rados.pyx":1678
24393 * const char *nspace_ = NULL
24394 *
24395 * with nogil: # <<<<<<<<<<<<<<
24396 * ret = rados_nobjects_list_next(self.ctx, &key_, &locator_, &nspace_)
24397 *
24398 */
24399 /*finally:*/ {
24400 /*normal exit:*/{
24401 #ifdef WITH_THREAD1
24402 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
24403 #endif
24404 goto __pyx_L5;
24405 }
24406 __pyx_L5:;
24407 }
24408 }
24409
24410 /* "rados.pyx":1681
24411 * ret = rados_nobjects_list_next(self.ctx, &key_, &locator_, &nspace_)
24412 *
24413 * if ret < 0: # <<<<<<<<<<<<<<
24414 * raise StopIteration()
24415 *
24416 */
24417 __pyx_t_1 = ((__pyx_v_ret < 0) != 0);
24418 if (__pyx_t_1) {
24419
24420 /* "rados.pyx":1682
24421 *
24422 * if ret < 0:
24423 * raise StopIteration() # <<<<<<<<<<<<<<
24424 *
24425 * key = decode_cstr(key_)
24426 */
24427 __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_builtin_StopIteration); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1682; __pyx_clineno = __LINE__24427; goto __pyx_L1_error;}
24428 __Pyx_GOTREF(__pyx_t_2);
24429 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
24430 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
24431 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1682; __pyx_clineno = __LINE__24431; goto __pyx_L1_error;}
24432
24433 /* "rados.pyx":1681
24434 * ret = rados_nobjects_list_next(self.ctx, &key_, &locator_, &nspace_)
24435 *
24436 * if ret < 0: # <<<<<<<<<<<<<<
24437 * raise StopIteration()
24438 *
24439 */
24440 }
24441
24442 /* "rados.pyx":1684
24443 * raise StopIteration()
24444 *
24445 * key = decode_cstr(key_) # <<<<<<<<<<<<<<
24446 * locator = decode_cstr(locator_) if locator_ != NULL else None
24447 * nspace = decode_cstr(nspace_) if nspace_ != NULL else None
24448 */
24449 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__24449; goto __pyx_L1_error;}
24450 __Pyx_GOTREF(__pyx_t_3);
24451 __pyx_t_4 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_key_); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__24451; goto __pyx_L1_error;}
24452 __Pyx_GOTREF(__pyx_t_4);
24453 __pyx_t_5 = NULL((void*)0);
24454 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
24455 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
24456 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
24457 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
24458 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
24459 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
24460 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
24461 }
24462 }
24463 if (!__pyx_t_5) {
24464 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__24464; goto __pyx_L1_error;}
24465 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
24466 __Pyx_GOTREF(__pyx_t_2);
24467 } else {
24468 __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__24468; goto __pyx_L1_error;}
24469 __Pyx_GOTREF(__pyx_t_6);
24470 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
24471 __Pyx_GIVEREF(__pyx_t_4);
24472 PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+1] = __pyx_t_4);
24473 __pyx_t_4 = 0;
24474 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1684; __pyx_clineno = __LINE__24474; goto __pyx_L1_error;}
24475 __Pyx_GOTREF(__pyx_t_2);
24476 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
24477 }
24478 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
24479 __pyx_v_key = __pyx_t_2;
24480 __pyx_t_2 = 0;
24481
24482 /* "rados.pyx":1685
24483 *
24484 * key = decode_cstr(key_)
24485 * locator = decode_cstr(locator_) if locator_ != NULL else None # <<<<<<<<<<<<<<
24486 * nspace = decode_cstr(nspace_) if nspace_ != NULL else None
24487 * return Object(self.ioctx, key, locator, nspace)
24488 */
24489 if (((__pyx_v_locator_ != NULL((void*)0)) != 0)) {
24490 __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__24490; goto __pyx_L1_error;}
24491 __Pyx_GOTREF(__pyx_t_6);
24492 __pyx_t_4 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_locator_); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__24492; goto __pyx_L1_error;}
24493 __Pyx_GOTREF(__pyx_t_4);
24494 __pyx_t_5 = NULL((void*)0);
24495 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_6))__builtin_expect(!!(((__pyx_t_6)->ob_type == &PyMethod_Type
)), 0)
) {
24496 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_self);
24497 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
24498 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_func);
24499 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
24500 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
24501 __Pyx_DECREF_SET(__pyx_t_6, function)do { PyObject *tmp = (PyObject *) __pyx_t_6; __pyx_t_6 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
24502 }
24503 }
24504 if (!__pyx_t_5) {
24505 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__24505; goto __pyx_L1_error;}
24506 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
24507 __Pyx_GOTREF(__pyx_t_3);
24508 } else {
24509 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__24509; goto __pyx_L1_error;}
24510 __Pyx_GOTREF(__pyx_t_7);
24511 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
24512 __Pyx_GIVEREF(__pyx_t_4);
24513 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_4)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_4);
24514 __pyx_t_4 = 0;
24515 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1685; __pyx_clineno = __LINE__24515; goto __pyx_L1_error;}
24516 __Pyx_GOTREF(__pyx_t_3);
24517 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
24518 }
24519 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
24520 __pyx_t_2 = __pyx_t_3;
24521 __pyx_t_3 = 0;
24522 } else {
24523 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
24524 __pyx_t_2 = Py_None(&_Py_NoneStruct);
24525 }
24526 __pyx_v_locator = __pyx_t_2;
24527 __pyx_t_2 = 0;
24528
24529 /* "rados.pyx":1686
24530 * key = decode_cstr(key_)
24531 * locator = decode_cstr(locator_) if locator_ != NULL else None
24532 * nspace = decode_cstr(nspace_) if nspace_ != NULL else None # <<<<<<<<<<<<<<
24533 * return Object(self.ioctx, key, locator, nspace)
24534 *
24535 */
24536 if (((__pyx_v_nspace_ != NULL((void*)0)) != 0)) {
24537 __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__24537; goto __pyx_L1_error;}
24538 __Pyx_GOTREF(__pyx_t_6);
24539 __pyx_t_7 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_nspace_); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__24539; goto __pyx_L1_error;}
24540 __Pyx_GOTREF(__pyx_t_7);
24541 __pyx_t_4 = NULL((void*)0);
24542 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_6))__builtin_expect(!!(((__pyx_t_6)->ob_type == &PyMethod_Type
)), 0)
) {
24543 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_self);
24544 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
24545 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_func);
24546 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
24547 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
24548 __Pyx_DECREF_SET(__pyx_t_6, function)do { PyObject *tmp = (PyObject *) __pyx_t_6; __pyx_t_6 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
24549 }
24550 }
24551 if (!__pyx_t_4) {
24552 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__24552; goto __pyx_L1_error;}
24553 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
24554 __Pyx_GOTREF(__pyx_t_3);
24555 } else {
24556 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__24556; goto __pyx_L1_error;}
24557 __Pyx_GOTREF(__pyx_t_5);
24558 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
24559 __Pyx_GIVEREF(__pyx_t_7);
24560 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_7)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_t_7);
24561 __pyx_t_7 = 0;
24562 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1686; __pyx_clineno = __LINE__24562; goto __pyx_L1_error;}
24563 __Pyx_GOTREF(__pyx_t_3);
24564 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
24565 }
24566 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
24567 __pyx_t_2 = __pyx_t_3;
24568 __pyx_t_3 = 0;
24569 } else {
24570 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
24571 __pyx_t_2 = Py_None(&_Py_NoneStruct);
24572 }
24573 __pyx_v_nspace = __pyx_t_2;
24574 __pyx_t_2 = 0;
24575
24576 /* "rados.pyx":1687
24577 * locator = decode_cstr(locator_) if locator_ != NULL else None
24578 * nspace = decode_cstr(nspace_) if nspace_ != NULL else None
24579 * return Object(self.ioctx, key, locator, nspace) # <<<<<<<<<<<<<<
24580 *
24581 * def __dealloc__(self):
24582 */
24583 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
24584 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_Object); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__24584; goto __pyx_L1_error;}
24585 __Pyx_GOTREF(__pyx_t_3);
24586 __pyx_t_6 = NULL((void*)0);
24587 __pyx_t_8 = 0;
24588 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
24589 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
24590 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
24591 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
24592 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
24593 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
24594 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
24595 __pyx_t_8 = 1;
24596 }
24597 }
24598 __pyx_t_5 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__24598; goto __pyx_L1_error;}
24599 __Pyx_GOTREF(__pyx_t_5);
24600 if (__pyx_t_6) {
24601 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
24602 }
24603 __Pyx_INCREF(__pyx_v_self->ioctx)( ((PyObject*)(__pyx_v_self->ioctx))->ob_refcnt++);
24604 __Pyx_GIVEREF(__pyx_v_self->ioctx);
24605 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_self->ioctx)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_8] = __pyx_v_self
->ioctx)
;
24606 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
24607 __Pyx_GIVEREF(__pyx_v_key);
24608 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_8] = __pyx_v_key
)
;
24609 __Pyx_INCREF(__pyx_v_locator)( ((PyObject*)(__pyx_v_locator))->ob_refcnt++);
24610 __Pyx_GIVEREF(__pyx_v_locator);
24611 PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_v_locator)(((PyTupleObject *)(__pyx_t_5))->ob_item[2+__pyx_t_8] = __pyx_v_locator
)
;
24612 __Pyx_INCREF(__pyx_v_nspace)( ((PyObject*)(__pyx_v_nspace))->ob_refcnt++);
24613 __Pyx_GIVEREF(__pyx_v_nspace);
24614 PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_v_nspace)(((PyTupleObject *)(__pyx_t_5))->ob_item[3+__pyx_t_8] = __pyx_v_nspace
)
;
24615 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__24615; goto __pyx_L1_error;}
24616 __Pyx_GOTREF(__pyx_t_2);
24617 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
24618 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
24619 __pyx_r = __pyx_t_2;
24620 __pyx_t_2 = 0;
24621 goto __pyx_L0;
24622
24623 /* "rados.pyx":1666
24624 * return self
24625 *
24626 * def __next__(self): # <<<<<<<<<<<<<<
24627 * """
24628 * Get the next object name and locator in the pool
24629 */
24630
24631 /* function exit code */
24632 __pyx_L1_error:;
24633 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
24634 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
24635 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
24636 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
24637 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
24638 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
24639 __Pyx_AddTraceback("rados.ObjectIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
24640 __pyx_r = NULL((void*)0);
24641 __pyx_L0:;
24642 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
24643 __Pyx_XDECREF(__pyx_v_locator)do { if ((__pyx_v_locator) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_locator))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_locator)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_locator)))); } while
(0); } while (0)
;
24644 __Pyx_XDECREF(__pyx_v_nspace)do { if ((__pyx_v_nspace) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_nspace))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_nspace)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_nspace)))); } while
(0); } while (0)
;
24645 __Pyx_XGIVEREF(__pyx_r);
24646 __Pyx_RefNannyFinishContext();
24647 return __pyx_r;
24648}
24649
24650/* "rados.pyx":1689
24651 * return Object(self.ioctx, key, locator, nspace)
24652 *
24653 * def __dealloc__(self): # <<<<<<<<<<<<<<
24654 * with nogil:
24655 * rados_nobjects_list_close(self.ctx)
24656 */
24657
24658/* Python wrapper */
24659static void __pyx_pw_5rados_14ObjectIterator_7__dealloc__(PyObject *__pyx_v_self); /*proto*/
24660static void __pyx_pw_5rados_14ObjectIterator_7__dealloc__(PyObject *__pyx_v_self) {
24661 __Pyx_RefNannyDeclarations
24662 __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
24663 __pyx_pf_5rados_14ObjectIterator_6__dealloc__(((struct __pyx_obj_5rados_ObjectIterator *)__pyx_v_self));
24664
24665 /* function exit code */
24666 __Pyx_RefNannyFinishContext();
24667}
24668
24669static void __pyx_pf_5rados_14ObjectIterator_6__dealloc__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self) {
24670 __Pyx_RefNannyDeclarations
24671 __Pyx_RefNannySetupContext("__dealloc__", 0);
24672
24673 /* "rados.pyx":1690
24674 *
24675 * def __dealloc__(self):
24676 * with nogil: # <<<<<<<<<<<<<<
24677 * rados_nobjects_list_close(self.ctx)
24678 *
24679 */
24680 {
24681 #ifdef WITH_THREAD1
24682 PyThreadState *_save;
24683 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
24684 #endif
24685 /*try:*/ {
24686
24687 /* "rados.pyx":1691
24688 * def __dealloc__(self):
24689 * with nogil:
24690 * rados_nobjects_list_close(self.ctx) # <<<<<<<<<<<<<<
24691 *
24692 *
24693 */
24694 rados_nobjects_list_close(__pyx_v_self->ctx);
24695 }
24696
24697 /* "rados.pyx":1690
24698 *
24699 * def __dealloc__(self):
24700 * with nogil: # <<<<<<<<<<<<<<
24701 * rados_nobjects_list_close(self.ctx)
24702 *
24703 */
24704 /*finally:*/ {
24705 /*normal exit:*/{
24706 #ifdef WITH_THREAD1
24707 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
24708 #endif
24709 goto __pyx_L5;
24710 }
24711 __pyx_L5:;
24712 }
24713 }
24714
24715 /* "rados.pyx":1689
24716 * return Object(self.ioctx, key, locator, nspace)
24717 *
24718 * def __dealloc__(self): # <<<<<<<<<<<<<<
24719 * with nogil:
24720 * rados_nobjects_list_close(self.ctx)
24721 */
24722
24723 /* function exit code */
24724 __Pyx_RefNannyFinishContext();
24725}
24726
24727/* "rados.pyx":1652
24728 * cdef rados_list_ctx_t ctx
24729 *
24730 * cdef public object ioctx # <<<<<<<<<<<<<<
24731 *
24732 * def __cinit__(self, Ioctx ioctx):
24733 */
24734
24735/* Python wrapper */
24736static PyObject *__pyx_pw_5rados_14ObjectIterator_5ioctx_1__get__(PyObject *__pyx_v_self); /*proto*/
24737static PyObject *__pyx_pw_5rados_14ObjectIterator_5ioctx_1__get__(PyObject *__pyx_v_self) {
24738 PyObject *__pyx_r = 0;
24739 __Pyx_RefNannyDeclarations
24740 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
24741 __pyx_r = __pyx_pf_5rados_14ObjectIterator_5ioctx___get__(((struct __pyx_obj_5rados_ObjectIterator *)__pyx_v_self));
24742
24743 /* function exit code */
24744 __Pyx_RefNannyFinishContext();
24745 return __pyx_r;
24746}
24747
24748static PyObject *__pyx_pf_5rados_14ObjectIterator_5ioctx___get__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self) {
24749 PyObject *__pyx_r = NULL((void*)0);
24750 __Pyx_RefNannyDeclarations
24751 __Pyx_RefNannySetupContext("__get__", 0);
24752 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
24753 __Pyx_INCREF(__pyx_v_self->ioctx)( ((PyObject*)(__pyx_v_self->ioctx))->ob_refcnt++);
24754 __pyx_r = __pyx_v_self->ioctx;
24755 goto __pyx_L0;
24756
24757 /* function exit code */
24758 __pyx_L0:;
24759 __Pyx_XGIVEREF(__pyx_r);
24760 __Pyx_RefNannyFinishContext();
24761 return __pyx_r;
24762}
24763
24764/* Python wrapper */
24765static int __pyx_pw_5rados_14ObjectIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
24766static int __pyx_pw_5rados_14ObjectIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
24767 int __pyx_r;
24768 __Pyx_RefNannyDeclarations
24769 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
24770 __pyx_r = __pyx_pf_5rados_14ObjectIterator_5ioctx_2__set__(((struct __pyx_obj_5rados_ObjectIterator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
24771
24772 /* function exit code */
24773 __Pyx_RefNannyFinishContext();
24774 return __pyx_r;
24775}
24776
24777static int __pyx_pf_5rados_14ObjectIterator_5ioctx_2__set__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self, PyObject *__pyx_v_value) {
24778 int __pyx_r;
24779 __Pyx_RefNannyDeclarations
24780 __Pyx_RefNannySetupContext("__set__", 0);
24781 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
24782 __Pyx_GIVEREF(__pyx_v_value);
24783 __Pyx_GOTREF(__pyx_v_self->ioctx);
24784 __Pyx_DECREF(__pyx_v_self->ioctx)do { if ( --((PyObject*)(__pyx_v_self->ioctx))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
ioctx)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->ioctx)))); } while (0)
;
24785 __pyx_v_self->ioctx = __pyx_v_value;
24786
24787 /* function exit code */
24788 __pyx_r = 0;
24789 __Pyx_RefNannyFinishContext();
24790 return __pyx_r;
24791}
24792
24793/* Python wrapper */
24794static int __pyx_pw_5rados_14ObjectIterator_5ioctx_5__del__(PyObject *__pyx_v_self); /*proto*/
24795static int __pyx_pw_5rados_14ObjectIterator_5ioctx_5__del__(PyObject *__pyx_v_self) {
24796 int __pyx_r;
24797 __Pyx_RefNannyDeclarations
24798 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
24799 __pyx_r = __pyx_pf_5rados_14ObjectIterator_5ioctx_4__del__(((struct __pyx_obj_5rados_ObjectIterator *)__pyx_v_self));
24800
24801 /* function exit code */
24802 __Pyx_RefNannyFinishContext();
24803 return __pyx_r;
24804}
24805
24806static int __pyx_pf_5rados_14ObjectIterator_5ioctx_4__del__(struct __pyx_obj_5rados_ObjectIterator *__pyx_v_self) {
24807 int __pyx_r;
24808 __Pyx_RefNannyDeclarations
24809 __Pyx_RefNannySetupContext("__del__", 0);
24810 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
24811 __Pyx_GIVEREF(Py_None);
24812 __Pyx_GOTREF(__pyx_v_self->ioctx);
24813 __Pyx_DECREF(__pyx_v_self->ioctx)do { if ( --((PyObject*)(__pyx_v_self->ioctx))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
ioctx)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->ioctx)))); } while (0)
;
24814 __pyx_v_self->ioctx = Py_None(&_Py_NoneStruct);
24815
24816 /* function exit code */
24817 __pyx_r = 0;
24818 __Pyx_RefNannyFinishContext();
24819 return __pyx_r;
24820}
24821
24822/* "rados.pyx":1703
24823 * cdef public object oid
24824 *
24825 * def __cinit__(self, Ioctx ioctx, oid): # <<<<<<<<<<<<<<
24826 * self.ioctx = ioctx
24827 * self.oid = cstr(oid, 'oid')
24828 */
24829
24830/* Python wrapper */
24831static int __pyx_pw_5rados_13XattrIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24832static int __pyx_pw_5rados_13XattrIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24833 struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx = 0;
24834 PyObject *__pyx_v_oid = 0;
24835 int __pyx_lineno = 0;
24836 const char *__pyx_filename = NULL((void*)0);
24837 int __pyx_clineno = 0;
24838 int __pyx_r;
24839 __Pyx_RefNannyDeclarations
24840 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
24841 {
24842 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ioctx,&__pyx_n_s_oid,0};
24843 PyObject* values[2] = {0,0};
24844 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
24845 Py_ssize_t kw_args;
24846 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
24847 switch (pos_args) {
24848 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
24849 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
24850 case 0: break;
24851 default: goto __pyx_L5_argtuple_error;
24852 }
24853 kw_args = PyDict_Size(__pyx_kwds);
24854 switch (pos_args) {
24855 case 0:
24856 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx
)) != 0), 1)
) kw_args--;
24857 else goto __pyx_L5_argtuple_error;
24858 case 1:
24859 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid
)) != 0), 1)
) kw_args--;
24860 else {
24861 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1703; __pyx_clineno = __LINE__24861; goto __pyx_L3_error;}
24862 }
24863 }
24864 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
24865 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__cinit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1703; __pyx_clineno = __LINE__24865; goto __pyx_L3_error;}
24866 }
24867 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
24868 goto __pyx_L5_argtuple_error;
24869 } else {
24870 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
24871 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
24872 }
24873 __pyx_v_ioctx = ((struct __pyx_obj_5rados_Ioctx *)values[0]);
24874 __pyx_v_oid = values[1];
24875 }
24876 goto __pyx_L4_argument_unpacking_done;
24877 __pyx_L5_argtuple_error:;
24878 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1703; __pyx_clineno = __LINE__24878; goto __pyx_L3_error;}
24879 __pyx_L3_error:;
24880 __Pyx_AddTraceback("rados.XattrIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
24881 __Pyx_RefNannyFinishContext();
24882 return -1;
24883 __pyx_L4_argument_unpacking_done:;
24884 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0))__builtin_expect(!!(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx
), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1703; __pyx_clineno = __LINE__24884; goto __pyx_L1_error;}
Value stored to '__pyx_filename' is never read
24885 __pyx_r = __pyx_pf_5rados_13XattrIterator___cinit__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self), __pyx_v_ioctx, __pyx_v_oid);
24886
24887 /* function exit code */
24888 goto __pyx_L0;
24889 __pyx_L1_error:;
24890 __pyx_r = -1;
24891 __pyx_L0:;
24892 __Pyx_RefNannyFinishContext();
24893 return __pyx_r;
24894}
24895
24896static int __pyx_pf_5rados_13XattrIterator___cinit__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx, PyObject *__pyx_v_oid) {
24897 int __pyx_v_ret;
24898 int __pyx_r;
24899 __Pyx_RefNannyDeclarations
24900 PyObject *__pyx_t_1 = NULL((void*)0);
24901 PyObject *__pyx_t_2 = NULL((void*)0);
24902 PyObject *__pyx_t_3 = NULL((void*)0);
24903 Py_ssize_t __pyx_t_4;
24904 PyObject *__pyx_t_5 = NULL((void*)0);
24905 char *__pyx_t_6;
24906 int __pyx_t_7;
24907 int __pyx_lineno = 0;
24908 const char *__pyx_filename = NULL((void*)0);
24909 int __pyx_clineno = 0;
24910 __Pyx_RefNannySetupContext("__cinit__", 0);
24911
24912 /* "rados.pyx":1704
24913 *
24914 * def __cinit__(self, Ioctx ioctx, oid):
24915 * self.ioctx = ioctx # <<<<<<<<<<<<<<
24916 * self.oid = cstr(oid, 'oid')
24917 * self._oid = self.oid
24918 */
24919 __Pyx_INCREF(((PyObject *)__pyx_v_ioctx))( ((PyObject*)(((PyObject *)__pyx_v_ioctx)))->ob_refcnt++);
24920 __Pyx_GIVEREF(((PyObject *)__pyx_v_ioctx));
24921 __Pyx_GOTREF(__pyx_v_self->ioctx);
24922 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
24923 __pyx_v_self->ioctx = __pyx_v_ioctx;
24924
24925 /* "rados.pyx":1705
24926 * def __cinit__(self, Ioctx ioctx, oid):
24927 * self.ioctx = ioctx
24928 * self.oid = cstr(oid, 'oid') # <<<<<<<<<<<<<<
24929 * self._oid = self.oid
24930 *
24931 */
24932 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__24932; goto __pyx_L1_error;}
24933 __Pyx_GOTREF(__pyx_t_2);
24934 __pyx_t_3 = NULL((void*)0);
24935 __pyx_t_4 = 0;
24936 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
24937 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
24938 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
24939 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
24940 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
24941 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
24942 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
24943 __pyx_t_4 = 1;
24944 }
24945 }
24946 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__24946; goto __pyx_L1_error;}
24947 __Pyx_GOTREF(__pyx_t_5);
24948 if (__pyx_t_3) {
24949 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
24950 }
24951 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
24952 __Pyx_GIVEREF(__pyx_v_oid);
24953 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_oid
)
;
24954 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
24955 __Pyx_GIVEREF(__pyx_n_s_oid);
24956 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_oid
)
;
24957 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__24957; goto __pyx_L1_error;}
24958 __Pyx_GOTREF(__pyx_t_1);
24959 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
24960 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
24961 __Pyx_GIVEREF(__pyx_t_1);
24962 __Pyx_GOTREF(__pyx_v_self->oid);
24963 __Pyx_DECREF(__pyx_v_self->oid)do { if ( --((PyObject*)(__pyx_v_self->oid))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
oid)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)
(__pyx_v_self->oid)))); } while (0)
;
24964 __pyx_v_self->oid = __pyx_t_1;
24965 __pyx_t_1 = 0;
24966
24967 /* "rados.pyx":1706
24968 * self.ioctx = ioctx
24969 * self.oid = cstr(oid, 'oid')
24970 * self._oid = self.oid # <<<<<<<<<<<<<<
24971 *
24972 * with nogil:
24973 */
24974 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_self->oid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1706; __pyx_clineno = __LINE__24974; goto __pyx_L1_error;}
24975 __pyx_v_self->_oid = __pyx_t_6;
24976
24977 /* "rados.pyx":1708
24978 * self._oid = self.oid
24979 *
24980 * with nogil: # <<<<<<<<<<<<<<
24981 * ret = rados_getxattrs(ioctx.io, self._oid, &self.it)
24982 * if ret != 0:
24983 */
24984 {
24985 #ifdef WITH_THREAD1
24986 PyThreadState *_save;
24987 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
24988 #endif
24989 /*try:*/ {
24990
24991 /* "rados.pyx":1709
24992 *
24993 * with nogil:
24994 * ret = rados_getxattrs(ioctx.io, self._oid, &self.it) # <<<<<<<<<<<<<<
24995 * if ret != 0:
24996 * raise make_ex(ret, "Failed to get rados xattrs for object %r" % oid)
24997 */
24998 __pyx_v_ret = rados_getxattrs(__pyx_v_ioctx->io, __pyx_v_self->_oid, (&__pyx_v_self->it));
24999 }
25000
25001 /* "rados.pyx":1708
25002 * self._oid = self.oid
25003 *
25004 * with nogil: # <<<<<<<<<<<<<<
25005 * ret = rados_getxattrs(ioctx.io, self._oid, &self.it)
25006 * if ret != 0:
25007 */
25008 /*finally:*/ {
25009 /*normal exit:*/{
25010 #ifdef WITH_THREAD1
25011 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
25012 #endif
25013 goto __pyx_L5;
25014 }
25015 __pyx_L5:;
25016 }
25017 }
25018
25019 /* "rados.pyx":1710
25020 * with nogil:
25021 * ret = rados_getxattrs(ioctx.io, self._oid, &self.it)
25022 * if ret != 0: # <<<<<<<<<<<<<<
25023 * raise make_ex(ret, "Failed to get rados xattrs for object %r" % oid)
25024 *
25025 */
25026 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
25027 if (__pyx_t_7) {
25028
25029 /* "rados.pyx":1711
25030 * ret = rados_getxattrs(ioctx.io, self._oid, &self.it)
25031 * if ret != 0:
25032 * raise make_ex(ret, "Failed to get rados xattrs for object %r" % oid) # <<<<<<<<<<<<<<
25033 *
25034 * def __iter__(self):
25035 */
25036 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__25036; goto __pyx_L1_error;}
25037 __Pyx_GOTREF(__pyx_t_1);
25038 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_get_rados_xattrs_for_o, __pyx_v_oid)PyString_Format(__pyx_kp_s_Failed_to_get_rados_xattrs_for_o, __pyx_v_oid
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__25038; goto __pyx_L1_error;}
25039 __Pyx_GOTREF(__pyx_t_2);
25040 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__25040; goto __pyx_L1_error;}
25041 __Pyx_GOTREF(__pyx_t_5);
25042 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
25043 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
25044 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
25045 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
25046 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__25046; goto __pyx_L1_error;}
25047
25048 /* "rados.pyx":1710
25049 * with nogil:
25050 * ret = rados_getxattrs(ioctx.io, self._oid, &self.it)
25051 * if ret != 0: # <<<<<<<<<<<<<<
25052 * raise make_ex(ret, "Failed to get rados xattrs for object %r" % oid)
25053 *
25054 */
25055 }
25056
25057 /* "rados.pyx":1703
25058 * cdef public object oid
25059 *
25060 * def __cinit__(self, Ioctx ioctx, oid): # <<<<<<<<<<<<<<
25061 * self.ioctx = ioctx
25062 * self.oid = cstr(oid, 'oid')
25063 */
25064
25065 /* function exit code */
25066 __pyx_r = 0;
25067 goto __pyx_L0;
25068 __pyx_L1_error:;
25069 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
25070 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
25071 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
25072 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
25073 __Pyx_AddTraceback("rados.XattrIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25074 __pyx_r = -1;
25075 __pyx_L0:;
25076 __Pyx_RefNannyFinishContext();
25077 return __pyx_r;
25078}
25079
25080/* "rados.pyx":1713
25081 * raise make_ex(ret, "Failed to get rados xattrs for object %r" % oid)
25082 *
25083 * def __iter__(self): # <<<<<<<<<<<<<<
25084 * return self
25085 *
25086 */
25087
25088/* Python wrapper */
25089static PyObject *__pyx_pw_5rados_13XattrIterator_3__iter__(PyObject *__pyx_v_self); /*proto*/
25090static PyObject *__pyx_pw_5rados_13XattrIterator_3__iter__(PyObject *__pyx_v_self) {
25091 PyObject *__pyx_r = 0;
25092 __Pyx_RefNannyDeclarations
25093 __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
25094 __pyx_r = __pyx_pf_5rados_13XattrIterator_2__iter__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self));
25095
25096 /* function exit code */
25097 __Pyx_RefNannyFinishContext();
25098 return __pyx_r;
25099}
25100
25101static PyObject *__pyx_pf_5rados_13XattrIterator_2__iter__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self) {
25102 PyObject *__pyx_r = NULL((void*)0);
25103 __Pyx_RefNannyDeclarations
25104 __Pyx_RefNannySetupContext("__iter__", 0);
25105
25106 /* "rados.pyx":1714
25107 *
25108 * def __iter__(self):
25109 * return self # <<<<<<<<<<<<<<
25110 *
25111 * def __next__(self):
25112 */
25113 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
25114 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
25115 __pyx_r = ((PyObject *)__pyx_v_self);
25116 goto __pyx_L0;
25117
25118 /* "rados.pyx":1713
25119 * raise make_ex(ret, "Failed to get rados xattrs for object %r" % oid)
25120 *
25121 * def __iter__(self): # <<<<<<<<<<<<<<
25122 * return self
25123 *
25124 */
25125
25126 /* function exit code */
25127 __pyx_L0:;
25128 __Pyx_XGIVEREF(__pyx_r);
25129 __Pyx_RefNannyFinishContext();
25130 return __pyx_r;
25131}
25132
25133/* "rados.pyx":1716
25134 * return self
25135 *
25136 * def __next__(self): # <<<<<<<<<<<<<<
25137 * """
25138 * Get the next xattr on the object
25139 */
25140
25141/* Python wrapper */
25142static PyObject *__pyx_pw_5rados_13XattrIterator_5__next__(PyObject *__pyx_v_self); /*proto*/
25143static char __pyx_doc_5rados_13XattrIterator_4__next__[] = "\n Get the next xattr on the object\n\n :raises: StopIteration\n :returns: pair - of name and value of the next Xattr\n ";
25144#if CYTHON_COMPILING_IN_CPYTHON1
25145struct wrapperbase __pyx_wrapperbase_5rados_13XattrIterator_4__next__;
25146#endif
25147static PyObject *__pyx_pw_5rados_13XattrIterator_5__next__(PyObject *__pyx_v_self) {
25148 PyObject *__pyx_r = 0;
25149 __Pyx_RefNannyDeclarations
25150 __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
25151 __pyx_r = __pyx_pf_5rados_13XattrIterator_4__next__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self));
25152
25153 /* function exit code */
25154 __Pyx_RefNannyFinishContext();
25155 return __pyx_r;
25156}
25157
25158static PyObject *__pyx_pf_5rados_13XattrIterator_4__next__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self) {
25159 char const *__pyx_v_name_;
25160 char const *__pyx_v_val_;
25161 size_t __pyx_v_len_;
25162 int __pyx_v_ret;
25163 PyObject *__pyx_v_name = NULL((void*)0);
25164 PyObject *__pyx_v_val = NULL((void*)0);
25165 PyObject *__pyx_r = NULL((void*)0);
25166 __Pyx_RefNannyDeclarations
25167 int __pyx_t_1;
25168 PyObject *__pyx_t_2 = NULL((void*)0);
25169 PyObject *__pyx_t_3 = NULL((void*)0);
25170 PyObject *__pyx_t_4 = NULL((void*)0);
25171 PyObject *__pyx_t_5 = NULL((void*)0);
25172 PyObject *__pyx_t_6 = NULL((void*)0);
25173 int __pyx_lineno = 0;
25174 const char *__pyx_filename = NULL((void*)0);
25175 int __pyx_clineno = 0;
25176 __Pyx_RefNannySetupContext("__next__", 0);
25177
25178 /* "rados.pyx":1724
25179 * """
25180 * cdef:
25181 * const char *name_ = NULL # <<<<<<<<<<<<<<
25182 * const char *val_ = NULL
25183 * size_t len_ = 0
25184 */
25185 __pyx_v_name_ = NULL((void*)0);
25186
25187 /* "rados.pyx":1725
25188 * cdef:
25189 * const char *name_ = NULL
25190 * const char *val_ = NULL # <<<<<<<<<<<<<<
25191 * size_t len_ = 0
25192 *
25193 */
25194 __pyx_v_val_ = NULL((void*)0);
25195
25196 /* "rados.pyx":1726
25197 * const char *name_ = NULL
25198 * const char *val_ = NULL
25199 * size_t len_ = 0 # <<<<<<<<<<<<<<
25200 *
25201 * with nogil:
25202 */
25203 __pyx_v_len_ = 0;
25204
25205 /* "rados.pyx":1728
25206 * size_t len_ = 0
25207 *
25208 * with nogil: # <<<<<<<<<<<<<<
25209 * ret = rados_getxattrs_next(self.it, &name_, &val_, &len_)
25210 * if ret != 0:
25211 */
25212 {
25213 #ifdef WITH_THREAD1
25214 PyThreadState *_save;
25215 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
25216 #endif
25217 /*try:*/ {
25218
25219 /* "rados.pyx":1729
25220 *
25221 * with nogil:
25222 * ret = rados_getxattrs_next(self.it, &name_, &val_, &len_) # <<<<<<<<<<<<<<
25223 * if ret != 0:
25224 * raise make_ex(ret, "error iterating over the extended attributes \
25225 */
25226 __pyx_v_ret = rados_getxattrs_next(__pyx_v_self->it, (&__pyx_v_name_), (&__pyx_v_val_), (&__pyx_v_len_));
25227 }
25228
25229 /* "rados.pyx":1728
25230 * size_t len_ = 0
25231 *
25232 * with nogil: # <<<<<<<<<<<<<<
25233 * ret = rados_getxattrs_next(self.it, &name_, &val_, &len_)
25234 * if ret != 0:
25235 */
25236 /*finally:*/ {
25237 /*normal exit:*/{
25238 #ifdef WITH_THREAD1
25239 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
25240 #endif
25241 goto __pyx_L5;
25242 }
25243 __pyx_L5:;
25244 }
25245 }
25246
25247 /* "rados.pyx":1730
25248 * with nogil:
25249 * ret = rados_getxattrs_next(self.it, &name_, &val_, &len_)
25250 * if ret != 0: # <<<<<<<<<<<<<<
25251 * raise make_ex(ret, "error iterating over the extended attributes \
25252 * in '%s'" % self.oid)
25253 */
25254 __pyx_t_1 = ((__pyx_v_ret != 0) != 0);
25255 if (__pyx_t_1) {
25256
25257 /* "rados.pyx":1731
25258 * ret = rados_getxattrs_next(self.it, &name_, &val_, &len_)
25259 * if ret != 0:
25260 * raise make_ex(ret, "error iterating over the extended attributes \ # <<<<<<<<<<<<<<
25261 * in '%s'" % self.oid)
25262 * if name_ == NULL:
25263 */
25264 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__25264; goto __pyx_L1_error;}
25265 __Pyx_GOTREF(__pyx_t_2);
25266
25267 /* "rados.pyx":1732
25268 * if ret != 0:
25269 * raise make_ex(ret, "error iterating over the extended attributes \
25270 * in '%s'" % self.oid) # <<<<<<<<<<<<<<
25271 * if name_ == NULL:
25272 * raise StopIteration()
25273 */
25274 __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_error_iterating_over_the_extende, __pyx_v_self->oid)PyString_Format(__pyx_kp_s_error_iterating_over_the_extende, __pyx_v_self
->oid)
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__25274; goto __pyx_L1_error;}
25275 __Pyx_GOTREF(__pyx_t_3);
25276
25277 /* "rados.pyx":1731
25278 * ret = rados_getxattrs_next(self.it, &name_, &val_, &len_)
25279 * if ret != 0:
25280 * raise make_ex(ret, "error iterating over the extended attributes \ # <<<<<<<<<<<<<<
25281 * in '%s'" % self.oid)
25282 * if name_ == NULL:
25283 */
25284 __pyx_t_4 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__25284; goto __pyx_L1_error;}
25285 __Pyx_GOTREF(__pyx_t_4);
25286 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
25287 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
25288 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
25289 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
25290 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__25290; goto __pyx_L1_error;}
25291
25292 /* "rados.pyx":1730
25293 * with nogil:
25294 * ret = rados_getxattrs_next(self.it, &name_, &val_, &len_)
25295 * if ret != 0: # <<<<<<<<<<<<<<
25296 * raise make_ex(ret, "error iterating over the extended attributes \
25297 * in '%s'" % self.oid)
25298 */
25299 }
25300
25301 /* "rados.pyx":1733
25302 * raise make_ex(ret, "error iterating over the extended attributes \
25303 * in '%s'" % self.oid)
25304 * if name_ == NULL: # <<<<<<<<<<<<<<
25305 * raise StopIteration()
25306 * name = decode_cstr(name_)
25307 */
25308 __pyx_t_1 = ((__pyx_v_name_ == NULL((void*)0)) != 0);
25309 if (__pyx_t_1) {
25310
25311 /* "rados.pyx":1734
25312 * in '%s'" % self.oid)
25313 * if name_ == NULL:
25314 * raise StopIteration() # <<<<<<<<<<<<<<
25315 * name = decode_cstr(name_)
25316 * val = val_[:len_]
25317 */
25318 __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_builtin_StopIteration); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1734; __pyx_clineno = __LINE__25318; goto __pyx_L1_error;}
25319 __Pyx_GOTREF(__pyx_t_4);
25320 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
25321 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
25322 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1734; __pyx_clineno = __LINE__25322; goto __pyx_L1_error;}
25323
25324 /* "rados.pyx":1733
25325 * raise make_ex(ret, "error iterating over the extended attributes \
25326 * in '%s'" % self.oid)
25327 * if name_ == NULL: # <<<<<<<<<<<<<<
25328 * raise StopIteration()
25329 * name = decode_cstr(name_)
25330 */
25331 }
25332
25333 /* "rados.pyx":1735
25334 * if name_ == NULL:
25335 * raise StopIteration()
25336 * name = decode_cstr(name_) # <<<<<<<<<<<<<<
25337 * val = val_[:len_]
25338 * return (name, val)
25339 */
25340 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__25340; goto __pyx_L1_error;}
25341 __Pyx_GOTREF(__pyx_t_3);
25342 __pyx_t_2 = __Pyx_PyBytes_FromStringPyString_FromString(__pyx_v_name_); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__25342; goto __pyx_L1_error;}
25343 __Pyx_GOTREF(__pyx_t_2);
25344 __pyx_t_5 = NULL((void*)0);
25345 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
25346 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
25347 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
25348 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
25349 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
25350 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
25351 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
25352 }
25353 }
25354 if (!__pyx_t_5) {
25355 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__25355; goto __pyx_L1_error;}
25356 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
25357 __Pyx_GOTREF(__pyx_t_4);
25358 } else {
25359 __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__25359; goto __pyx_L1_error;}
25360 __Pyx_GOTREF(__pyx_t_6);
25361 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
25362 __Pyx_GIVEREF(__pyx_t_2);
25363 PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+1] = __pyx_t_2);
25364 __pyx_t_2 = 0;
25365 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__25365; goto __pyx_L1_error;}
25366 __Pyx_GOTREF(__pyx_t_4);
25367 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
25368 }
25369 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
25370 __pyx_v_name = __pyx_t_4;
25371 __pyx_t_4 = 0;
25372
25373 /* "rados.pyx":1736
25374 * raise StopIteration()
25375 * name = decode_cstr(name_)
25376 * val = val_[:len_] # <<<<<<<<<<<<<<
25377 * return (name, val)
25378 *
25379 */
25380 __pyx_t_4 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_val_ + 0, __pyx_v_len_ - 0); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1736; __pyx_clineno = __LINE__25380; goto __pyx_L1_error;}
25381 __Pyx_GOTREF(__pyx_t_4);
25382 __pyx_v_val = ((PyObject*)__pyx_t_4);
25383 __pyx_t_4 = 0;
25384
25385 /* "rados.pyx":1737
25386 * name = decode_cstr(name_)
25387 * val = val_[:len_]
25388 * return (name, val) # <<<<<<<<<<<<<<
25389 *
25390 * def __dealloc__(self):
25391 */
25392 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
25393 __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1737; __pyx_clineno = __LINE__25393; goto __pyx_L1_error;}
25394 __Pyx_GOTREF(__pyx_t_4);
25395 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
25396 __Pyx_GIVEREF(__pyx_v_name);
25397 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_v_name
)
;
25398 __Pyx_INCREF(__pyx_v_val)( ((PyObject*)(__pyx_v_val))->ob_refcnt++);
25399 __Pyx_GIVEREF(__pyx_v_val);
25400 PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_val)(((PyTupleObject *)(__pyx_t_4))->ob_item[1] = __pyx_v_val);
25401 __pyx_r = __pyx_t_4;
25402 __pyx_t_4 = 0;
25403 goto __pyx_L0;
25404
25405 /* "rados.pyx":1716
25406 * return self
25407 *
25408 * def __next__(self): # <<<<<<<<<<<<<<
25409 * """
25410 * Get the next xattr on the object
25411 */
25412
25413 /* function exit code */
25414 __pyx_L1_error:;
25415 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
25416 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
25417 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
25418 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
25419 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
25420 __Pyx_AddTraceback("rados.XattrIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25421 __pyx_r = NULL((void*)0);
25422 __pyx_L0:;
25423 __Pyx_XDECREF(__pyx_v_name)do { if ((__pyx_v_name) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_name))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_name)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_name)))); } while (0); } while
(0)
;
25424 __Pyx_XDECREF(__pyx_v_val)do { if ((__pyx_v_val) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_val))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_val)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_val)))); } while (0); } while (0)
;
25425 __Pyx_XGIVEREF(__pyx_r);
25426 __Pyx_RefNannyFinishContext();
25427 return __pyx_r;
25428}
25429
25430/* "rados.pyx":1739
25431 * return (name, val)
25432 *
25433 * def __dealloc__(self): # <<<<<<<<<<<<<<
25434 * with nogil:
25435 * rados_getxattrs_end(self.it)
25436 */
25437
25438/* Python wrapper */
25439static void __pyx_pw_5rados_13XattrIterator_7__dealloc__(PyObject *__pyx_v_self); /*proto*/
25440static void __pyx_pw_5rados_13XattrIterator_7__dealloc__(PyObject *__pyx_v_self) {
25441 __Pyx_RefNannyDeclarations
25442 __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
25443 __pyx_pf_5rados_13XattrIterator_6__dealloc__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self));
25444
25445 /* function exit code */
25446 __Pyx_RefNannyFinishContext();
25447}
25448
25449static void __pyx_pf_5rados_13XattrIterator_6__dealloc__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self) {
25450 __Pyx_RefNannyDeclarations
25451 __Pyx_RefNannySetupContext("__dealloc__", 0);
25452
25453 /* "rados.pyx":1740
25454 *
25455 * def __dealloc__(self):
25456 * with nogil: # <<<<<<<<<<<<<<
25457 * rados_getxattrs_end(self.it)
25458 *
25459 */
25460 {
25461 #ifdef WITH_THREAD1
25462 PyThreadState *_save;
25463 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
25464 #endif
25465 /*try:*/ {
25466
25467 /* "rados.pyx":1741
25468 * def __dealloc__(self):
25469 * with nogil:
25470 * rados_getxattrs_end(self.it) # <<<<<<<<<<<<<<
25471 *
25472 *
25473 */
25474 rados_getxattrs_end(__pyx_v_self->it);
25475 }
25476
25477 /* "rados.pyx":1740
25478 *
25479 * def __dealloc__(self):
25480 * with nogil: # <<<<<<<<<<<<<<
25481 * rados_getxattrs_end(self.it)
25482 *
25483 */
25484 /*finally:*/ {
25485 /*normal exit:*/{
25486 #ifdef WITH_THREAD1
25487 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
25488 #endif
25489 goto __pyx_L5;
25490 }
25491 __pyx_L5:;
25492 }
25493 }
25494
25495 /* "rados.pyx":1739
25496 * return (name, val)
25497 *
25498 * def __dealloc__(self): # <<<<<<<<<<<<<<
25499 * with nogil:
25500 * rados_getxattrs_end(self.it)
25501 */
25502
25503 /* function exit code */
25504 __Pyx_RefNannyFinishContext();
25505}
25506
25507/* "rados.pyx":1700
25508 * cdef char* _oid
25509 *
25510 * cdef public Ioctx ioctx # <<<<<<<<<<<<<<
25511 * cdef public object oid
25512 *
25513 */
25514
25515/* Python wrapper */
25516static PyObject *__pyx_pw_5rados_13XattrIterator_5ioctx_1__get__(PyObject *__pyx_v_self); /*proto*/
25517static PyObject *__pyx_pw_5rados_13XattrIterator_5ioctx_1__get__(PyObject *__pyx_v_self) {
25518 PyObject *__pyx_r = 0;
25519 __Pyx_RefNannyDeclarations
25520 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25521 __pyx_r = __pyx_pf_5rados_13XattrIterator_5ioctx___get__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self));
25522
25523 /* function exit code */
25524 __Pyx_RefNannyFinishContext();
25525 return __pyx_r;
25526}
25527
25528static PyObject *__pyx_pf_5rados_13XattrIterator_5ioctx___get__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self) {
25529 PyObject *__pyx_r = NULL((void*)0);
25530 __Pyx_RefNannyDeclarations
25531 __Pyx_RefNannySetupContext("__get__", 0);
25532 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
25533 __Pyx_INCREF(((PyObject *)__pyx_v_self->ioctx))( ((PyObject*)(((PyObject *)__pyx_v_self->ioctx)))->ob_refcnt
++)
;
25534 __pyx_r = ((PyObject *)__pyx_v_self->ioctx);
25535 goto __pyx_L0;
25536
25537 /* function exit code */
25538 __pyx_L0:;
25539 __Pyx_XGIVEREF(__pyx_r);
25540 __Pyx_RefNannyFinishContext();
25541 return __pyx_r;
25542}
25543
25544/* Python wrapper */
25545static int __pyx_pw_5rados_13XattrIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25546static int __pyx_pw_5rados_13XattrIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25547 int __pyx_r;
25548 __Pyx_RefNannyDeclarations
25549 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25550 __pyx_r = __pyx_pf_5rados_13XattrIterator_5ioctx_2__set__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25551
25552 /* function exit code */
25553 __Pyx_RefNannyFinishContext();
25554 return __pyx_r;
25555}
25556
25557static int __pyx_pf_5rados_13XattrIterator_5ioctx_2__set__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self, PyObject *__pyx_v_value) {
25558 int __pyx_r;
25559 __Pyx_RefNannyDeclarations
25560 PyObject *__pyx_t_1 = NULL((void*)0);
25561 int __pyx_lineno = 0;
25562 const char *__pyx_filename = NULL((void*)0);
25563 int __pyx_clineno = 0;
25564 __Pyx_RefNannySetupContext("__set__", 0);
25565 if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx)))__builtin_expect(!!(((__pyx_v_value) == (&_Py_NoneStruct)
) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__25565; goto __pyx_L1_error;}
25566 __pyx_t_1 = __pyx_v_value;
25567 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
25568 __Pyx_GIVEREF(__pyx_t_1);
25569 __Pyx_GOTREF(__pyx_v_self->ioctx);
25570 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
25571 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)__pyx_t_1);
25572 __pyx_t_1 = 0;
25573
25574 /* function exit code */
25575 __pyx_r = 0;
25576 goto __pyx_L0;
25577 __pyx_L1_error:;
25578 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
25579 __Pyx_AddTraceback("rados.XattrIterator.ioctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25580 __pyx_r = -1;
25581 __pyx_L0:;
25582 __Pyx_RefNannyFinishContext();
25583 return __pyx_r;
25584}
25585
25586/* Python wrapper */
25587static int __pyx_pw_5rados_13XattrIterator_5ioctx_5__del__(PyObject *__pyx_v_self); /*proto*/
25588static int __pyx_pw_5rados_13XattrIterator_5ioctx_5__del__(PyObject *__pyx_v_self) {
25589 int __pyx_r;
25590 __Pyx_RefNannyDeclarations
25591 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25592 __pyx_r = __pyx_pf_5rados_13XattrIterator_5ioctx_4__del__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self));
25593
25594 /* function exit code */
25595 __Pyx_RefNannyFinishContext();
25596 return __pyx_r;
25597}
25598
25599static int __pyx_pf_5rados_13XattrIterator_5ioctx_4__del__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self) {
25600 int __pyx_r;
25601 __Pyx_RefNannyDeclarations
25602 __Pyx_RefNannySetupContext("__del__", 0);
25603 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
25604 __Pyx_GIVEREF(Py_None);
25605 __Pyx_GOTREF(__pyx_v_self->ioctx);
25606 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
25607 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct));
25608
25609 /* function exit code */
25610 __pyx_r = 0;
25611 __Pyx_RefNannyFinishContext();
25612 return __pyx_r;
25613}
25614
25615/* "rados.pyx":1701
25616 *
25617 * cdef public Ioctx ioctx
25618 * cdef public object oid # <<<<<<<<<<<<<<
25619 *
25620 * def __cinit__(self, Ioctx ioctx, oid):
25621 */
25622
25623/* Python wrapper */
25624static PyObject *__pyx_pw_5rados_13XattrIterator_3oid_1__get__(PyObject *__pyx_v_self); /*proto*/
25625static PyObject *__pyx_pw_5rados_13XattrIterator_3oid_1__get__(PyObject *__pyx_v_self) {
25626 PyObject *__pyx_r = 0;
25627 __Pyx_RefNannyDeclarations
25628 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
25629 __pyx_r = __pyx_pf_5rados_13XattrIterator_3oid___get__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self));
25630
25631 /* function exit code */
25632 __Pyx_RefNannyFinishContext();
25633 return __pyx_r;
25634}
25635
25636static PyObject *__pyx_pf_5rados_13XattrIterator_3oid___get__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self) {
25637 PyObject *__pyx_r = NULL((void*)0);
25638 __Pyx_RefNannyDeclarations
25639 __Pyx_RefNannySetupContext("__get__", 0);
25640 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
25641 __Pyx_INCREF(__pyx_v_self->oid)( ((PyObject*)(__pyx_v_self->oid))->ob_refcnt++);
25642 __pyx_r = __pyx_v_self->oid;
25643 goto __pyx_L0;
25644
25645 /* function exit code */
25646 __pyx_L0:;
25647 __Pyx_XGIVEREF(__pyx_r);
25648 __Pyx_RefNannyFinishContext();
25649 return __pyx_r;
25650}
25651
25652/* Python wrapper */
25653static int __pyx_pw_5rados_13XattrIterator_3oid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
25654static int __pyx_pw_5rados_13XattrIterator_3oid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
25655 int __pyx_r;
25656 __Pyx_RefNannyDeclarations
25657 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
25658 __pyx_r = __pyx_pf_5rados_13XattrIterator_3oid_2__set__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
25659
25660 /* function exit code */
25661 __Pyx_RefNannyFinishContext();
25662 return __pyx_r;
25663}
25664
25665static int __pyx_pf_5rados_13XattrIterator_3oid_2__set__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self, PyObject *__pyx_v_value) {
25666 int __pyx_r;
25667 __Pyx_RefNannyDeclarations
25668 __Pyx_RefNannySetupContext("__set__", 0);
25669 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
25670 __Pyx_GIVEREF(__pyx_v_value);
25671 __Pyx_GOTREF(__pyx_v_self->oid);
25672 __Pyx_DECREF(__pyx_v_self->oid)do { if ( --((PyObject*)(__pyx_v_self->oid))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
oid)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)
(__pyx_v_self->oid)))); } while (0)
;
25673 __pyx_v_self->oid = __pyx_v_value;
25674
25675 /* function exit code */
25676 __pyx_r = 0;
25677 __Pyx_RefNannyFinishContext();
25678 return __pyx_r;
25679}
25680
25681/* Python wrapper */
25682static int __pyx_pw_5rados_13XattrIterator_3oid_5__del__(PyObject *__pyx_v_self); /*proto*/
25683static int __pyx_pw_5rados_13XattrIterator_3oid_5__del__(PyObject *__pyx_v_self) {
25684 int __pyx_r;
25685 __Pyx_RefNannyDeclarations
25686 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
25687 __pyx_r = __pyx_pf_5rados_13XattrIterator_3oid_4__del__(((struct __pyx_obj_5rados_XattrIterator *)__pyx_v_self));
25688
25689 /* function exit code */
25690 __Pyx_RefNannyFinishContext();
25691 return __pyx_r;
25692}
25693
25694static int __pyx_pf_5rados_13XattrIterator_3oid_4__del__(struct __pyx_obj_5rados_XattrIterator *__pyx_v_self) {
25695 int __pyx_r;
25696 __Pyx_RefNannyDeclarations
25697 __Pyx_RefNannySetupContext("__del__", 0);
25698 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
25699 __Pyx_GIVEREF(Py_None);
25700 __Pyx_GOTREF(__pyx_v_self->oid);
25701 __Pyx_DECREF(__pyx_v_self->oid)do { if ( --((PyObject*)(__pyx_v_self->oid))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
oid)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)
(__pyx_v_self->oid)))); } while (0)
;
25702 __pyx_v_self->oid = Py_None(&_Py_NoneStruct);
25703
25704 /* function exit code */
25705 __pyx_r = 0;
25706 __Pyx_RefNannyFinishContext();
25707 return __pyx_r;
25708}
25709
25710/* "rados.pyx":1753
25711 * cdef int cur_snap
25712 *
25713 * def __cinit__(self, Ioctx ioctx): # <<<<<<<<<<<<<<
25714 * self.ioctx = ioctx
25715 * # We don't know how big a buffer we need until we've called the
25716 */
25717
25718/* Python wrapper */
25719static int __pyx_pw_5rados_12SnapIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
25720static int __pyx_pw_5rados_12SnapIterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
25721 struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx = 0;
25722 int __pyx_lineno = 0;
25723 const char *__pyx_filename = NULL((void*)0);
25724 int __pyx_clineno = 0;
25725 int __pyx_r;
25726 __Pyx_RefNannyDeclarations
25727 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
25728 {
25729 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ioctx,0};
25730 PyObject* values[1] = {0};
25731 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
25732 Py_ssize_t kw_args;
25733 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
25734 switch (pos_args) {
25735 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
25736 case 0: break;
25737 default: goto __pyx_L5_argtuple_error;
25738 }
25739 kw_args = PyDict_Size(__pyx_kwds);
25740 switch (pos_args) {
25741 case 0:
25742 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx
)) != 0), 1)
) kw_args--;
25743 else goto __pyx_L5_argtuple_error;
25744 }
25745 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
25746 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__cinit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__25746; goto __pyx_L3_error;}
25747 }
25748 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 1) {
25749 goto __pyx_L5_argtuple_error;
25750 } else {
25751 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
25752 }
25753 __pyx_v_ioctx = ((struct __pyx_obj_5rados_Ioctx *)values[0]);
25754 }
25755 goto __pyx_L4_argument_unpacking_done;
25756 __pyx_L5_argtuple_error:;
25757 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__25757; goto __pyx_L3_error;}
25758 __pyx_L3_error:;
25759 __Pyx_AddTraceback("rados.SnapIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
25760 __Pyx_RefNannyFinishContext();
25761 return -1;
25762 __pyx_L4_argument_unpacking_done:;
25763 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0))__builtin_expect(!!(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx
), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__25763; goto __pyx_L1_error;}
25764 __pyx_r = __pyx_pf_5rados_12SnapIterator___cinit__(((struct __pyx_obj_5rados_SnapIterator *)__pyx_v_self), __pyx_v_ioctx);
25765
25766 /* function exit code */
25767 goto __pyx_L0;
25768 __pyx_L1_error:;
25769 __pyx_r = -1;
25770 __pyx_L0:;
25771 __Pyx_RefNannyFinishContext();
25772 return __pyx_r;
25773}
25774
25775static int __pyx_pf_5rados_12SnapIterator___cinit__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx) {
25776 int __pyx_v_num_snaps;
25777 int __pyx_v_ret;
25778 int __pyx_r;
25779 __Pyx_RefNannyDeclarations
25780 void *__pyx_t_1;
25781 int __pyx_t_2;
25782 PyObject *__pyx_t_3 = NULL((void*)0);
25783 PyObject *__pyx_t_4 = NULL((void*)0);
25784 PyObject *__pyx_t_5 = NULL((void*)0);
25785 int __pyx_lineno = 0;
25786 const char *__pyx_filename = NULL((void*)0);
25787 int __pyx_clineno = 0;
25788 __Pyx_RefNannySetupContext("__cinit__", 0);
25789
25790 /* "rados.pyx":1754
25791 *
25792 * def __cinit__(self, Ioctx ioctx):
25793 * self.ioctx = ioctx # <<<<<<<<<<<<<<
25794 * # We don't know how big a buffer we need until we've called the
25795 * # function. So use the exponential doubling strategy.
25796 */
25797 __Pyx_INCREF(((PyObject *)__pyx_v_ioctx))( ((PyObject*)(((PyObject *)__pyx_v_ioctx)))->ob_refcnt++);
25798 __Pyx_GIVEREF(((PyObject *)__pyx_v_ioctx));
25799 __Pyx_GOTREF(__pyx_v_self->ioctx);
25800 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
25801 __pyx_v_self->ioctx = __pyx_v_ioctx;
25802
25803 /* "rados.pyx":1757
25804 * # We don't know how big a buffer we need until we've called the
25805 * # function. So use the exponential doubling strategy.
25806 * cdef int num_snaps = 10 # <<<<<<<<<<<<<<
25807 * while True:
25808 * self.snaps = <rados_snap_t*>realloc_chk(self.snaps,
25809 */
25810 __pyx_v_num_snaps = 10;
25811
25812 /* "rados.pyx":1758
25813 * # function. So use the exponential doubling strategy.
25814 * cdef int num_snaps = 10
25815 * while True: # <<<<<<<<<<<<<<
25816 * self.snaps = <rados_snap_t*>realloc_chk(self.snaps,
25817 * num_snaps *
25818 */
25819 while (1) {
25820
25821 /* "rados.pyx":1759
25822 * cdef int num_snaps = 10
25823 * while True:
25824 * self.snaps = <rados_snap_t*>realloc_chk(self.snaps, # <<<<<<<<<<<<<<
25825 * num_snaps *
25826 * sizeof(rados_snap_t))
25827 */
25828 __pyx_t_1 = __pyx_f_5rados_realloc_chk(__pyx_v_self->snaps, (__pyx_v_num_snaps * (sizeof(rados_snap_t)))); if (unlikely(__pyx_t_1 == NULL)__builtin_expect(!!(__pyx_t_1 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1759; __pyx_clineno = __LINE__25828; goto __pyx_L1_error;}
25829 __pyx_v_self->snaps = ((rados_snap_t *)__pyx_t_1);
25830
25831 /* "rados.pyx":1763
25832 * sizeof(rados_snap_t))
25833 *
25834 * with nogil: # <<<<<<<<<<<<<<
25835 * ret = rados_ioctx_snap_list(ioctx.io, self.snaps, num_snaps)
25836 * if ret >= 0:
25837 */
25838 {
25839 #ifdef WITH_THREAD1
25840 PyThreadState *_save;
25841 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
25842 #endif
25843 /*try:*/ {
25844
25845 /* "rados.pyx":1764
25846 *
25847 * with nogil:
25848 * ret = rados_ioctx_snap_list(ioctx.io, self.snaps, num_snaps) # <<<<<<<<<<<<<<
25849 * if ret >= 0:
25850 * self.max_snap = ret
25851 */
25852 __pyx_v_ret = rados_ioctx_snap_list(__pyx_v_ioctx->io, __pyx_v_self->snaps, __pyx_v_num_snaps);
25853 }
25854
25855 /* "rados.pyx":1763
25856 * sizeof(rados_snap_t))
25857 *
25858 * with nogil: # <<<<<<<<<<<<<<
25859 * ret = rados_ioctx_snap_list(ioctx.io, self.snaps, num_snaps)
25860 * if ret >= 0:
25861 */
25862 /*finally:*/ {
25863 /*normal exit:*/{
25864 #ifdef WITH_THREAD1
25865 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
25866 #endif
25867 goto __pyx_L9;
25868 }
25869 __pyx_L9:;
25870 }
25871 }
25872
25873 /* "rados.pyx":1765
25874 * with nogil:
25875 * ret = rados_ioctx_snap_list(ioctx.io, self.snaps, num_snaps)
25876 * if ret >= 0: # <<<<<<<<<<<<<<
25877 * self.max_snap = ret
25878 * break
25879 */
25880 __pyx_t_2 = ((__pyx_v_ret >= 0) != 0);
25881 if (__pyx_t_2) {
25882
25883 /* "rados.pyx":1766
25884 * ret = rados_ioctx_snap_list(ioctx.io, self.snaps, num_snaps)
25885 * if ret >= 0:
25886 * self.max_snap = ret # <<<<<<<<<<<<<<
25887 * break
25888 * elif ret != -errno.ERANGE:
25889 */
25890 __pyx_v_self->max_snap = __pyx_v_ret;
25891
25892 /* "rados.pyx":1767
25893 * if ret >= 0:
25894 * self.max_snap = ret
25895 * break # <<<<<<<<<<<<<<
25896 * elif ret != -errno.ERANGE:
25897 * raise make_ex(ret, "error calling rados_snap_list for \
25898 */
25899 goto __pyx_L4_break;
25900
25901 /* "rados.pyx":1765
25902 * with nogil:
25903 * ret = rados_ioctx_snap_list(ioctx.io, self.snaps, num_snaps)
25904 * if ret >= 0: # <<<<<<<<<<<<<<
25905 * self.max_snap = ret
25906 * break
25907 */
25908 }
25909
25910 /* "rados.pyx":1768
25911 * self.max_snap = ret
25912 * break
25913 * elif ret != -errno.ERANGE: # <<<<<<<<<<<<<<
25914 * raise make_ex(ret, "error calling rados_snap_list for \
25915 * ioctx '%s'" % self.ioctx.name)
25916 */
25917 __pyx_t_2 = ((__pyx_v_ret != (-ERANGE34)) != 0);
25918 if (__pyx_t_2) {
25919
25920 /* "rados.pyx":1769
25921 * break
25922 * elif ret != -errno.ERANGE:
25923 * raise make_ex(ret, "error calling rados_snap_list for \ # <<<<<<<<<<<<<<
25924 * ioctx '%s'" % self.ioctx.name)
25925 * num_snaps = num_snaps * 2
25926 */
25927 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1769; __pyx_clineno = __LINE__25927; goto __pyx_L1_error;}
25928 __Pyx_GOTREF(__pyx_t_3);
25929
25930 /* "rados.pyx":1770
25931 * elif ret != -errno.ERANGE:
25932 * raise make_ex(ret, "error calling rados_snap_list for \
25933 * ioctx '%s'" % self.ioctx.name) # <<<<<<<<<<<<<<
25934 * num_snaps = num_snaps * 2
25935 * self.cur_snap = 0
25936 */
25937 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_error_calling_rados_snap_list_fo, __pyx_v_self->ioctx->name)PyString_Format(__pyx_kp_s_error_calling_rados_snap_list_fo, __pyx_v_self
->ioctx->name)
; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__25937; goto __pyx_L1_error;}
25938 __Pyx_GOTREF(__pyx_t_4);
25939
25940 /* "rados.pyx":1769
25941 * break
25942 * elif ret != -errno.ERANGE:
25943 * raise make_ex(ret, "error calling rados_snap_list for \ # <<<<<<<<<<<<<<
25944 * ioctx '%s'" % self.ioctx.name)
25945 * num_snaps = num_snaps * 2
25946 */
25947 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1769; __pyx_clineno = __LINE__25947; goto __pyx_L1_error;}
25948 __Pyx_GOTREF(__pyx_t_5);
25949 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
25950 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
25951 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
25952 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
25953 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1769; __pyx_clineno = __LINE__25953; goto __pyx_L1_error;}
25954
25955 /* "rados.pyx":1768
25956 * self.max_snap = ret
25957 * break
25958 * elif ret != -errno.ERANGE: # <<<<<<<<<<<<<<
25959 * raise make_ex(ret, "error calling rados_snap_list for \
25960 * ioctx '%s'" % self.ioctx.name)
25961 */
25962 }
25963
25964 /* "rados.pyx":1771
25965 * raise make_ex(ret, "error calling rados_snap_list for \
25966 * ioctx '%s'" % self.ioctx.name)
25967 * num_snaps = num_snaps * 2 # <<<<<<<<<<<<<<
25968 * self.cur_snap = 0
25969 *
25970 */
25971 __pyx_v_num_snaps = (__pyx_v_num_snaps * 2);
25972 }
25973 __pyx_L4_break:;
25974
25975 /* "rados.pyx":1772
25976 * ioctx '%s'" % self.ioctx.name)
25977 * num_snaps = num_snaps * 2
25978 * self.cur_snap = 0 # <<<<<<<<<<<<<<
25979 *
25980 * def __iter__(self):
25981 */
25982 __pyx_v_self->cur_snap = 0;
25983
25984 /* "rados.pyx":1753
25985 * cdef int cur_snap
25986 *
25987 * def __cinit__(self, Ioctx ioctx): # <<<<<<<<<<<<<<
25988 * self.ioctx = ioctx
25989 * # We don't know how big a buffer we need until we've called the
25990 */
25991
25992 /* function exit code */
25993 __pyx_r = 0;
25994 goto __pyx_L0;
25995 __pyx_L1_error:;
25996 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
25997 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
25998 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
25999 __Pyx_AddTraceback("rados.SnapIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26000 __pyx_r = -1;
26001 __pyx_L0:;
26002 __Pyx_RefNannyFinishContext();
26003 return __pyx_r;
26004}
26005
26006/* "rados.pyx":1774
26007 * self.cur_snap = 0
26008 *
26009 * def __iter__(self): # <<<<<<<<<<<<<<
26010 * return self
26011 *
26012 */
26013
26014/* Python wrapper */
26015static PyObject *__pyx_pw_5rados_12SnapIterator_3__iter__(PyObject *__pyx_v_self); /*proto*/
26016static PyObject *__pyx_pw_5rados_12SnapIterator_3__iter__(PyObject *__pyx_v_self) {
26017 PyObject *__pyx_r = 0;
26018 __Pyx_RefNannyDeclarations
26019 __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
26020 __pyx_r = __pyx_pf_5rados_12SnapIterator_2__iter__(((struct __pyx_obj_5rados_SnapIterator *)__pyx_v_self));
26021
26022 /* function exit code */
26023 __Pyx_RefNannyFinishContext();
26024 return __pyx_r;
26025}
26026
26027static PyObject *__pyx_pf_5rados_12SnapIterator_2__iter__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self) {
26028 PyObject *__pyx_r = NULL((void*)0);
26029 __Pyx_RefNannyDeclarations
26030 __Pyx_RefNannySetupContext("__iter__", 0);
26031
26032 /* "rados.pyx":1775
26033 *
26034 * def __iter__(self):
26035 * return self # <<<<<<<<<<<<<<
26036 *
26037 * def __next__(self):
26038 */
26039 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
26040 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
26041 __pyx_r = ((PyObject *)__pyx_v_self);
26042 goto __pyx_L0;
26043
26044 /* "rados.pyx":1774
26045 * self.cur_snap = 0
26046 *
26047 * def __iter__(self): # <<<<<<<<<<<<<<
26048 * return self
26049 *
26050 */
26051
26052 /* function exit code */
26053 __pyx_L0:;
26054 __Pyx_XGIVEREF(__pyx_r);
26055 __Pyx_RefNannyFinishContext();
26056 return __pyx_r;
26057}
26058
26059/* "rados.pyx":1777
26060 * return self
26061 *
26062 * def __next__(self): # <<<<<<<<<<<<<<
26063 * """
26064 * Get the next Snapshot
26065 */
26066
26067/* Python wrapper */
26068static PyObject *__pyx_pw_5rados_12SnapIterator_5__next__(PyObject *__pyx_v_self); /*proto*/
26069static char __pyx_doc_5rados_12SnapIterator_4__next__[] = "\n Get the next Snapshot\n\n :raises: :class:`Error`, StopIteration\n :returns: Snap - next snapshot\n ";
26070#if CYTHON_COMPILING_IN_CPYTHON1
26071struct wrapperbase __pyx_wrapperbase_5rados_12SnapIterator_4__next__;
26072#endif
26073static PyObject *__pyx_pw_5rados_12SnapIterator_5__next__(PyObject *__pyx_v_self) {
26074 PyObject *__pyx_r = 0;
26075 __Pyx_RefNannyDeclarations
26076 __Pyx_RefNannySetupContext("__next__ (wrapper)", 0);
26077 __pyx_r = __pyx_pf_5rados_12SnapIterator_4__next__(((struct __pyx_obj_5rados_SnapIterator *)__pyx_v_self));
26078
26079 /* function exit code */
26080 __Pyx_RefNannyFinishContext();
26081 return __pyx_r;
26082}
26083
26084static PyObject *__pyx_pf_5rados_12SnapIterator_4__next__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self) {
26085 rados_snap_t __pyx_v_snap_id;
26086 int __pyx_v_name_len;
26087 char *__pyx_v_name;
26088 int __pyx_v_ret;
26089 struct __pyx_obj_5rados_Snap *__pyx_v_snap = NULL((void*)0);
26090 PyObject *__pyx_r = NULL((void*)0);
26091 __Pyx_RefNannyDeclarations
26092 int __pyx_t_1;
26093 void *__pyx_t_2;
26094 PyObject *__pyx_t_3 = NULL((void*)0);
26095 PyObject *__pyx_t_4 = NULL((void*)0);
26096 PyObject *__pyx_t_5 = NULL((void*)0);
26097 PyObject *__pyx_t_6 = NULL((void*)0);
26098 PyObject *__pyx_t_7 = NULL((void*)0);
26099 int __pyx_t_8;
26100 int __pyx_t_9;
26101 char const *__pyx_t_10;
26102 PyObject *__pyx_t_11 = NULL((void*)0);
26103 PyObject *__pyx_t_12 = NULL((void*)0);
26104 PyObject *__pyx_t_13 = NULL((void*)0);
26105 PyObject *__pyx_t_14 = NULL((void*)0);
26106 PyObject *__pyx_t_15 = NULL((void*)0);
26107 PyObject *__pyx_t_16 = NULL((void*)0);
26108 int __pyx_lineno = 0;
26109 const char *__pyx_filename = NULL((void*)0);
26110 int __pyx_clineno = 0;
26111 __Pyx_RefNannySetupContext("__next__", 0);
26112
26113 /* "rados.pyx":1784
26114 * :returns: Snap - next snapshot
26115 * """
26116 * if self.cur_snap >= self.max_snap: # <<<<<<<<<<<<<<
26117 * raise StopIteration
26118 *
26119 */
26120 __pyx_t_1 = ((__pyx_v_self->cur_snap >= __pyx_v_self->max_snap) != 0);
26121 if (__pyx_t_1) {
26122
26123 /* "rados.pyx":1785
26124 * """
26125 * if self.cur_snap >= self.max_snap:
26126 * raise StopIteration # <<<<<<<<<<<<<<
26127 *
26128 * cdef:
26129 */
26130 __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
26131 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1785; __pyx_clineno = __LINE__26131; goto __pyx_L1_error;}
26132
26133 /* "rados.pyx":1784
26134 * :returns: Snap - next snapshot
26135 * """
26136 * if self.cur_snap >= self.max_snap: # <<<<<<<<<<<<<<
26137 * raise StopIteration
26138 *
26139 */
26140 }
26141
26142 /* "rados.pyx":1788
26143 *
26144 * cdef:
26145 * rados_snap_t snap_id = self.snaps[self.cur_snap] # <<<<<<<<<<<<<<
26146 * int name_len = 10
26147 * char *name = NULL
26148 */
26149 __pyx_v_snap_id = (__pyx_v_self->snaps[__pyx_v_self->cur_snap]);
26150
26151 /* "rados.pyx":1789
26152 * cdef:
26153 * rados_snap_t snap_id = self.snaps[self.cur_snap]
26154 * int name_len = 10 # <<<<<<<<<<<<<<
26155 * char *name = NULL
26156 *
26157 */
26158 __pyx_v_name_len = 10;
26159
26160 /* "rados.pyx":1790
26161 * rados_snap_t snap_id = self.snaps[self.cur_snap]
26162 * int name_len = 10
26163 * char *name = NULL # <<<<<<<<<<<<<<
26164 *
26165 * try:
26166 */
26167 __pyx_v_name = NULL((void*)0);
26168
26169 /* "rados.pyx":1792
26170 * char *name = NULL
26171 *
26172 * try: # <<<<<<<<<<<<<<
26173 * while True:
26174 * name = <char *>realloc_chk(name, name_len)
26175 */
26176 /*try:*/ {
26177
26178 /* "rados.pyx":1793
26179 *
26180 * try:
26181 * while True: # <<<<<<<<<<<<<<
26182 * name = <char *>realloc_chk(name, name_len)
26183 * with nogil:
26184 */
26185 while (1) {
26186
26187 /* "rados.pyx":1794
26188 * try:
26189 * while True:
26190 * name = <char *>realloc_chk(name, name_len) # <<<<<<<<<<<<<<
26191 * with nogil:
26192 * ret = rados_ioctx_snap_get_name(self.ioctx.io, snap_id, name, name_len)
26193 */
26194 __pyx_t_2 = __pyx_f_5rados_realloc_chk(__pyx_v_name, __pyx_v_name_len); if (unlikely(__pyx_t_2 == NULL)__builtin_expect(!!(__pyx_t_2 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__26194; goto __pyx_L5_error;}
26195 __pyx_v_name = ((char *)__pyx_t_2);
26196
26197 /* "rados.pyx":1795
26198 * while True:
26199 * name = <char *>realloc_chk(name, name_len)
26200 * with nogil: # <<<<<<<<<<<<<<
26201 * ret = rados_ioctx_snap_get_name(self.ioctx.io, snap_id, name, name_len)
26202 * if ret == 0:
26203 */
26204 {
26205 #ifdef WITH_THREAD1
26206 PyThreadState *_save;
26207 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
26208 #endif
26209 /*try:*/ {
26210
26211 /* "rados.pyx":1796
26212 * name = <char *>realloc_chk(name, name_len)
26213 * with nogil:
26214 * ret = rados_ioctx_snap_get_name(self.ioctx.io, snap_id, name, name_len) # <<<<<<<<<<<<<<
26215 * if ret == 0:
26216 * break
26217 */
26218 __pyx_v_ret = rados_ioctx_snap_get_name(__pyx_v_self->ioctx->io, __pyx_v_snap_id, __pyx_v_name, __pyx_v_name_len);
26219 }
26220
26221 /* "rados.pyx":1795
26222 * while True:
26223 * name = <char *>realloc_chk(name, name_len)
26224 * with nogil: # <<<<<<<<<<<<<<
26225 * ret = rados_ioctx_snap_get_name(self.ioctx.io, snap_id, name, name_len)
26226 * if ret == 0:
26227 */
26228 /*finally:*/ {
26229 /*normal exit:*/{
26230 #ifdef WITH_THREAD1
26231 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
26232 #endif
26233 goto __pyx_L13;
26234 }
26235 __pyx_L13:;
26236 }
26237 }
26238
26239 /* "rados.pyx":1797
26240 * with nogil:
26241 * ret = rados_ioctx_snap_get_name(self.ioctx.io, snap_id, name, name_len)
26242 * if ret == 0: # <<<<<<<<<<<<<<
26243 * break
26244 * elif ret != -errno.ERANGE:
26245 */
26246 __pyx_t_1 = ((__pyx_v_ret == 0) != 0);
26247 if (__pyx_t_1) {
26248
26249 /* "rados.pyx":1798
26250 * ret = rados_ioctx_snap_get_name(self.ioctx.io, snap_id, name, name_len)
26251 * if ret == 0:
26252 * break # <<<<<<<<<<<<<<
26253 * elif ret != -errno.ERANGE:
26254 * raise make_ex(ret, "rados_snap_get_name error")
26255 */
26256 goto __pyx_L8_break;
26257
26258 /* "rados.pyx":1797
26259 * with nogil:
26260 * ret = rados_ioctx_snap_get_name(self.ioctx.io, snap_id, name, name_len)
26261 * if ret == 0: # <<<<<<<<<<<<<<
26262 * break
26263 * elif ret != -errno.ERANGE:
26264 */
26265 }
26266
26267 /* "rados.pyx":1799
26268 * if ret == 0:
26269 * break
26270 * elif ret != -errno.ERANGE: # <<<<<<<<<<<<<<
26271 * raise make_ex(ret, "rados_snap_get_name error")
26272 * else:
26273 */
26274 __pyx_t_1 = ((__pyx_v_ret != (-ERANGE34)) != 0);
26275 if (__pyx_t_1) {
26276
26277 /* "rados.pyx":1800
26278 * break
26279 * elif ret != -errno.ERANGE:
26280 * raise make_ex(ret, "rados_snap_get_name error") # <<<<<<<<<<<<<<
26281 * else:
26282 * name_len = name_len * 2
26283 */
26284 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__26284; goto __pyx_L5_error;}
26285 __Pyx_GOTREF(__pyx_t_3);
26286 __pyx_t_4 = __pyx_f_5rados_make_ex(__pyx_t_3, __pyx_kp_s_rados_snap_get_name_error); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__26286; goto __pyx_L5_error;}
26287 __Pyx_GOTREF(__pyx_t_4);
26288 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
26289 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
26290 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
26291 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1800; __pyx_clineno = __LINE__26291; goto __pyx_L5_error;}
26292
26293 /* "rados.pyx":1799
26294 * if ret == 0:
26295 * break
26296 * elif ret != -errno.ERANGE: # <<<<<<<<<<<<<<
26297 * raise make_ex(ret, "rados_snap_get_name error")
26298 * else:
26299 */
26300 }
26301
26302 /* "rados.pyx":1802
26303 * raise make_ex(ret, "rados_snap_get_name error")
26304 * else:
26305 * name_len = name_len * 2 # <<<<<<<<<<<<<<
26306 *
26307 * snap = Snap(self.ioctx, decode_cstr(name[:name_len]).rstrip('\0'), snap_id)
26308 */
26309 /*else*/ {
26310 __pyx_v_name_len = (__pyx_v_name_len * 2);
26311 }
26312 }
26313 __pyx_L8_break:;
26314
26315 /* "rados.pyx":1804
26316 * name_len = name_len * 2
26317 *
26318 * snap = Snap(self.ioctx, decode_cstr(name[:name_len]).rstrip('\0'), snap_id) # <<<<<<<<<<<<<<
26319 * self.cur_snap = self.cur_snap + 1
26320 * return snap
26321 */
26322 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26322; goto __pyx_L5_error;}
26323 __Pyx_GOTREF(__pyx_t_3);
26324 __pyx_t_5 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_name + 0, __pyx_v_name_len - 0); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26324; goto __pyx_L5_error;}
26325 __Pyx_GOTREF(__pyx_t_5);
26326 __pyx_t_6 = NULL((void*)0);
26327 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
26328 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
26329 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
26330 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
26331 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
26332 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
26333 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
26334 }
26335 }
26336 if (!__pyx_t_6) {
26337 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26337; goto __pyx_L5_error;}
26338 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
26339 __Pyx_GOTREF(__pyx_t_4);
26340 } else {
26341 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26341; goto __pyx_L5_error;}
26342 __Pyx_GOTREF(__pyx_t_7);
26343 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
26344 __Pyx_GIVEREF(__pyx_t_5);
26345 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
26346 __pyx_t_5 = 0;
26347 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26347; goto __pyx_L5_error;}
26348 __Pyx_GOTREF(__pyx_t_4);
26349 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
26350 }
26351 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
26352 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_rstrip); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26352; goto __pyx_L5_error;}
26353 __Pyx_GOTREF(__pyx_t_3);
26354 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
26355 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__44, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26355; goto __pyx_L5_error;}
26356 __Pyx_GOTREF(__pyx_t_4);
26357 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
26358 __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_snap_id); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26358; goto __pyx_L5_error;}
26359 __Pyx_GOTREF(__pyx_t_3);
26360 __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26360; goto __pyx_L5_error;}
26361 __Pyx_GOTREF(__pyx_t_7);
26362 __Pyx_INCREF(((PyObject *)__pyx_v_self->ioctx))( ((PyObject*)(((PyObject *)__pyx_v_self->ioctx)))->ob_refcnt
++)
;
26363 __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ioctx));
26364 PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_self->ioctx))(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = ((PyObject *
)__pyx_v_self->ioctx))
;
26365 __Pyx_GIVEREF(__pyx_t_4);
26366 PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4)(((PyTupleObject *)(__pyx_t_7))->ob_item[1] = __pyx_t_4);
26367 __Pyx_GIVEREF(__pyx_t_3);
26368 PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)(((PyTupleObject *)(__pyx_t_7))->ob_item[2] = __pyx_t_3);
26369 __pyx_t_4 = 0;
26370 __pyx_t_3 = 0;
26371 __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_Snap), __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__26371; goto __pyx_L5_error;}
26372 __Pyx_GOTREF(__pyx_t_3);
26373 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
26374 __pyx_v_snap = ((struct __pyx_obj_5rados_Snap *)__pyx_t_3);
26375 __pyx_t_3 = 0;
26376
26377 /* "rados.pyx":1805
26378 *
26379 * snap = Snap(self.ioctx, decode_cstr(name[:name_len]).rstrip('\0'), snap_id)
26380 * self.cur_snap = self.cur_snap + 1 # <<<<<<<<<<<<<<
26381 * return snap
26382 * finally:
26383 */
26384 __pyx_v_self->cur_snap = (__pyx_v_self->cur_snap + 1);
26385
26386 /* "rados.pyx":1806
26387 * snap = Snap(self.ioctx, decode_cstr(name[:name_len]).rstrip('\0'), snap_id)
26388 * self.cur_snap = self.cur_snap + 1
26389 * return snap # <<<<<<<<<<<<<<
26390 * finally:
26391 * free(name)
26392 */
26393 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
26394 __Pyx_INCREF(((PyObject *)__pyx_v_snap))( ((PyObject*)(((PyObject *)__pyx_v_snap)))->ob_refcnt++);
26395 __pyx_r = ((PyObject *)__pyx_v_snap);
26396 goto __pyx_L4_return;
26397 }
26398
26399 /* "rados.pyx":1808
26400 * return snap
26401 * finally:
26402 * free(name) # <<<<<<<<<<<<<<
26403 *
26404 *
26405 */
26406 /*finally:*/ {
26407 /*exception exit:*/{
26408 __pyx_L5_error:;
26409 __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0;
26410 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
26411 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
26412 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
26413 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
26414 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
26415 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
26416 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_11, &
__pyx_t_12, &__pyx_t_13) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
26417 __Pyx_XGOTREF(__pyx_t_11);
26418 __Pyx_XGOTREF(__pyx_t_12);
26419 __Pyx_XGOTREF(__pyx_t_13);
26420 __Pyx_XGOTREF(__pyx_t_14);
26421 __Pyx_XGOTREF(__pyx_t_15);
26422 __Pyx_XGOTREF(__pyx_t_16);
26423 __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename;
26424 {
26425 free(__pyx_v_name);
26426 }
26427 if (PY_MAJOR_VERSION2 >= 3) {
26428 __Pyx_XGIVEREF(__pyx_t_14);
26429 __Pyx_XGIVEREF(__pyx_t_15);
26430 __Pyx_XGIVEREF(__pyx_t_16);
26431 __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
26432 }
26433 __Pyx_XGIVEREF(__pyx_t_11);
26434 __Pyx_XGIVEREF(__pyx_t_12);
26435 __Pyx_XGIVEREF(__pyx_t_13);
26436 __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13);
26437 __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0;
26438 __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10;
26439 goto __pyx_L1_error;
26440 }
26441 __pyx_L4_return: {
26442 __pyx_t_16 = __pyx_r;
26443 __pyx_r = 0;
26444 free(__pyx_v_name);
26445 __pyx_r = __pyx_t_16;
26446 __pyx_t_16 = 0;
26447 goto __pyx_L0;
26448 }
26449 }
26450
26451 /* "rados.pyx":1777
26452 * return self
26453 *
26454 * def __next__(self): # <<<<<<<<<<<<<<
26455 * """
26456 * Get the next Snapshot
26457 */
26458
26459 /* function exit code */
26460 __pyx_L1_error:;
26461 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
26462 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
26463 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
26464 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
26465 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
26466 __Pyx_AddTraceback("rados.SnapIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26467 __pyx_r = NULL((void*)0);
26468 __pyx_L0:;
26469 __Pyx_XDECREF((PyObject *)__pyx_v_snap)do { if (((PyObject *)__pyx_v_snap) == ((void*)0)) ; else do {
if ( --((PyObject*)((PyObject *)__pyx_v_snap))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject *)__pyx_v_snap
)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)((PyObject
*)__pyx_v_snap)))); } while (0); } while (0)
;
26470 __Pyx_XGIVEREF(__pyx_r);
26471 __Pyx_RefNannyFinishContext();
26472 return __pyx_r;
26473}
26474
26475/* "rados.pyx":1747
26476 * """Snapshot iterator"""
26477 *
26478 * cdef public Ioctx ioctx # <<<<<<<<<<<<<<
26479 *
26480 * cdef rados_snap_t *snaps
26481 */
26482
26483/* Python wrapper */
26484static PyObject *__pyx_pw_5rados_12SnapIterator_5ioctx_1__get__(PyObject *__pyx_v_self); /*proto*/
26485static PyObject *__pyx_pw_5rados_12SnapIterator_5ioctx_1__get__(PyObject *__pyx_v_self) {
26486 PyObject *__pyx_r = 0;
26487 __Pyx_RefNannyDeclarations
26488 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
26489 __pyx_r = __pyx_pf_5rados_12SnapIterator_5ioctx___get__(((struct __pyx_obj_5rados_SnapIterator *)__pyx_v_self));
26490
26491 /* function exit code */
26492 __Pyx_RefNannyFinishContext();
26493 return __pyx_r;
26494}
26495
26496static PyObject *__pyx_pf_5rados_12SnapIterator_5ioctx___get__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self) {
26497 PyObject *__pyx_r = NULL((void*)0);
26498 __Pyx_RefNannyDeclarations
26499 __Pyx_RefNannySetupContext("__get__", 0);
26500 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
26501 __Pyx_INCREF(((PyObject *)__pyx_v_self->ioctx))( ((PyObject*)(((PyObject *)__pyx_v_self->ioctx)))->ob_refcnt
++)
;
26502 __pyx_r = ((PyObject *)__pyx_v_self->ioctx);
26503 goto __pyx_L0;
26504
26505 /* function exit code */
26506 __pyx_L0:;
26507 __Pyx_XGIVEREF(__pyx_r);
26508 __Pyx_RefNannyFinishContext();
26509 return __pyx_r;
26510}
26511
26512/* Python wrapper */
26513static int __pyx_pw_5rados_12SnapIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
26514static int __pyx_pw_5rados_12SnapIterator_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
26515 int __pyx_r;
26516 __Pyx_RefNannyDeclarations
26517 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
26518 __pyx_r = __pyx_pf_5rados_12SnapIterator_5ioctx_2__set__(((struct __pyx_obj_5rados_SnapIterator *)__pyx_v_self), ((PyObject *)__pyx_v_value));
26519
26520 /* function exit code */
26521 __Pyx_RefNannyFinishContext();
26522 return __pyx_r;
26523}
26524
26525static int __pyx_pf_5rados_12SnapIterator_5ioctx_2__set__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self, PyObject *__pyx_v_value) {
26526 int __pyx_r;
26527 __Pyx_RefNannyDeclarations
26528 PyObject *__pyx_t_1 = NULL((void*)0);
26529 int __pyx_lineno = 0;
26530 const char *__pyx_filename = NULL((void*)0);
26531 int __pyx_clineno = 0;
26532 __Pyx_RefNannySetupContext("__set__", 0);
26533 if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx)))__builtin_expect(!!(((__pyx_v_value) == (&_Py_NoneStruct)
) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__26533; goto __pyx_L1_error;}
26534 __pyx_t_1 = __pyx_v_value;
26535 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
26536 __Pyx_GIVEREF(__pyx_t_1);
26537 __Pyx_GOTREF(__pyx_v_self->ioctx);
26538 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
26539 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)__pyx_t_1);
26540 __pyx_t_1 = 0;
26541
26542 /* function exit code */
26543 __pyx_r = 0;
26544 goto __pyx_L0;
26545 __pyx_L1_error:;
26546 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
26547 __Pyx_AddTraceback("rados.SnapIterator.ioctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26548 __pyx_r = -1;
26549 __pyx_L0:;
26550 __Pyx_RefNannyFinishContext();
26551 return __pyx_r;
26552}
26553
26554/* Python wrapper */
26555static int __pyx_pw_5rados_12SnapIterator_5ioctx_5__del__(PyObject *__pyx_v_self); /*proto*/
26556static int __pyx_pw_5rados_12SnapIterator_5ioctx_5__del__(PyObject *__pyx_v_self) {
26557 int __pyx_r;
26558 __Pyx_RefNannyDeclarations
26559 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
26560 __pyx_r = __pyx_pf_5rados_12SnapIterator_5ioctx_4__del__(((struct __pyx_obj_5rados_SnapIterator *)__pyx_v_self));
26561
26562 /* function exit code */
26563 __Pyx_RefNannyFinishContext();
26564 return __pyx_r;
26565}
26566
26567static int __pyx_pf_5rados_12SnapIterator_5ioctx_4__del__(struct __pyx_obj_5rados_SnapIterator *__pyx_v_self) {
26568 int __pyx_r;
26569 __Pyx_RefNannyDeclarations
26570 __Pyx_RefNannySetupContext("__del__", 0);
26571 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
26572 __Pyx_GIVEREF(Py_None);
26573 __Pyx_GOTREF(__pyx_v_self->ioctx);
26574 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
26575 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct));
26576
26577 /* function exit code */
26578 __pyx_r = 0;
26579 __Pyx_RefNannyFinishContext();
26580 return __pyx_r;
26581}
26582
26583/* "rados.pyx":1820
26584 * cdef public rados_snap_t snap_id
26585 *
26586 * def __cinit__(self, Ioctx ioctx, object name, rados_snap_t snap_id): # <<<<<<<<<<<<<<
26587 * self.ioctx = ioctx
26588 * self.name = name
26589 */
26590
26591/* Python wrapper */
26592static int __pyx_pw_5rados_4Snap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
26593static int __pyx_pw_5rados_4Snap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
26594 struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx = 0;
26595 PyObject *__pyx_v_name = 0;
26596 rados_snap_t __pyx_v_snap_id;
26597 int __pyx_lineno = 0;
26598 const char *__pyx_filename = NULL((void*)0);
26599 int __pyx_clineno = 0;
26600 int __pyx_r;
26601 __Pyx_RefNannyDeclarations
26602 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
26603 {
26604 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ioctx,&__pyx_n_s_name_2,&__pyx_n_s_snap_id,0};
26605 PyObject* values[3] = {0,0,0};
26606 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
26607 Py_ssize_t kw_args;
26608 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
26609 switch (pos_args) {
26610 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
26611 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
26612 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
26613 case 0: break;
26614 default: goto __pyx_L5_argtuple_error;
26615 }
26616 kw_args = PyDict_Size(__pyx_kwds);
26617 switch (pos_args) {
26618 case 0:
26619 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx
)) != 0), 1)
) kw_args--;
26620 else goto __pyx_L5_argtuple_error;
26621 case 1:
26622 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
26623 else {
26624 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__26624; goto __pyx_L3_error;}
26625 }
26626 case 2:
26627 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_snap_id)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_snap_id
)) != 0), 1)
) kw_args--;
26628 else {
26629 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__26629; goto __pyx_L3_error;}
26630 }
26631 }
26632 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
26633 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__cinit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__26633; goto __pyx_L3_error;}
26634 }
26635 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
26636 goto __pyx_L5_argtuple_error;
26637 } else {
26638 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
26639 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
26640 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
26641 }
26642 __pyx_v_ioctx = ((struct __pyx_obj_5rados_Ioctx *)values[0]);
26643 __pyx_v_name = values[1];
26644 __pyx_v_snap_id = __Pyx_PyInt_As_uint64_t(values[2]); if (unlikely((__pyx_v_snap_id == (rados_snap_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_v_snap_id == (rados_snap_t)-1) &&
PyErr_Occurred()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__26644; goto __pyx_L3_error;}
26645 }
26646 goto __pyx_L4_argument_unpacking_done;
26647 __pyx_L5_argtuple_error:;
26648 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__26648; goto __pyx_L3_error;}
26649 __pyx_L3_error:;
26650 __Pyx_AddTraceback("rados.Snap.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26651 __Pyx_RefNannyFinishContext();
26652 return -1;
26653 __pyx_L4_argument_unpacking_done:;
26654 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0))__builtin_expect(!!(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx
), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1820; __pyx_clineno = __LINE__26654; goto __pyx_L1_error;}
26655 __pyx_r = __pyx_pf_5rados_4Snap___cinit__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self), __pyx_v_ioctx, __pyx_v_name, __pyx_v_snap_id);
26656
26657 /* function exit code */
26658 goto __pyx_L0;
26659 __pyx_L1_error:;
26660 __pyx_r = -1;
26661 __pyx_L0:;
26662 __Pyx_RefNannyFinishContext();
26663 return __pyx_r;
26664}
26665
26666static int __pyx_pf_5rados_4Snap___cinit__(struct __pyx_obj_5rados_Snap *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx, PyObject *__pyx_v_name, rados_snap_t __pyx_v_snap_id) {
26667 int __pyx_r;
26668 __Pyx_RefNannyDeclarations
26669 __Pyx_RefNannySetupContext("__cinit__", 0);
26670
26671 /* "rados.pyx":1821
26672 *
26673 * def __cinit__(self, Ioctx ioctx, object name, rados_snap_t snap_id):
26674 * self.ioctx = ioctx # <<<<<<<<<<<<<<
26675 * self.name = name
26676 * self.snap_id = snap_id
26677 */
26678 __Pyx_INCREF(((PyObject *)__pyx_v_ioctx))( ((PyObject*)(((PyObject *)__pyx_v_ioctx)))->ob_refcnt++);
26679 __Pyx_GIVEREF(((PyObject *)__pyx_v_ioctx));
26680 __Pyx_GOTREF(__pyx_v_self->ioctx);
26681 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
26682 __pyx_v_self->ioctx = __pyx_v_ioctx;
26683
26684 /* "rados.pyx":1822
26685 * def __cinit__(self, Ioctx ioctx, object name, rados_snap_t snap_id):
26686 * self.ioctx = ioctx
26687 * self.name = name # <<<<<<<<<<<<<<
26688 * self.snap_id = snap_id
26689 *
26690 */
26691 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
26692 __Pyx_GIVEREF(__pyx_v_name);
26693 __Pyx_GOTREF(__pyx_v_self->name);
26694 __Pyx_DECREF(__pyx_v_self->name)do { if ( --((PyObject*)(__pyx_v_self->name))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
name)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->name)))); } while (0)
;
26695 __pyx_v_self->name = __pyx_v_name;
26696
26697 /* "rados.pyx":1823
26698 * self.ioctx = ioctx
26699 * self.name = name
26700 * self.snap_id = snap_id # <<<<<<<<<<<<<<
26701 *
26702 * def __str__(self):
26703 */
26704 __pyx_v_self->snap_id = __pyx_v_snap_id;
26705
26706 /* "rados.pyx":1820
26707 * cdef public rados_snap_t snap_id
26708 *
26709 * def __cinit__(self, Ioctx ioctx, object name, rados_snap_t snap_id): # <<<<<<<<<<<<<<
26710 * self.ioctx = ioctx
26711 * self.name = name
26712 */
26713
26714 /* function exit code */
26715 __pyx_r = 0;
26716 __Pyx_RefNannyFinishContext();
26717 return __pyx_r;
26718}
26719
26720/* "rados.pyx":1825
26721 * self.snap_id = snap_id
26722 *
26723 * def __str__(self): # <<<<<<<<<<<<<<
26724 * return "rados.Snap(ioctx=%s,name=%s,snap_id=%d)" \
26725 * % (str(self.ioctx), self.name, self.snap_id)
26726 */
26727
26728/* Python wrapper */
26729static PyObject *__pyx_pw_5rados_4Snap_3__str__(PyObject *__pyx_v_self); /*proto*/
26730static PyObject *__pyx_pw_5rados_4Snap_3__str__(PyObject *__pyx_v_self) {
26731 PyObject *__pyx_r = 0;
26732 __Pyx_RefNannyDeclarations
26733 __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
26734 __pyx_r = __pyx_pf_5rados_4Snap_2__str__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self));
26735
26736 /* function exit code */
26737 __Pyx_RefNannyFinishContext();
26738 return __pyx_r;
26739}
26740
26741static PyObject *__pyx_pf_5rados_4Snap_2__str__(struct __pyx_obj_5rados_Snap *__pyx_v_self) {
26742 PyObject *__pyx_r = NULL((void*)0);
26743 __Pyx_RefNannyDeclarations
26744 PyObject *__pyx_t_1 = NULL((void*)0);
26745 PyObject *__pyx_t_2 = NULL((void*)0);
26746 PyObject *__pyx_t_3 = NULL((void*)0);
26747 int __pyx_lineno = 0;
26748 const char *__pyx_filename = NULL((void*)0);
26749 int __pyx_clineno = 0;
26750 __Pyx_RefNannySetupContext("__str__", 0);
26751
26752 /* "rados.pyx":1826
26753 *
26754 * def __str__(self):
26755 * return "rados.Snap(ioctx=%s,name=%s,snap_id=%d)" \ # <<<<<<<<<<<<<<
26756 * % (str(self.ioctx), self.name, self.snap_id)
26757 *
26758 */
26759 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
26760
26761 /* "rados.pyx":1827
26762 * def __str__(self):
26763 * return "rados.Snap(ioctx=%s,name=%s,snap_id=%d)" \
26764 * % (str(self.ioctx), self.name, self.snap_id) # <<<<<<<<<<<<<<
26765 *
26766 * def get_timestamp(self):
26767 */
26768 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__26768; goto __pyx_L1_error;}
26769 __Pyx_GOTREF(__pyx_t_1);
26770 __Pyx_INCREF(((PyObject *)__pyx_v_self->ioctx))( ((PyObject*)(((PyObject *)__pyx_v_self->ioctx)))->ob_refcnt
++)
;
26771 __Pyx_GIVEREF(((PyObject *)__pyx_v_self->ioctx));
26772 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->ioctx))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self->ioctx))
;
26773 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__26773; goto __pyx_L1_error;}
26774 __Pyx_GOTREF(__pyx_t_2);
26775 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
26776 __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_self->snap_id); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__26776; goto __pyx_L1_error;}
26777 __Pyx_GOTREF(__pyx_t_1);
26778 __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__26778; goto __pyx_L1_error;}
26779 __Pyx_GOTREF(__pyx_t_3);
26780 __Pyx_GIVEREF(__pyx_t_2);
26781 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_2);
26782 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
26783 __Pyx_GIVEREF(__pyx_v_self->name);
26784 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_v_self
->name)
;
26785 __Pyx_GIVEREF(__pyx_t_1);
26786 PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1)(((PyTupleObject *)(__pyx_t_3))->ob_item[2] = __pyx_t_1);
26787 __pyx_t_2 = 0;
26788 __pyx_t_1 = 0;
26789 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_rados_Snap_ioctx_s_name_s_snap_i, __pyx_t_3)PyString_Format(__pyx_kp_s_rados_Snap_ioctx_s_name_s_snap_i, __pyx_t_3
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__26789; goto __pyx_L1_error;}
26790 __Pyx_GOTREF(__pyx_t_1);
26791 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
26792 __pyx_r = __pyx_t_1;
26793 __pyx_t_1 = 0;
26794 goto __pyx_L0;
26795
26796 /* "rados.pyx":1825
26797 * self.snap_id = snap_id
26798 *
26799 * def __str__(self): # <<<<<<<<<<<<<<
26800 * return "rados.Snap(ioctx=%s,name=%s,snap_id=%d)" \
26801 * % (str(self.ioctx), self.name, self.snap_id)
26802 */
26803
26804 /* function exit code */
26805 __pyx_L1_error:;
26806 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
26807 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
26808 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
26809 __Pyx_AddTraceback("rados.Snap.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
26810 __pyx_r = NULL((void*)0);
26811 __pyx_L0:;
26812 __Pyx_XGIVEREF(__pyx_r);
26813 __Pyx_RefNannyFinishContext();
26814 return __pyx_r;
26815}
26816
26817/* "rados.pyx":1829
26818 * % (str(self.ioctx), self.name, self.snap_id)
26819 *
26820 * def get_timestamp(self): # <<<<<<<<<<<<<<
26821 * """
26822 * Find when a snapshot in the current pool occurred
26823 */
26824
26825/* Python wrapper */
26826static PyObject *__pyx_pw_5rados_4Snap_5get_timestamp(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
26827static char __pyx_doc_5rados_4Snap_4get_timestamp[] = "Snap.get_timestamp(self)\n\n Find when a snapshot in the current pool occurred\n\n :raises: :class:`Error`\n :returns: datetime - the data and time the snapshot was created\n ";
26828static PyObject *__pyx_pw_5rados_4Snap_5get_timestamp(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
26829 PyObject *__pyx_r = 0;
26830 __Pyx_RefNannyDeclarations
26831 __Pyx_RefNannySetupContext("get_timestamp (wrapper)", 0);
26832 __pyx_r = __pyx_pf_5rados_4Snap_4get_timestamp(((struct __pyx_obj_5rados_Snap *)__pyx_v_self));
26833
26834 /* function exit code */
26835 __Pyx_RefNannyFinishContext();
26836 return __pyx_r;
26837}
26838
26839static PyObject *__pyx_pf_5rados_4Snap_4get_timestamp(struct __pyx_obj_5rados_Snap *__pyx_v_self) {
26840 time_t __pyx_v_snap_time;
26841 int __pyx_v_ret;
26842 PyObject *__pyx_r = NULL((void*)0);
26843 __Pyx_RefNannyDeclarations
26844 int __pyx_t_1;
26845 PyObject *__pyx_t_2 = NULL((void*)0);
26846 PyObject *__pyx_t_3 = NULL((void*)0);
26847 PyObject *__pyx_t_4 = NULL((void*)0);
26848 PyObject *__pyx_t_5 = NULL((void*)0);
26849 PyObject *__pyx_t_6 = NULL((void*)0);
26850 int __pyx_lineno = 0;
26851 const char *__pyx_filename = NULL((void*)0);
26852 int __pyx_clineno = 0;
26853 __Pyx_RefNannySetupContext("get_timestamp", 0);
26854
26855 /* "rados.pyx":1838
26856 * cdef time_t snap_time
26857 *
26858 * with nogil: # <<<<<<<<<<<<<<
26859 * ret = rados_ioctx_snap_get_stamp(self.ioctx.io, self.snap_id, &snap_time)
26860 * if ret != 0:
26861 */
26862 {
26863 #ifdef WITH_THREAD1
26864 PyThreadState *_save;
26865 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
26866 #endif
26867 /*try:*/ {
26868
26869 /* "rados.pyx":1839
26870 *
26871 * with nogil:
26872 * ret = rados_ioctx_snap_get_stamp(self.ioctx.io, self.snap_id, &snap_time) # <<<<<<<<<<<<<<
26873 * if ret != 0:
26874 * raise make_ex(ret, "rados_ioctx_snap_get_stamp error")
26875 */
26876 __pyx_v_ret = rados_ioctx_snap_get_stamp(__pyx_v_self->ioctx->io, __pyx_v_self->snap_id, (&__pyx_v_snap_time));
26877 }
26878
26879 /* "rados.pyx":1838
26880 * cdef time_t snap_time
26881 *
26882 * with nogil: # <<<<<<<<<<<<<<
26883 * ret = rados_ioctx_snap_get_stamp(self.ioctx.io, self.snap_id, &snap_time)
26884 * if ret != 0:
26885 */
26886 /*finally:*/ {
26887 /*normal exit:*/{
26888 #ifdef WITH_THREAD1
26889 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
26890 #endif
26891 goto __pyx_L5;
26892 }
26893 __pyx_L5:;
26894 }
26895 }
26896
26897 /* "rados.pyx":1840
26898 * with nogil:
26899 * ret = rados_ioctx_snap_get_stamp(self.ioctx.io, self.snap_id, &snap_time)
26900 * if ret != 0: # <<<<<<<<<<<<<<
26901 * raise make_ex(ret, "rados_ioctx_snap_get_stamp error")
26902 * return datetime.fromtimestamp(snap_time)
26903 */
26904 __pyx_t_1 = ((__pyx_v_ret != 0) != 0);
26905 if (__pyx_t_1) {
26906
26907 /* "rados.pyx":1841
26908 * ret = rados_ioctx_snap_get_stamp(self.ioctx.io, self.snap_id, &snap_time)
26909 * if ret != 0:
26910 * raise make_ex(ret, "rados_ioctx_snap_get_stamp error") # <<<<<<<<<<<<<<
26911 * return datetime.fromtimestamp(snap_time)
26912 *
26913 */
26914 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__26914; goto __pyx_L1_error;}
26915 __Pyx_GOTREF(__pyx_t_2);
26916 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_rados_ioctx_snap_get_stamp_error); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__26916; goto __pyx_L1_error;}
26917 __Pyx_GOTREF(__pyx_t_3);
26918 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
26919 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
26920 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
26921 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1841; __pyx_clineno = __LINE__26921; goto __pyx_L1_error;}
26922
26923 /* "rados.pyx":1840
26924 * with nogil:
26925 * ret = rados_ioctx_snap_get_stamp(self.ioctx.io, self.snap_id, &snap_time)
26926 * if ret != 0: # <<<<<<<<<<<<<<
26927 * raise make_ex(ret, "rados_ioctx_snap_get_stamp error")
26928 * return datetime.fromtimestamp(snap_time)
26929 */
26930 }
26931
26932 /* "rados.pyx":1842
26933 * if ret != 0:
26934 * raise make_ex(ret, "rados_ioctx_snap_get_stamp error")
26935 * return datetime.fromtimestamp(snap_time) # <<<<<<<<<<<<<<
26936 *
26937 *
26938 */
26939 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
26940 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_datetime); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__26940; goto __pyx_L1_error;}
26941 __Pyx_GOTREF(__pyx_t_2);
26942 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fromtimestamp); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__26942; goto __pyx_L1_error;}
26943 __Pyx_GOTREF(__pyx_t_4);
26944 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
26945 __pyx_t_2 = __Pyx_PyInt_From_time_t(__pyx_v_snap_time); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__26945; goto __pyx_L1_error;}
26946 __Pyx_GOTREF(__pyx_t_2);
26947 __pyx_t_5 = NULL((void*)0);
26948 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
26949 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
26950 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
26951 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
26952 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
26953 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
26954 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
26955 }
26956 }
26957 if (!__pyx_t_5) {
26958 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__26958; goto __pyx_L1_error;}
26959 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
26960 __Pyx_GOTREF(__pyx_t_3);
26961 } else {
26962 __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__26962; goto __pyx_L1_error;}
26963 __Pyx_GOTREF(__pyx_t_6);
26964 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
26965 __Pyx_GIVEREF(__pyx_t_2);
26966 PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+1] = __pyx_t_2);
26967 __pyx_t_2 = 0;
26968 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__26968; goto __pyx_L1_error;}
26969 __Pyx_GOTREF(__pyx_t_3);
26970 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
26971 }
26972 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
26973 __pyx_r = __pyx_t_3;
26974 __pyx_t_3 = 0;
26975 goto __pyx_L0;
26976
26977 /* "rados.pyx":1829
26978 * % (str(self.ioctx), self.name, self.snap_id)
26979 *
26980 * def get_timestamp(self): # <<<<<<<<<<<<<<
26981 * """
26982 * Find when a snapshot in the current pool occurred
26983 */
26984
26985 /* function exit code */
26986 __pyx_L1_error:;
26987 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
26988 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
26989 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
26990 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
26991 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
26992 __Pyx_AddTraceback("rados.Snap.get_timestamp", __pyx_clineno, __pyx_lineno, __pyx_filename);
26993 __pyx_r = NULL((void*)0);
26994 __pyx_L0:;
26995 __Pyx_XGIVEREF(__pyx_r);
26996 __Pyx_RefNannyFinishContext();
26997 return __pyx_r;
26998}
26999
27000/* "rados.pyx":1813
27001 * cdef class Snap(object):
27002 * """Snapshot object"""
27003 * cdef public Ioctx ioctx # <<<<<<<<<<<<<<
27004 * cdef public object name
27005 *
27006 */
27007
27008/* Python wrapper */
27009static PyObject *__pyx_pw_5rados_4Snap_5ioctx_1__get__(PyObject *__pyx_v_self); /*proto*/
27010static PyObject *__pyx_pw_5rados_4Snap_5ioctx_1__get__(PyObject *__pyx_v_self) {
27011 PyObject *__pyx_r = 0;
27012 __Pyx_RefNannyDeclarations
27013 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27014 __pyx_r = __pyx_pf_5rados_4Snap_5ioctx___get__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self));
27015
27016 /* function exit code */
27017 __Pyx_RefNannyFinishContext();
27018 return __pyx_r;
27019}
27020
27021static PyObject *__pyx_pf_5rados_4Snap_5ioctx___get__(struct __pyx_obj_5rados_Snap *__pyx_v_self) {
27022 PyObject *__pyx_r = NULL((void*)0);
27023 __Pyx_RefNannyDeclarations
27024 __Pyx_RefNannySetupContext("__get__", 0);
27025 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
27026 __Pyx_INCREF(((PyObject *)__pyx_v_self->ioctx))( ((PyObject*)(((PyObject *)__pyx_v_self->ioctx)))->ob_refcnt
++)
;
27027 __pyx_r = ((PyObject *)__pyx_v_self->ioctx);
27028 goto __pyx_L0;
27029
27030 /* function exit code */
27031 __pyx_L0:;
27032 __Pyx_XGIVEREF(__pyx_r);
27033 __Pyx_RefNannyFinishContext();
27034 return __pyx_r;
27035}
27036
27037/* Python wrapper */
27038static int __pyx_pw_5rados_4Snap_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27039static int __pyx_pw_5rados_4Snap_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27040 int __pyx_r;
27041 __Pyx_RefNannyDeclarations
27042 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27043 __pyx_r = __pyx_pf_5rados_4Snap_5ioctx_2__set__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27044
27045 /* function exit code */
27046 __Pyx_RefNannyFinishContext();
27047 return __pyx_r;
27048}
27049
27050static int __pyx_pf_5rados_4Snap_5ioctx_2__set__(struct __pyx_obj_5rados_Snap *__pyx_v_self, PyObject *__pyx_v_value) {
27051 int __pyx_r;
27052 __Pyx_RefNannyDeclarations
27053 PyObject *__pyx_t_1 = NULL((void*)0);
27054 int __pyx_lineno = 0;
27055 const char *__pyx_filename = NULL((void*)0);
27056 int __pyx_clineno = 0;
27057 __Pyx_RefNannySetupContext("__set__", 0);
27058 if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx)))__builtin_expect(!!(((__pyx_v_value) == (&_Py_NoneStruct)
) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1813; __pyx_clineno = __LINE__27058; goto __pyx_L1_error;}
27059 __pyx_t_1 = __pyx_v_value;
27060 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
27061 __Pyx_GIVEREF(__pyx_t_1);
27062 __Pyx_GOTREF(__pyx_v_self->ioctx);
27063 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
27064 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)__pyx_t_1);
27065 __pyx_t_1 = 0;
27066
27067 /* function exit code */
27068 __pyx_r = 0;
27069 goto __pyx_L0;
27070 __pyx_L1_error:;
27071 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
27072 __Pyx_AddTraceback("rados.Snap.ioctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27073 __pyx_r = -1;
27074 __pyx_L0:;
27075 __Pyx_RefNannyFinishContext();
27076 return __pyx_r;
27077}
27078
27079/* Python wrapper */
27080static int __pyx_pw_5rados_4Snap_5ioctx_5__del__(PyObject *__pyx_v_self); /*proto*/
27081static int __pyx_pw_5rados_4Snap_5ioctx_5__del__(PyObject *__pyx_v_self) {
27082 int __pyx_r;
27083 __Pyx_RefNannyDeclarations
27084 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27085 __pyx_r = __pyx_pf_5rados_4Snap_5ioctx_4__del__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self));
27086
27087 /* function exit code */
27088 __Pyx_RefNannyFinishContext();
27089 return __pyx_r;
27090}
27091
27092static int __pyx_pf_5rados_4Snap_5ioctx_4__del__(struct __pyx_obj_5rados_Snap *__pyx_v_self) {
27093 int __pyx_r;
27094 __Pyx_RefNannyDeclarations
27095 __Pyx_RefNannySetupContext("__del__", 0);
27096 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
27097 __Pyx_GIVEREF(Py_None);
27098 __Pyx_GOTREF(__pyx_v_self->ioctx);
27099 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
27100 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct));
27101
27102 /* function exit code */
27103 __pyx_r = 0;
27104 __Pyx_RefNannyFinishContext();
27105 return __pyx_r;
27106}
27107
27108/* "rados.pyx":1814
27109 * """Snapshot object"""
27110 * cdef public Ioctx ioctx
27111 * cdef public object name # <<<<<<<<<<<<<<
27112 *
27113 * # NOTE(sileht): old API was storing the ctypes object
27114 */
27115
27116/* Python wrapper */
27117static PyObject *__pyx_pw_5rados_4Snap_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
27118static PyObject *__pyx_pw_5rados_4Snap_4name_1__get__(PyObject *__pyx_v_self) {
27119 PyObject *__pyx_r = 0;
27120 __Pyx_RefNannyDeclarations
27121 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27122 __pyx_r = __pyx_pf_5rados_4Snap_4name___get__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self));
27123
27124 /* function exit code */
27125 __Pyx_RefNannyFinishContext();
27126 return __pyx_r;
27127}
27128
27129static PyObject *__pyx_pf_5rados_4Snap_4name___get__(struct __pyx_obj_5rados_Snap *__pyx_v_self) {
27130 PyObject *__pyx_r = NULL((void*)0);
27131 __Pyx_RefNannyDeclarations
27132 __Pyx_RefNannySetupContext("__get__", 0);
27133 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
27134 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
27135 __pyx_r = __pyx_v_self->name;
27136 goto __pyx_L0;
27137
27138 /* function exit code */
27139 __pyx_L0:;
27140 __Pyx_XGIVEREF(__pyx_r);
27141 __Pyx_RefNannyFinishContext();
27142 return __pyx_r;
27143}
27144
27145/* Python wrapper */
27146static int __pyx_pw_5rados_4Snap_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27147static int __pyx_pw_5rados_4Snap_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27148 int __pyx_r;
27149 __Pyx_RefNannyDeclarations
27150 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27151 __pyx_r = __pyx_pf_5rados_4Snap_4name_2__set__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27152
27153 /* function exit code */
27154 __Pyx_RefNannyFinishContext();
27155 return __pyx_r;
27156}
27157
27158static int __pyx_pf_5rados_4Snap_4name_2__set__(struct __pyx_obj_5rados_Snap *__pyx_v_self, PyObject *__pyx_v_value) {
27159 int __pyx_r;
27160 __Pyx_RefNannyDeclarations
27161 __Pyx_RefNannySetupContext("__set__", 0);
27162 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
27163 __Pyx_GIVEREF(__pyx_v_value);
27164 __Pyx_GOTREF(__pyx_v_self->name);
27165 __Pyx_DECREF(__pyx_v_self->name)do { if ( --((PyObject*)(__pyx_v_self->name))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
name)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->name)))); } while (0)
;
27166 __pyx_v_self->name = __pyx_v_value;
27167
27168 /* function exit code */
27169 __pyx_r = 0;
27170 __Pyx_RefNannyFinishContext();
27171 return __pyx_r;
27172}
27173
27174/* Python wrapper */
27175static int __pyx_pw_5rados_4Snap_4name_5__del__(PyObject *__pyx_v_self); /*proto*/
27176static int __pyx_pw_5rados_4Snap_4name_5__del__(PyObject *__pyx_v_self) {
27177 int __pyx_r;
27178 __Pyx_RefNannyDeclarations
27179 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
27180 __pyx_r = __pyx_pf_5rados_4Snap_4name_4__del__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self));
27181
27182 /* function exit code */
27183 __Pyx_RefNannyFinishContext();
27184 return __pyx_r;
27185}
27186
27187static int __pyx_pf_5rados_4Snap_4name_4__del__(struct __pyx_obj_5rados_Snap *__pyx_v_self) {
27188 int __pyx_r;
27189 __Pyx_RefNannyDeclarations
27190 __Pyx_RefNannySetupContext("__del__", 0);
27191 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
27192 __Pyx_GIVEREF(Py_None);
27193 __Pyx_GOTREF(__pyx_v_self->name);
27194 __Pyx_DECREF(__pyx_v_self->name)do { if ( --((PyObject*)(__pyx_v_self->name))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
name)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->name)))); } while (0)
;
27195 __pyx_v_self->name = Py_None(&_Py_NoneStruct);
27196
27197 /* function exit code */
27198 __pyx_r = 0;
27199 __Pyx_RefNannyFinishContext();
27200 return __pyx_r;
27201}
27202
27203/* "rados.pyx":1818
27204 * # NOTE(sileht): old API was storing the ctypes object
27205 * # instead of the value ....
27206 * cdef public rados_snap_t snap_id # <<<<<<<<<<<<<<
27207 *
27208 * def __cinit__(self, Ioctx ioctx, object name, rados_snap_t snap_id):
27209 */
27210
27211/* Python wrapper */
27212static PyObject *__pyx_pw_5rados_4Snap_7snap_id_1__get__(PyObject *__pyx_v_self); /*proto*/
27213static PyObject *__pyx_pw_5rados_4Snap_7snap_id_1__get__(PyObject *__pyx_v_self) {
27214 PyObject *__pyx_r = 0;
27215 __Pyx_RefNannyDeclarations
27216 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
27217 __pyx_r = __pyx_pf_5rados_4Snap_7snap_id___get__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self));
27218
27219 /* function exit code */
27220 __Pyx_RefNannyFinishContext();
27221 return __pyx_r;
27222}
27223
27224static PyObject *__pyx_pf_5rados_4Snap_7snap_id___get__(struct __pyx_obj_5rados_Snap *__pyx_v_self) {
27225 PyObject *__pyx_r = NULL((void*)0);
27226 __Pyx_RefNannyDeclarations
27227 PyObject *__pyx_t_1 = NULL((void*)0);
27228 int __pyx_lineno = 0;
27229 const char *__pyx_filename = NULL((void*)0);
27230 int __pyx_clineno = 0;
27231 __Pyx_RefNannySetupContext("__get__", 0);
27232 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
27233 __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_self->snap_id); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__27233; goto __pyx_L1_error;}
27234 __Pyx_GOTREF(__pyx_t_1);
27235 __pyx_r = __pyx_t_1;
27236 __pyx_t_1 = 0;
27237 goto __pyx_L0;
27238
27239 /* function exit code */
27240 __pyx_L1_error:;
27241 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
27242 __Pyx_AddTraceback("rados.Snap.snap_id.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27243 __pyx_r = NULL((void*)0);
27244 __pyx_L0:;
27245 __Pyx_XGIVEREF(__pyx_r);
27246 __Pyx_RefNannyFinishContext();
27247 return __pyx_r;
27248}
27249
27250/* Python wrapper */
27251static int __pyx_pw_5rados_4Snap_7snap_id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
27252static int __pyx_pw_5rados_4Snap_7snap_id_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
27253 int __pyx_r;
27254 __Pyx_RefNannyDeclarations
27255 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
27256 __pyx_r = __pyx_pf_5rados_4Snap_7snap_id_2__set__(((struct __pyx_obj_5rados_Snap *)__pyx_v_self), ((PyObject *)__pyx_v_value));
27257
27258 /* function exit code */
27259 __Pyx_RefNannyFinishContext();
27260 return __pyx_r;
27261}
27262
27263static int __pyx_pf_5rados_4Snap_7snap_id_2__set__(struct __pyx_obj_5rados_Snap *__pyx_v_self, PyObject *__pyx_v_value) {
27264 int __pyx_r;
27265 __Pyx_RefNannyDeclarations
27266 rados_snap_t __pyx_t_1;
27267 int __pyx_lineno = 0;
27268 const char *__pyx_filename = NULL((void*)0);
27269 int __pyx_clineno = 0;
27270 __Pyx_RefNannySetupContext("__set__", 0);
27271 __pyx_t_1 = __Pyx_PyInt_As_uint64_t(__pyx_v_value); if (unlikely((__pyx_t_1 == (rados_snap_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_1 == (rados_snap_t)-1) &&
PyErr_Occurred()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1818; __pyx_clineno = __LINE__27271; goto __pyx_L1_error;}
27272 __pyx_v_self->snap_id = __pyx_t_1;
27273
27274 /* function exit code */
27275 __pyx_r = 0;
27276 goto __pyx_L0;
27277 __pyx_L1_error:;
27278 __Pyx_AddTraceback("rados.Snap.snap_id.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27279 __pyx_r = -1;
27280 __pyx_L0:;
27281 __Pyx_RefNannyFinishContext();
27282 return __pyx_r;
27283}
27284
27285/* "rados.pyx":1859
27286 * PyObject* buf
27287 *
27288 * def __cinit__(self, Ioctx ioctx, object oncomplete, object onsafe): # <<<<<<<<<<<<<<
27289 * self.oncomplete = oncomplete
27290 * self.onsafe = onsafe
27291 */
27292
27293/* Python wrapper */
27294static int __pyx_pw_5rados_10Completion_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
27295static int __pyx_pw_5rados_10Completion_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
27296 struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx = 0;
27297 PyObject *__pyx_v_oncomplete = 0;
27298 PyObject *__pyx_v_onsafe = 0;
27299 int __pyx_lineno = 0;
27300 const char *__pyx_filename = NULL((void*)0);
27301 int __pyx_clineno = 0;
27302 int __pyx_r;
27303 __Pyx_RefNannyDeclarations
27304 __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
27305 {
27306 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ioctx,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,0};
27307 PyObject* values[3] = {0,0,0};
27308 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
27309 Py_ssize_t kw_args;
27310 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
27311 switch (pos_args) {
27312 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
27313 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
27314 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
27315 case 0: break;
27316 default: goto __pyx_L5_argtuple_error;
27317 }
27318 kw_args = PyDict_Size(__pyx_kwds);
27319 switch (pos_args) {
27320 case 0:
27321 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx
)) != 0), 1)
) kw_args--;
27322 else goto __pyx_L5_argtuple_error;
27323 case 1:
27324 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete
)) != 0), 1)
) kw_args--;
27325 else {
27326 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1859; __pyx_clineno = __LINE__27326; goto __pyx_L3_error;}
27327 }
27328 case 2:
27329 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe
)) != 0), 1)
) kw_args--;
27330 else {
27331 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1859; __pyx_clineno = __LINE__27331; goto __pyx_L3_error;}
27332 }
27333 }
27334 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
27335 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__cinit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1859; __pyx_clineno = __LINE__27335; goto __pyx_L3_error;}
27336 }
27337 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
27338 goto __pyx_L5_argtuple_error;
27339 } else {
27340 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
27341 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
27342 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
27343 }
27344 __pyx_v_ioctx = ((struct __pyx_obj_5rados_Ioctx *)values[0]);
27345 __pyx_v_oncomplete = values[1];
27346 __pyx_v_onsafe = values[2];
27347 }
27348 goto __pyx_L4_argument_unpacking_done;
27349 __pyx_L5_argtuple_error:;
27350 __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1859; __pyx_clineno = __LINE__27350; goto __pyx_L3_error;}
27351 __pyx_L3_error:;
27352 __Pyx_AddTraceback("rados.Completion.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
27353 __Pyx_RefNannyFinishContext();
27354 return -1;
27355 __pyx_L4_argument_unpacking_done:;
27356 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0))__builtin_expect(!!(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ioctx
), __pyx_ptype_5rados_Ioctx, 1, "ioctx", 0)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1859; __pyx_clineno = __LINE__27356; goto __pyx_L1_error;}
27357 __pyx_r = __pyx_pf_5rados_10Completion___cinit__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self), __pyx_v_ioctx, __pyx_v_oncomplete, __pyx_v_onsafe);
27358
27359 /* function exit code */
27360 goto __pyx_L0;
27361 __pyx_L1_error:;
27362 __pyx_r = -1;
27363 __pyx_L0:;
27364 __Pyx_RefNannyFinishContext();
27365 return __pyx_r;
27366}
27367
27368static int __pyx_pf_5rados_10Completion___cinit__(struct __pyx_obj_5rados_Completion *__pyx_v_self, struct __pyx_obj_5rados_Ioctx *__pyx_v_ioctx, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe) {
27369 int __pyx_r;
27370 __Pyx_RefNannyDeclarations
27371 __Pyx_RefNannySetupContext("__cinit__", 0);
27372
27373 /* "rados.pyx":1860
27374 *
27375 * def __cinit__(self, Ioctx ioctx, object oncomplete, object onsafe):
27376 * self.oncomplete = oncomplete # <<<<<<<<<<<<<<
27377 * self.onsafe = onsafe
27378 * self.ioctx = ioctx
27379 */
27380 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
27381 __Pyx_GIVEREF(__pyx_v_oncomplete);
27382 __Pyx_GOTREF(__pyx_v_self->oncomplete);
27383 __Pyx_DECREF(__pyx_v_self->oncomplete)do { if ( --((PyObject*)(__pyx_v_self->oncomplete))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
oncomplete)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->oncomplete)))); } while (0)
;
27384 __pyx_v_self->oncomplete = __pyx_v_oncomplete;
27385
27386 /* "rados.pyx":1861
27387 * def __cinit__(self, Ioctx ioctx, object oncomplete, object onsafe):
27388 * self.oncomplete = oncomplete
27389 * self.onsafe = onsafe # <<<<<<<<<<<<<<
27390 * self.ioctx = ioctx
27391 *
27392 */
27393 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
27394 __Pyx_GIVEREF(__pyx_v_onsafe);
27395 __Pyx_GOTREF(__pyx_v_self->onsafe);
27396 __Pyx_DECREF(__pyx_v_self->onsafe)do { if ( --((PyObject*)(__pyx_v_self->onsafe))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
onsafe)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->onsafe)))); } while (0)
;
27397 __pyx_v_self->onsafe = __pyx_v_onsafe;
27398
27399 /* "rados.pyx":1862
27400 * self.oncomplete = oncomplete
27401 * self.onsafe = onsafe
27402 * self.ioctx = ioctx # <<<<<<<<<<<<<<
27403 *
27404 * def is_safe(self):
27405 */
27406 __Pyx_INCREF(((PyObject *)__pyx_v_ioctx))( ((PyObject*)(((PyObject *)__pyx_v_ioctx)))->ob_refcnt++);
27407 __Pyx_GIVEREF(((PyObject *)__pyx_v_ioctx));
27408 __Pyx_GOTREF(__pyx_v_self->ioctx);
27409 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
27410 __pyx_v_self->ioctx = __pyx_v_ioctx;
27411
27412 /* "rados.pyx":1859
27413 * PyObject* buf
27414 *
27415 * def __cinit__(self, Ioctx ioctx, object oncomplete, object onsafe): # <<<<<<<<<<<<<<
27416 * self.oncomplete = oncomplete
27417 * self.onsafe = onsafe
27418 */
27419
27420 /* function exit code */
27421 __pyx_r = 0;
27422 __Pyx_RefNannyFinishContext();
27423 return __pyx_r;
27424}
27425
27426/* "rados.pyx":1864
27427 * self.ioctx = ioctx
27428 *
27429 * def is_safe(self): # <<<<<<<<<<<<<<
27430 * """
27431 * Is an asynchronous operation safe?
27432 */
27433
27434/* Python wrapper */
27435static PyObject *__pyx_pw_5rados_10Completion_3is_safe(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
27436static char __pyx_doc_5rados_10Completion_2is_safe[] = "Completion.is_safe(self)\n\n Is an asynchronous operation safe?\n\n This does not imply that the safe callback has finished.\n\n :returns: True if the operation is safe\n ";
27437static PyObject *__pyx_pw_5rados_10Completion_3is_safe(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
27438 PyObject *__pyx_r = 0;
27439 __Pyx_RefNannyDeclarations
27440 __Pyx_RefNannySetupContext("is_safe (wrapper)", 0);
27441 __pyx_r = __pyx_pf_5rados_10Completion_2is_safe(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
27442
27443 /* function exit code */
27444 __Pyx_RefNannyFinishContext();
27445 return __pyx_r;
27446}
27447
27448static PyObject *__pyx_pf_5rados_10Completion_2is_safe(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
27449 int __pyx_v_ret;
27450 PyObject *__pyx_r = NULL((void*)0);
27451 __Pyx_RefNannyDeclarations
27452 PyObject *__pyx_t_1 = NULL((void*)0);
27453 int __pyx_lineno = 0;
27454 const char *__pyx_filename = NULL((void*)0);
27455 int __pyx_clineno = 0;
27456 __Pyx_RefNannySetupContext("is_safe", 0);
27457
27458 /* "rados.pyx":1872
27459 * :returns: True if the operation is safe
27460 * """
27461 * with nogil: # <<<<<<<<<<<<<<
27462 * ret = rados_aio_is_safe(self.rados_comp)
27463 * return ret == 1
27464 */
27465 {
27466 #ifdef WITH_THREAD1
27467 PyThreadState *_save;
27468 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
27469 #endif
27470 /*try:*/ {
27471
27472 /* "rados.pyx":1873
27473 * """
27474 * with nogil:
27475 * ret = rados_aio_is_safe(self.rados_comp) # <<<<<<<<<<<<<<
27476 * return ret == 1
27477 *
27478 */
27479 __pyx_v_ret = rados_aio_is_safe(__pyx_v_self->rados_comp);
27480 }
27481
27482 /* "rados.pyx":1872
27483 * :returns: True if the operation is safe
27484 * """
27485 * with nogil: # <<<<<<<<<<<<<<
27486 * ret = rados_aio_is_safe(self.rados_comp)
27487 * return ret == 1
27488 */
27489 /*finally:*/ {
27490 /*normal exit:*/{
27491 #ifdef WITH_THREAD1
27492 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
27493 #endif
27494 goto __pyx_L5;
27495 }
27496 __pyx_L5:;
27497 }
27498 }
27499
27500 /* "rados.pyx":1874
27501 * with nogil:
27502 * ret = rados_aio_is_safe(self.rados_comp)
27503 * return ret == 1 # <<<<<<<<<<<<<<
27504 *
27505 * def is_complete(self):
27506 */
27507 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
27508 __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_ret == 1))(((__pyx_v_ret == 1)) ? (( ((PyObject*)(((PyObject *) &_Py_TrueStruct
)))->ob_refcnt++), ((PyObject *) &_Py_TrueStruct)) : (
( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++), ((PyObject *) &_Py_ZeroStruct)))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__27508; goto __pyx_L1_error;}
27509 __Pyx_GOTREF(__pyx_t_1);
27510 __pyx_r = __pyx_t_1;
27511 __pyx_t_1 = 0;
27512 goto __pyx_L0;
27513
27514 /* "rados.pyx":1864
27515 * self.ioctx = ioctx
27516 *
27517 * def is_safe(self): # <<<<<<<<<<<<<<
27518 * """
27519 * Is an asynchronous operation safe?
27520 */
27521
27522 /* function exit code */
27523 __pyx_L1_error:;
27524 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
27525 __Pyx_AddTraceback("rados.Completion.is_safe", __pyx_clineno, __pyx_lineno, __pyx_filename);
27526 __pyx_r = NULL((void*)0);
27527 __pyx_L0:;
27528 __Pyx_XGIVEREF(__pyx_r);
27529 __Pyx_RefNannyFinishContext();
27530 return __pyx_r;
27531}
27532
27533/* "rados.pyx":1876
27534 * return ret == 1
27535 *
27536 * def is_complete(self): # <<<<<<<<<<<<<<
27537 * """
27538 * Has an asynchronous operation completed?
27539 */
27540
27541/* Python wrapper */
27542static PyObject *__pyx_pw_5rados_10Completion_5is_complete(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
27543static char __pyx_doc_5rados_10Completion_4is_complete[] = "Completion.is_complete(self)\n\n Has an asynchronous operation completed?\n\n This does not imply that the safe callback has finished.\n\n :returns: True if the operation is completed\n ";
27544static PyObject *__pyx_pw_5rados_10Completion_5is_complete(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
27545 PyObject *__pyx_r = 0;
27546 __Pyx_RefNannyDeclarations
27547 __Pyx_RefNannySetupContext("is_complete (wrapper)", 0);
27548 __pyx_r = __pyx_pf_5rados_10Completion_4is_complete(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
27549
27550 /* function exit code */
27551 __Pyx_RefNannyFinishContext();
27552 return __pyx_r;
27553}
27554
27555static PyObject *__pyx_pf_5rados_10Completion_4is_complete(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
27556 int __pyx_v_ret;
27557 PyObject *__pyx_r = NULL((void*)0);
27558 __Pyx_RefNannyDeclarations
27559 PyObject *__pyx_t_1 = NULL((void*)0);
27560 int __pyx_lineno = 0;
27561 const char *__pyx_filename = NULL((void*)0);
27562 int __pyx_clineno = 0;
27563 __Pyx_RefNannySetupContext("is_complete", 0);
27564
27565 /* "rados.pyx":1884
27566 * :returns: True if the operation is completed
27567 * """
27568 * with nogil: # <<<<<<<<<<<<<<
27569 * ret = rados_aio_is_complete(self.rados_comp)
27570 * return ret == 1
27571 */
27572 {
27573 #ifdef WITH_THREAD1
27574 PyThreadState *_save;
27575 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
27576 #endif
27577 /*try:*/ {
27578
27579 /* "rados.pyx":1885
27580 * """
27581 * with nogil:
27582 * ret = rados_aio_is_complete(self.rados_comp) # <<<<<<<<<<<<<<
27583 * return ret == 1
27584 *
27585 */
27586 __pyx_v_ret = rados_aio_is_complete(__pyx_v_self->rados_comp);
27587 }
27588
27589 /* "rados.pyx":1884
27590 * :returns: True if the operation is completed
27591 * """
27592 * with nogil: # <<<<<<<<<<<<<<
27593 * ret = rados_aio_is_complete(self.rados_comp)
27594 * return ret == 1
27595 */
27596 /*finally:*/ {
27597 /*normal exit:*/{
27598 #ifdef WITH_THREAD1
27599 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
27600 #endif
27601 goto __pyx_L5;
27602 }
27603 __pyx_L5:;
27604 }
27605 }
27606
27607 /* "rados.pyx":1886
27608 * with nogil:
27609 * ret = rados_aio_is_complete(self.rados_comp)
27610 * return ret == 1 # <<<<<<<<<<<<<<
27611 *
27612 * def wait_for_safe(self):
27613 */
27614 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
27615 __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_ret == 1))(((__pyx_v_ret == 1)) ? (( ((PyObject*)(((PyObject *) &_Py_TrueStruct
)))->ob_refcnt++), ((PyObject *) &_Py_TrueStruct)) : (
( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++), ((PyObject *) &_Py_ZeroStruct)))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__27615; goto __pyx_L1_error;}
27616 __Pyx_GOTREF(__pyx_t_1);
27617 __pyx_r = __pyx_t_1;
27618 __pyx_t_1 = 0;
27619 goto __pyx_L0;
27620
27621 /* "rados.pyx":1876
27622 * return ret == 1
27623 *
27624 * def is_complete(self): # <<<<<<<<<<<<<<
27625 * """
27626 * Has an asynchronous operation completed?
27627 */
27628
27629 /* function exit code */
27630 __pyx_L1_error:;
27631 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
27632 __Pyx_AddTraceback("rados.Completion.is_complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
27633 __pyx_r = NULL((void*)0);
27634 __pyx_L0:;
27635 __Pyx_XGIVEREF(__pyx_r);
27636 __Pyx_RefNannyFinishContext();
27637 return __pyx_r;
27638}
27639
27640/* "rados.pyx":1888
27641 * return ret == 1
27642 *
27643 * def wait_for_safe(self): # <<<<<<<<<<<<<<
27644 * """
27645 * Wait for an asynchronous operation to be marked safe
27646 */
27647
27648/* Python wrapper */
27649static PyObject *__pyx_pw_5rados_10Completion_7wait_for_safe(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
27650static char __pyx_doc_5rados_10Completion_6wait_for_safe[] = "Completion.wait_for_safe(self)\n\n Wait for an asynchronous operation to be marked safe\n\n This does not imply that the safe callback has finished.\n ";
27651static PyObject *__pyx_pw_5rados_10Completion_7wait_for_safe(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
27652 PyObject *__pyx_r = 0;
27653 __Pyx_RefNannyDeclarations
27654 __Pyx_RefNannySetupContext("wait_for_safe (wrapper)", 0);
27655 __pyx_r = __pyx_pf_5rados_10Completion_6wait_for_safe(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
27656
27657 /* function exit code */
27658 __Pyx_RefNannyFinishContext();
27659 return __pyx_r;
27660}
27661
27662static PyObject *__pyx_pf_5rados_10Completion_6wait_for_safe(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
27663 PyObject *__pyx_r = NULL((void*)0);
27664 __Pyx_RefNannyDeclarations
27665 __Pyx_RefNannySetupContext("wait_for_safe", 0);
27666
27667 /* "rados.pyx":1894
27668 * This does not imply that the safe callback has finished.
27669 * """
27670 * with nogil: # <<<<<<<<<<<<<<
27671 * rados_aio_wait_for_safe(self.rados_comp)
27672 *
27673 */
27674 {
27675 #ifdef WITH_THREAD1
27676 PyThreadState *_save;
27677 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
27678 #endif
27679 /*try:*/ {
27680
27681 /* "rados.pyx":1895
27682 * """
27683 * with nogil:
27684 * rados_aio_wait_for_safe(self.rados_comp) # <<<<<<<<<<<<<<
27685 *
27686 * def wait_for_complete(self):
27687 */
27688 rados_aio_wait_for_safe(__pyx_v_self->rados_comp);
27689 }
27690
27691 /* "rados.pyx":1894
27692 * This does not imply that the safe callback has finished.
27693 * """
27694 * with nogil: # <<<<<<<<<<<<<<
27695 * rados_aio_wait_for_safe(self.rados_comp)
27696 *
27697 */
27698 /*finally:*/ {
27699 /*normal exit:*/{
27700 #ifdef WITH_THREAD1
27701 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
27702 #endif
27703 goto __pyx_L5;
27704 }
27705 __pyx_L5:;
27706 }
27707 }
27708
27709 /* "rados.pyx":1888
27710 * return ret == 1
27711 *
27712 * def wait_for_safe(self): # <<<<<<<<<<<<<<
27713 * """
27714 * Wait for an asynchronous operation to be marked safe
27715 */
27716
27717 /* function exit code */
27718 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
27719 __Pyx_XGIVEREF(__pyx_r);
27720 __Pyx_RefNannyFinishContext();
27721 return __pyx_r;
27722}
27723
27724/* "rados.pyx":1897
27725 * rados_aio_wait_for_safe(self.rados_comp)
27726 *
27727 * def wait_for_complete(self): # <<<<<<<<<<<<<<
27728 * """
27729 * Wait for an asynchronous operation to complete
27730 */
27731
27732/* Python wrapper */
27733static PyObject *__pyx_pw_5rados_10Completion_9wait_for_complete(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
27734static char __pyx_doc_5rados_10Completion_8wait_for_complete[] = "Completion.wait_for_complete(self)\n\n Wait for an asynchronous operation to complete\n\n This does not imply that the complete callback has finished.\n ";
27735static PyObject *__pyx_pw_5rados_10Completion_9wait_for_complete(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
27736 PyObject *__pyx_r = 0;
27737 __Pyx_RefNannyDeclarations
27738 __Pyx_RefNannySetupContext("wait_for_complete (wrapper)", 0);
27739 __pyx_r = __pyx_pf_5rados_10Completion_8wait_for_complete(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
27740
27741 /* function exit code */
27742 __Pyx_RefNannyFinishContext();
27743 return __pyx_r;
27744}
27745
27746static PyObject *__pyx_pf_5rados_10Completion_8wait_for_complete(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
27747 PyObject *__pyx_r = NULL((void*)0);
27748 __Pyx_RefNannyDeclarations
27749 __Pyx_RefNannySetupContext("wait_for_complete", 0);
27750
27751 /* "rados.pyx":1903
27752 * This does not imply that the complete callback has finished.
27753 * """
27754 * with nogil: # <<<<<<<<<<<<<<
27755 * rados_aio_wait_for_complete(self.rados_comp)
27756 *
27757 */
27758 {
27759 #ifdef WITH_THREAD1
27760 PyThreadState *_save;
27761 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
27762 #endif
27763 /*try:*/ {
27764
27765 /* "rados.pyx":1904
27766 * """
27767 * with nogil:
27768 * rados_aio_wait_for_complete(self.rados_comp) # <<<<<<<<<<<<<<
27769 *
27770 * def wait_for_safe_and_cb(self):
27771 */
27772 rados_aio_wait_for_complete(__pyx_v_self->rados_comp);
27773 }
27774
27775 /* "rados.pyx":1903
27776 * This does not imply that the complete callback has finished.
27777 * """
27778 * with nogil: # <<<<<<<<<<<<<<
27779 * rados_aio_wait_for_complete(self.rados_comp)
27780 *
27781 */
27782 /*finally:*/ {
27783 /*normal exit:*/{
27784 #ifdef WITH_THREAD1
27785 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
27786 #endif
27787 goto __pyx_L5;
27788 }
27789 __pyx_L5:;
27790 }
27791 }
27792
27793 /* "rados.pyx":1897
27794 * rados_aio_wait_for_safe(self.rados_comp)
27795 *
27796 * def wait_for_complete(self): # <<<<<<<<<<<<<<
27797 * """
27798 * Wait for an asynchronous operation to complete
27799 */
27800
27801 /* function exit code */
27802 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
27803 __Pyx_XGIVEREF(__pyx_r);
27804 __Pyx_RefNannyFinishContext();
27805 return __pyx_r;
27806}
27807
27808/* "rados.pyx":1906
27809 * rados_aio_wait_for_complete(self.rados_comp)
27810 *
27811 * def wait_for_safe_and_cb(self): # <<<<<<<<<<<<<<
27812 * """
27813 * Wait for an asynchronous operation to be marked safe and for
27814 */
27815
27816/* Python wrapper */
27817static PyObject *__pyx_pw_5rados_10Completion_11wait_for_safe_and_cb(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
27818static char __pyx_doc_5rados_10Completion_10wait_for_safe_and_cb[] = "Completion.wait_for_safe_and_cb(self)\n\n Wait for an asynchronous operation to be marked safe and for\n the safe callback to have returned\n ";
27819static PyObject *__pyx_pw_5rados_10Completion_11wait_for_safe_and_cb(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
27820 PyObject *__pyx_r = 0;
27821 __Pyx_RefNannyDeclarations
27822 __Pyx_RefNannySetupContext("wait_for_safe_and_cb (wrapper)", 0);
27823 __pyx_r = __pyx_pf_5rados_10Completion_10wait_for_safe_and_cb(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
27824
27825 /* function exit code */
27826 __Pyx_RefNannyFinishContext();
27827 return __pyx_r;
27828}
27829
27830static PyObject *__pyx_pf_5rados_10Completion_10wait_for_safe_and_cb(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
27831 PyObject *__pyx_r = NULL((void*)0);
27832 __Pyx_RefNannyDeclarations
27833 __Pyx_RefNannySetupContext("wait_for_safe_and_cb", 0);
27834
27835 /* "rados.pyx":1911
27836 * the safe callback to have returned
27837 * """
27838 * with nogil: # <<<<<<<<<<<<<<
27839 * rados_aio_wait_for_safe_and_cb(self.rados_comp)
27840 *
27841 */
27842 {
27843 #ifdef WITH_THREAD1
27844 PyThreadState *_save;
27845 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
27846 #endif
27847 /*try:*/ {
27848
27849 /* "rados.pyx":1912
27850 * """
27851 * with nogil:
27852 * rados_aio_wait_for_safe_and_cb(self.rados_comp) # <<<<<<<<<<<<<<
27853 *
27854 * def wait_for_complete_and_cb(self):
27855 */
27856 rados_aio_wait_for_safe_and_cb(__pyx_v_self->rados_comp);
27857 }
27858
27859 /* "rados.pyx":1911
27860 * the safe callback to have returned
27861 * """
27862 * with nogil: # <<<<<<<<<<<<<<
27863 * rados_aio_wait_for_safe_and_cb(self.rados_comp)
27864 *
27865 */
27866 /*finally:*/ {
27867 /*normal exit:*/{
27868 #ifdef WITH_THREAD1
27869 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
27870 #endif
27871 goto __pyx_L5;
27872 }
27873 __pyx_L5:;
27874 }
27875 }
27876
27877 /* "rados.pyx":1906
27878 * rados_aio_wait_for_complete(self.rados_comp)
27879 *
27880 * def wait_for_safe_and_cb(self): # <<<<<<<<<<<<<<
27881 * """
27882 * Wait for an asynchronous operation to be marked safe and for
27883 */
27884
27885 /* function exit code */
27886 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
27887 __Pyx_XGIVEREF(__pyx_r);
27888 __Pyx_RefNannyFinishContext();
27889 return __pyx_r;
27890}
27891
27892/* "rados.pyx":1914
27893 * rados_aio_wait_for_safe_and_cb(self.rados_comp)
27894 *
27895 * def wait_for_complete_and_cb(self): # <<<<<<<<<<<<<<
27896 * """
27897 * Wait for an asynchronous operation to complete and for the
27898 */
27899
27900/* Python wrapper */
27901static PyObject *__pyx_pw_5rados_10Completion_13wait_for_complete_and_cb(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
27902static char __pyx_doc_5rados_10Completion_12wait_for_complete_and_cb[] = "Completion.wait_for_complete_and_cb(self)\n\n Wait for an asynchronous operation to complete and for the\n complete callback to have returned\n\n :returns: whether the operation is completed\n ";
27903static PyObject *__pyx_pw_5rados_10Completion_13wait_for_complete_and_cb(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
27904 PyObject *__pyx_r = 0;
27905 __Pyx_RefNannyDeclarations
27906 __Pyx_RefNannySetupContext("wait_for_complete_and_cb (wrapper)", 0);
27907 __pyx_r = __pyx_pf_5rados_10Completion_12wait_for_complete_and_cb(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
27908
27909 /* function exit code */
27910 __Pyx_RefNannyFinishContext();
27911 return __pyx_r;
27912}
27913
27914static PyObject *__pyx_pf_5rados_10Completion_12wait_for_complete_and_cb(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
27915 int __pyx_v_ret;
27916 PyObject *__pyx_r = NULL((void*)0);
27917 __Pyx_RefNannyDeclarations
27918 PyObject *__pyx_t_1 = NULL((void*)0);
27919 int __pyx_lineno = 0;
27920 const char *__pyx_filename = NULL((void*)0);
27921 int __pyx_clineno = 0;
27922 __Pyx_RefNannySetupContext("wait_for_complete_and_cb", 0);
27923
27924 /* "rados.pyx":1921
27925 * :returns: whether the operation is completed
27926 * """
27927 * with nogil: # <<<<<<<<<<<<<<
27928 * ret = rados_aio_wait_for_complete_and_cb(self.rados_comp)
27929 * return ret
27930 */
27931 {
27932 #ifdef WITH_THREAD1
27933 PyThreadState *_save;
27934 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
27935 #endif
27936 /*try:*/ {
27937
27938 /* "rados.pyx":1922
27939 * """
27940 * with nogil:
27941 * ret = rados_aio_wait_for_complete_and_cb(self.rados_comp) # <<<<<<<<<<<<<<
27942 * return ret
27943 *
27944 */
27945 __pyx_v_ret = rados_aio_wait_for_complete_and_cb(__pyx_v_self->rados_comp);
27946 }
27947
27948 /* "rados.pyx":1921
27949 * :returns: whether the operation is completed
27950 * """
27951 * with nogil: # <<<<<<<<<<<<<<
27952 * ret = rados_aio_wait_for_complete_and_cb(self.rados_comp)
27953 * return ret
27954 */
27955 /*finally:*/ {
27956 /*normal exit:*/{
27957 #ifdef WITH_THREAD1
27958 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
27959 #endif
27960 goto __pyx_L5;
27961 }
27962 __pyx_L5:;
27963 }
27964 }
27965
27966 /* "rados.pyx":1923
27967 * with nogil:
27968 * ret = rados_aio_wait_for_complete_and_cb(self.rados_comp)
27969 * return ret # <<<<<<<<<<<<<<
27970 *
27971 * def get_return_value(self):
27972 */
27973 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
27974 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__27974; goto __pyx_L1_error;}
27975 __Pyx_GOTREF(__pyx_t_1);
27976 __pyx_r = __pyx_t_1;
27977 __pyx_t_1 = 0;
27978 goto __pyx_L0;
27979
27980 /* "rados.pyx":1914
27981 * rados_aio_wait_for_safe_and_cb(self.rados_comp)
27982 *
27983 * def wait_for_complete_and_cb(self): # <<<<<<<<<<<<<<
27984 * """
27985 * Wait for an asynchronous operation to complete and for the
27986 */
27987
27988 /* function exit code */
27989 __pyx_L1_error:;
27990 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
27991 __Pyx_AddTraceback("rados.Completion.wait_for_complete_and_cb", __pyx_clineno, __pyx_lineno, __pyx_filename);
27992 __pyx_r = NULL((void*)0);
27993 __pyx_L0:;
27994 __Pyx_XGIVEREF(__pyx_r);
27995 __Pyx_RefNannyFinishContext();
27996 return __pyx_r;
27997}
27998
27999/* "rados.pyx":1925
28000 * return ret
28001 *
28002 * def get_return_value(self): # <<<<<<<<<<<<<<
28003 * """
28004 * Get the return value of an asychronous operation
28005 */
28006
28007/* Python wrapper */
28008static PyObject *__pyx_pw_5rados_10Completion_15get_return_value(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
28009static char __pyx_doc_5rados_10Completion_14get_return_value[] = "Completion.get_return_value(self)\n\n Get the return value of an asychronous operation\n\n The return value is set when the operation is complete or safe,\n whichever comes first.\n\n :returns: int - return value of the operation\n ";
28010static PyObject *__pyx_pw_5rados_10Completion_15get_return_value(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
28011 PyObject *__pyx_r = 0;
28012 __Pyx_RefNannyDeclarations
28013 __Pyx_RefNannySetupContext("get_return_value (wrapper)", 0);
28014 __pyx_r = __pyx_pf_5rados_10Completion_14get_return_value(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
28015
28016 /* function exit code */
28017 __Pyx_RefNannyFinishContext();
28018 return __pyx_r;
28019}
28020
28021static PyObject *__pyx_pf_5rados_10Completion_14get_return_value(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
28022 int __pyx_v_ret;
28023 PyObject *__pyx_r = NULL((void*)0);
28024 __Pyx_RefNannyDeclarations
28025 PyObject *__pyx_t_1 = NULL((void*)0);
28026 int __pyx_lineno = 0;
28027 const char *__pyx_filename = NULL((void*)0);
28028 int __pyx_clineno = 0;
28029 __Pyx_RefNannySetupContext("get_return_value", 0);
28030
28031 /* "rados.pyx":1934
28032 * :returns: int - return value of the operation
28033 * """
28034 * with nogil: # <<<<<<<<<<<<<<
28035 * ret = rados_aio_get_return_value(self.rados_comp)
28036 * return ret
28037 */
28038 {
28039 #ifdef WITH_THREAD1
28040 PyThreadState *_save;
28041 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
28042 #endif
28043 /*try:*/ {
28044
28045 /* "rados.pyx":1935
28046 * """
28047 * with nogil:
28048 * ret = rados_aio_get_return_value(self.rados_comp) # <<<<<<<<<<<<<<
28049 * return ret
28050 *
28051 */
28052 __pyx_v_ret = rados_aio_get_return_value(__pyx_v_self->rados_comp);
28053 }
28054
28055 /* "rados.pyx":1934
28056 * :returns: int - return value of the operation
28057 * """
28058 * with nogil: # <<<<<<<<<<<<<<
28059 * ret = rados_aio_get_return_value(self.rados_comp)
28060 * return ret
28061 */
28062 /*finally:*/ {
28063 /*normal exit:*/{
28064 #ifdef WITH_THREAD1
28065 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
28066 #endif
28067 goto __pyx_L5;
28068 }
28069 __pyx_L5:;
28070 }
28071 }
28072
28073 /* "rados.pyx":1936
28074 * with nogil:
28075 * ret = rados_aio_get_return_value(self.rados_comp)
28076 * return ret # <<<<<<<<<<<<<<
28077 *
28078 * def __dealloc__(self):
28079 */
28080 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
28081 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1936; __pyx_clineno = __LINE__28081; goto __pyx_L1_error;}
28082 __Pyx_GOTREF(__pyx_t_1);
28083 __pyx_r = __pyx_t_1;
28084 __pyx_t_1 = 0;
28085 goto __pyx_L0;
28086
28087 /* "rados.pyx":1925
28088 * return ret
28089 *
28090 * def get_return_value(self): # <<<<<<<<<<<<<<
28091 * """
28092 * Get the return value of an asychronous operation
28093 */
28094
28095 /* function exit code */
28096 __pyx_L1_error:;
28097 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
28098 __Pyx_AddTraceback("rados.Completion.get_return_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
28099 __pyx_r = NULL((void*)0);
28100 __pyx_L0:;
28101 __Pyx_XGIVEREF(__pyx_r);
28102 __Pyx_RefNannyFinishContext();
28103 return __pyx_r;
28104}
28105
28106/* "rados.pyx":1938
28107 * return ret
28108 *
28109 * def __dealloc__(self): # <<<<<<<<<<<<<<
28110 * """
28111 * Release a completion
28112 */
28113
28114/* Python wrapper */
28115static void __pyx_pw_5rados_10Completion_17__dealloc__(PyObject *__pyx_v_self); /*proto*/
28116static void __pyx_pw_5rados_10Completion_17__dealloc__(PyObject *__pyx_v_self) {
28117 __Pyx_RefNannyDeclarations
28118 __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
28119 __pyx_pf_5rados_10Completion_16__dealloc__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
28120
28121 /* function exit code */
28122 __Pyx_RefNannyFinishContext();
28123}
28124
28125static void __pyx_pf_5rados_10Completion_16__dealloc__(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
28126 __Pyx_RefNannyDeclarations
28127 int __pyx_t_1;
28128 __Pyx_RefNannySetupContext("__dealloc__", 0);
28129
28130 /* "rados.pyx":1945
28131 * freed immediately if the operation is not acked and committed.
28132 * """
28133 * ref.Py_XDECREF(self.buf) # <<<<<<<<<<<<<<
28134 * self.buf = NULL
28135 * if self.rados_comp != NULL:
28136 */
28137 Py_XDECREF(__pyx_v_self->buf)do { if ((__pyx_v_self->buf) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_self->buf))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->buf)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_self
->buf)))); } while (0); } while (0)
;
28138
28139 /* "rados.pyx":1946
28140 * """
28141 * ref.Py_XDECREF(self.buf)
28142 * self.buf = NULL # <<<<<<<<<<<<<<
28143 * if self.rados_comp != NULL:
28144 * with nogil:
28145 */
28146 __pyx_v_self->buf = NULL((void*)0);
28147
28148 /* "rados.pyx":1947
28149 * ref.Py_XDECREF(self.buf)
28150 * self.buf = NULL
28151 * if self.rados_comp != NULL: # <<<<<<<<<<<<<<
28152 * with nogil:
28153 * rados_aio_release(self.rados_comp)
28154 */
28155 __pyx_t_1 = ((__pyx_v_self->rados_comp != NULL((void*)0)) != 0);
28156 if (__pyx_t_1) {
28157
28158 /* "rados.pyx":1948
28159 * self.buf = NULL
28160 * if self.rados_comp != NULL:
28161 * with nogil: # <<<<<<<<<<<<<<
28162 * rados_aio_release(self.rados_comp)
28163 * self.rados_comp = NULL
28164 */
28165 {
28166 #ifdef WITH_THREAD1
28167 PyThreadState *_save;
28168 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
28169 #endif
28170 /*try:*/ {
28171
28172 /* "rados.pyx":1949
28173 * if self.rados_comp != NULL:
28174 * with nogil:
28175 * rados_aio_release(self.rados_comp) # <<<<<<<<<<<<<<
28176 * self.rados_comp = NULL
28177 *
28178 */
28179 rados_aio_release(__pyx_v_self->rados_comp);
28180
28181 /* "rados.pyx":1950
28182 * with nogil:
28183 * rados_aio_release(self.rados_comp)
28184 * self.rados_comp = NULL # <<<<<<<<<<<<<<
28185 *
28186 * def _complete(self):
28187 */
28188 __pyx_v_self->rados_comp = NULL((void*)0);
28189 }
28190
28191 /* "rados.pyx":1948
28192 * self.buf = NULL
28193 * if self.rados_comp != NULL:
28194 * with nogil: # <<<<<<<<<<<<<<
28195 * rados_aio_release(self.rados_comp)
28196 * self.rados_comp = NULL
28197 */
28198 /*finally:*/ {
28199 /*normal exit:*/{
28200 #ifdef WITH_THREAD1
28201 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
28202 #endif
28203 goto __pyx_L6;
28204 }
28205 __pyx_L6:;
28206 }
28207 }
28208
28209 /* "rados.pyx":1947
28210 * ref.Py_XDECREF(self.buf)
28211 * self.buf = NULL
28212 * if self.rados_comp != NULL: # <<<<<<<<<<<<<<
28213 * with nogil:
28214 * rados_aio_release(self.rados_comp)
28215 */
28216 }
28217
28218 /* "rados.pyx":1938
28219 * return ret
28220 *
28221 * def __dealloc__(self): # <<<<<<<<<<<<<<
28222 * """
28223 * Release a completion
28224 */
28225
28226 /* function exit code */
28227 __Pyx_RefNannyFinishContext();
28228}
28229
28230/* "rados.pyx":1952
28231 * self.rados_comp = NULL
28232 *
28233 * def _complete(self): # <<<<<<<<<<<<<<
28234 * self.oncomplete(self)
28235 * with self.ioctx.lock:
28236 */
28237
28238/* Python wrapper */
28239static PyObject *__pyx_pw_5rados_10Completion_19_complete(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
28240static char __pyx_doc_5rados_10Completion_18_complete[] = "Completion._complete(self)";
28241static PyObject *__pyx_pw_5rados_10Completion_19_complete(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
28242 PyObject *__pyx_r = 0;
28243 __Pyx_RefNannyDeclarations
28244 __Pyx_RefNannySetupContext("_complete (wrapper)", 0);
28245 __pyx_r = __pyx_pf_5rados_10Completion_18_complete(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
28246
28247 /* function exit code */
28248 __Pyx_RefNannyFinishContext();
28249 return __pyx_r;
28250}
28251
28252static PyObject *__pyx_pf_5rados_10Completion_18_complete(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
28253 PyObject *__pyx_r = NULL((void*)0);
28254 __Pyx_RefNannyDeclarations
28255 PyObject *__pyx_t_1 = NULL((void*)0);
28256 PyObject *__pyx_t_2 = NULL((void*)0);
28257 PyObject *__pyx_t_3 = NULL((void*)0);
28258 PyObject *__pyx_t_4 = NULL((void*)0);
28259 PyObject *__pyx_t_5 = NULL((void*)0);
28260 PyObject *__pyx_t_6 = NULL((void*)0);
28261 PyObject *__pyx_t_7 = NULL((void*)0);
28262 PyObject *__pyx_t_8 = NULL((void*)0);
28263 int __pyx_t_9;
28264 PyObject *__pyx_t_10 = NULL((void*)0);
28265 int __pyx_t_11;
28266 int __pyx_lineno = 0;
28267 const char *__pyx_filename = NULL((void*)0);
28268 int __pyx_clineno = 0;
28269 __Pyx_RefNannySetupContext("_complete", 0);
28270
28271 /* "rados.pyx":1953
28272 *
28273 * def _complete(self):
28274 * self.oncomplete(self) # <<<<<<<<<<<<<<
28275 * with self.ioctx.lock:
28276 * if self.oncomplete:
28277 */
28278 __Pyx_INCREF(__pyx_v_self->oncomplete)( ((PyObject*)(__pyx_v_self->oncomplete))->ob_refcnt++);
28279 __pyx_t_2 = __pyx_v_self->oncomplete; __pyx_t_3 = NULL((void*)0);
28280 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
28281 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
28282 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
28283 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
28284 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
28285 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28286 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28287 }
28288 }
28289 if (!__pyx_t_3) {
28290 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1953; __pyx_clineno = __LINE__28290; goto __pyx_L1_error;}
28291 __Pyx_GOTREF(__pyx_t_1);
28292 } else {
28293 __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1953; __pyx_clineno = __LINE__28293; goto __pyx_L1_error;}
28294 __Pyx_GOTREF(__pyx_t_4);
28295 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
28296 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
28297 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28298 PyTuple_SET_ITEM(__pyx_t_4, 0+1, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_4))->ob_item[0+1] = ((PyObject
*)__pyx_v_self))
;
28299 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1953; __pyx_clineno = __LINE__28299; goto __pyx_L1_error;}
28300 __Pyx_GOTREF(__pyx_t_1);
28301 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28302 }
28303 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28304 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28305
28306 /* "rados.pyx":1954
28307 * def _complete(self):
28308 * self.oncomplete(self)
28309 * with self.ioctx.lock: # <<<<<<<<<<<<<<
28310 * if self.oncomplete:
28311 * self.ioctx.complete_completions.remove(self)
28312 */
28313 /*with:*/ {
28314 __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->ioctx->lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28314; goto __pyx_L1_error;}
28315 __Pyx_GOTREF(__pyx_t_5);
28316 __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->ioctx->lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28316; goto __pyx_L3_error;}
28317 __Pyx_GOTREF(__pyx_t_2);
28318 __pyx_t_4 = NULL((void*)0);
28319 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
28320 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
28321 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
28322 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
28323 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
28324 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28325 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28326 }
28327 }
28328 if (__pyx_t_4) {
28329 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28329; goto __pyx_L3_error;}
28330 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28331 } else {
28332 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28332; goto __pyx_L3_error;}
28333 }
28334 __Pyx_GOTREF(__pyx_t_1);
28335 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28336 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28337 /*try:*/ {
28338 {
28339 __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
28340 __Pyx_XGOTREF(__pyx_t_6);
28341 __Pyx_XGOTREF(__pyx_t_7);
28342 __Pyx_XGOTREF(__pyx_t_8);
28343 /*try:*/ {
28344
28345 /* "rados.pyx":1955
28346 * self.oncomplete(self)
28347 * with self.ioctx.lock:
28348 * if self.oncomplete: # <<<<<<<<<<<<<<
28349 * self.ioctx.complete_completions.remove(self)
28350 *
28351 */
28352 __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->oncomplete); if (unlikely(__pyx_t_9 < 0)__builtin_expect(!!(__pyx_t_9 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__28352; goto __pyx_L7_error;}
28353 if (__pyx_t_9) {
28354
28355 /* "rados.pyx":1956
28356 * with self.ioctx.lock:
28357 * if self.oncomplete:
28358 * self.ioctx.complete_completions.remove(self) # <<<<<<<<<<<<<<
28359 *
28360 * def _safe(self):
28361 */
28362 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ioctx->complete_completions, __pyx_n_s_remove); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__28362; goto __pyx_L7_error;}
28363 __Pyx_GOTREF(__pyx_t_2);
28364 __pyx_t_4 = NULL((void*)0);
28365 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
28366 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
28367 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
28368 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
28369 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
28370 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28371 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28372 }
28373 }
28374 if (!__pyx_t_4) {
28375 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__28375; goto __pyx_L7_error;}
28376 __Pyx_GOTREF(__pyx_t_1);
28377 } else {
28378 __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__28378; goto __pyx_L7_error;}
28379 __Pyx_GOTREF(__pyx_t_3);
28380 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
28381 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
28382 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28383 PyTuple_SET_ITEM(__pyx_t_3, 0+1, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_3))->ob_item[0+1] = ((PyObject
*)__pyx_v_self))
;
28384 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1956; __pyx_clineno = __LINE__28384; goto __pyx_L7_error;}
28385 __Pyx_GOTREF(__pyx_t_1);
28386 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
28387 }
28388 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28389 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28390
28391 /* "rados.pyx":1955
28392 * self.oncomplete(self)
28393 * with self.ioctx.lock:
28394 * if self.oncomplete: # <<<<<<<<<<<<<<
28395 * self.ioctx.complete_completions.remove(self)
28396 *
28397 */
28398 }
28399
28400 /* "rados.pyx":1954
28401 * def _complete(self):
28402 * self.oncomplete(self)
28403 * with self.ioctx.lock: # <<<<<<<<<<<<<<
28404 * if self.oncomplete:
28405 * self.ioctx.complete_completions.remove(self)
28406 */
28407 }
28408 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
28409 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
28410 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
28411 goto __pyx_L14_try_end;
28412 __pyx_L7_error:;
28413 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
28414 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
28415 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
28416 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
28417 /*except:*/ {
28418 __Pyx_AddTraceback("rados.Completion._complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
28419 if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28419; goto __pyx_L9_except_error;}
28420 __Pyx_GOTREF(__pyx_t_1);
28421 __Pyx_GOTREF(__pyx_t_2);
28422 __Pyx_GOTREF(__pyx_t_3);
28423 __pyx_t_4 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28423; goto __pyx_L9_except_error;}
28424 __Pyx_GOTREF(__pyx_t_4);
28425 __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL((void*)0));
28426 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
28427 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28428 if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28428; goto __pyx_L9_except_error;}
28429 __Pyx_GOTREF(__pyx_t_10);
28430 __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_10);
28431 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
28432 if (__pyx_t_9 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28432; goto __pyx_L9_except_error;}
28433 __pyx_t_11 = ((!(__pyx_t_9 != 0)) != 0);
28434 if (__pyx_t_11) {
28435 __Pyx_GIVEREF(__pyx_t_1);
28436 __Pyx_GIVEREF(__pyx_t_2);
28437 __Pyx_XGIVEREF(__pyx_t_3);
28438 __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_3);
28439 __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0;
28440 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28440; goto __pyx_L9_except_error;}
28441 }
28442 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28443 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28444 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
28445 goto __pyx_L8_exception_handled;
28446 }
28447 __pyx_L9_except_error:;
28448 __Pyx_XGIVEREF(__pyx_t_6);
28449 __Pyx_XGIVEREF(__pyx_t_7);
28450 __Pyx_XGIVEREF(__pyx_t_8);
28451 __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
28452 goto __pyx_L1_error;
28453 __pyx_L8_exception_handled:;
28454 __Pyx_XGIVEREF(__pyx_t_6);
28455 __Pyx_XGIVEREF(__pyx_t_7);
28456 __Pyx_XGIVEREF(__pyx_t_8);
28457 __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
28458 __pyx_L14_try_end:;
28459 }
28460 }
28461 /*finally:*/ {
28462 /*normal exit:*/{
28463 if (__pyx_t_5) {
28464 __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__45, NULL((void*)0));
28465 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
28466 if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__28466; goto __pyx_L1_error;}
28467 __Pyx_GOTREF(__pyx_t_8);
28468 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
28469 }
28470 goto __pyx_L6;
28471 }
28472 __pyx_L6:;
28473 }
28474 goto __pyx_L19;
28475 __pyx_L3_error:;
28476 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
28477 goto __pyx_L1_error;
28478 __pyx_L19:;
28479 }
28480
28481 /* "rados.pyx":1952
28482 * self.rados_comp = NULL
28483 *
28484 * def _complete(self): # <<<<<<<<<<<<<<
28485 * self.oncomplete(self)
28486 * with self.ioctx.lock:
28487 */
28488
28489 /* function exit code */
28490 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
28491 goto __pyx_L0;
28492 __pyx_L1_error:;
28493 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
28494 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
28495 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
28496 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
28497 __Pyx_AddTraceback("rados.Completion._complete", __pyx_clineno, __pyx_lineno, __pyx_filename);
28498 __pyx_r = NULL((void*)0);
28499 __pyx_L0:;
28500 __Pyx_XGIVEREF(__pyx_r);
28501 __Pyx_RefNannyFinishContext();
28502 return __pyx_r;
28503}
28504
28505/* "rados.pyx":1958
28506 * self.ioctx.complete_completions.remove(self)
28507 *
28508 * def _safe(self): # <<<<<<<<<<<<<<
28509 * self.onsafe(self)
28510 * with self.ioctx.lock:
28511 */
28512
28513/* Python wrapper */
28514static PyObject *__pyx_pw_5rados_10Completion_21_safe(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
28515static char __pyx_doc_5rados_10Completion_20_safe[] = "Completion._safe(self)";
28516static PyObject *__pyx_pw_5rados_10Completion_21_safe(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
28517 PyObject *__pyx_r = 0;
28518 __Pyx_RefNannyDeclarations
28519 __Pyx_RefNannySetupContext("_safe (wrapper)", 0);
28520 __pyx_r = __pyx_pf_5rados_10Completion_20_safe(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
28521
28522 /* function exit code */
28523 __Pyx_RefNannyFinishContext();
28524 return __pyx_r;
28525}
28526
28527static PyObject *__pyx_pf_5rados_10Completion_20_safe(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
28528 PyObject *__pyx_r = NULL((void*)0);
28529 __Pyx_RefNannyDeclarations
28530 PyObject *__pyx_t_1 = NULL((void*)0);
28531 PyObject *__pyx_t_2 = NULL((void*)0);
28532 PyObject *__pyx_t_3 = NULL((void*)0);
28533 PyObject *__pyx_t_4 = NULL((void*)0);
28534 PyObject *__pyx_t_5 = NULL((void*)0);
28535 PyObject *__pyx_t_6 = NULL((void*)0);
28536 PyObject *__pyx_t_7 = NULL((void*)0);
28537 PyObject *__pyx_t_8 = NULL((void*)0);
28538 int __pyx_t_9;
28539 PyObject *__pyx_t_10 = NULL((void*)0);
28540 int __pyx_t_11;
28541 int __pyx_lineno = 0;
28542 const char *__pyx_filename = NULL((void*)0);
28543 int __pyx_clineno = 0;
28544 __Pyx_RefNannySetupContext("_safe", 0);
28545
28546 /* "rados.pyx":1959
28547 *
28548 * def _safe(self):
28549 * self.onsafe(self) # <<<<<<<<<<<<<<
28550 * with self.ioctx.lock:
28551 * if self.onsafe:
28552 */
28553 __Pyx_INCREF(__pyx_v_self->onsafe)( ((PyObject*)(__pyx_v_self->onsafe))->ob_refcnt++);
28554 __pyx_t_2 = __pyx_v_self->onsafe; __pyx_t_3 = NULL((void*)0);
28555 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
28556 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
28557 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
28558 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
28559 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
28560 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28561 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28562 }
28563 }
28564 if (!__pyx_t_3) {
28565 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1959; __pyx_clineno = __LINE__28565; goto __pyx_L1_error;}
28566 __Pyx_GOTREF(__pyx_t_1);
28567 } else {
28568 __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1959; __pyx_clineno = __LINE__28568; goto __pyx_L1_error;}
28569 __Pyx_GOTREF(__pyx_t_4);
28570 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
28571 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
28572 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28573 PyTuple_SET_ITEM(__pyx_t_4, 0+1, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_4))->ob_item[0+1] = ((PyObject
*)__pyx_v_self))
;
28574 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1959; __pyx_clineno = __LINE__28574; goto __pyx_L1_error;}
28575 __Pyx_GOTREF(__pyx_t_1);
28576 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28577 }
28578 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28579 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28580
28581 /* "rados.pyx":1960
28582 * def _safe(self):
28583 * self.onsafe(self)
28584 * with self.ioctx.lock: # <<<<<<<<<<<<<<
28585 * if self.onsafe:
28586 * self.ioctx.safe_completions.remove(self)
28587 */
28588 /*with:*/ {
28589 __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->ioctx->lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28589; goto __pyx_L1_error;}
28590 __Pyx_GOTREF(__pyx_t_5);
28591 __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->ioctx->lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28591; goto __pyx_L3_error;}
28592 __Pyx_GOTREF(__pyx_t_2);
28593 __pyx_t_4 = NULL((void*)0);
28594 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
28595 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
28596 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
28597 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
28598 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
28599 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28600 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28601 }
28602 }
28603 if (__pyx_t_4) {
28604 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28604; goto __pyx_L3_error;}
28605 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28606 } else {
28607 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28607; goto __pyx_L3_error;}
28608 }
28609 __Pyx_GOTREF(__pyx_t_1);
28610 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28611 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28612 /*try:*/ {
28613 {
28614 __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
28615 __Pyx_XGOTREF(__pyx_t_6);
28616 __Pyx_XGOTREF(__pyx_t_7);
28617 __Pyx_XGOTREF(__pyx_t_8);
28618 /*try:*/ {
28619
28620 /* "rados.pyx":1961
28621 * self.onsafe(self)
28622 * with self.ioctx.lock:
28623 * if self.onsafe: # <<<<<<<<<<<<<<
28624 * self.ioctx.safe_completions.remove(self)
28625 *
28626 */
28627 __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_self->onsafe); if (unlikely(__pyx_t_9 < 0)__builtin_expect(!!(__pyx_t_9 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1961; __pyx_clineno = __LINE__28627; goto __pyx_L7_error;}
28628 if (__pyx_t_9) {
28629
28630 /* "rados.pyx":1962
28631 * with self.ioctx.lock:
28632 * if self.onsafe:
28633 * self.ioctx.safe_completions.remove(self) # <<<<<<<<<<<<<<
28634 *
28635 * def _cleanup(self):
28636 */
28637 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ioctx->safe_completions, __pyx_n_s_remove); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1962; __pyx_clineno = __LINE__28637; goto __pyx_L7_error;}
28638 __Pyx_GOTREF(__pyx_t_2);
28639 __pyx_t_4 = NULL((void*)0);
28640 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
28641 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
28642 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
28643 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
28644 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
28645 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28646 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28647 }
28648 }
28649 if (!__pyx_t_4) {
28650 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1962; __pyx_clineno = __LINE__28650; goto __pyx_L7_error;}
28651 __Pyx_GOTREF(__pyx_t_1);
28652 } else {
28653 __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1962; __pyx_clineno = __LINE__28653; goto __pyx_L7_error;}
28654 __Pyx_GOTREF(__pyx_t_3);
28655 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
28656 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
28657 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28658 PyTuple_SET_ITEM(__pyx_t_3, 0+1, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_3))->ob_item[0+1] = ((PyObject
*)__pyx_v_self))
;
28659 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1962; __pyx_clineno = __LINE__28659; goto __pyx_L7_error;}
28660 __Pyx_GOTREF(__pyx_t_1);
28661 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
28662 }
28663 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28664 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28665
28666 /* "rados.pyx":1961
28667 * self.onsafe(self)
28668 * with self.ioctx.lock:
28669 * if self.onsafe: # <<<<<<<<<<<<<<
28670 * self.ioctx.safe_completions.remove(self)
28671 *
28672 */
28673 }
28674
28675 /* "rados.pyx":1960
28676 * def _safe(self):
28677 * self.onsafe(self)
28678 * with self.ioctx.lock: # <<<<<<<<<<<<<<
28679 * if self.onsafe:
28680 * self.ioctx.safe_completions.remove(self)
28681 */
28682 }
28683 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
28684 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
28685 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
28686 goto __pyx_L14_try_end;
28687 __pyx_L7_error:;
28688 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
28689 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
28690 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
28691 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
28692 /*except:*/ {
28693 __Pyx_AddTraceback("rados.Completion._safe", __pyx_clineno, __pyx_lineno, __pyx_filename);
28694 if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28694; goto __pyx_L9_except_error;}
28695 __Pyx_GOTREF(__pyx_t_1);
28696 __Pyx_GOTREF(__pyx_t_2);
28697 __Pyx_GOTREF(__pyx_t_3);
28698 __pyx_t_4 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28698; goto __pyx_L9_except_error;}
28699 __Pyx_GOTREF(__pyx_t_4);
28700 __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL((void*)0));
28701 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
28702 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28703 if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28703; goto __pyx_L9_except_error;}
28704 __Pyx_GOTREF(__pyx_t_10);
28705 __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_10);
28706 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
28707 if (__pyx_t_9 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28707; goto __pyx_L9_except_error;}
28708 __pyx_t_11 = ((!(__pyx_t_9 != 0)) != 0);
28709 if (__pyx_t_11) {
28710 __Pyx_GIVEREF(__pyx_t_1);
28711 __Pyx_GIVEREF(__pyx_t_2);
28712 __Pyx_XGIVEREF(__pyx_t_3);
28713 __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_3);
28714 __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0;
28715 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28715; goto __pyx_L9_except_error;}
28716 }
28717 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28718 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28719 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
28720 goto __pyx_L8_exception_handled;
28721 }
28722 __pyx_L9_except_error:;
28723 __Pyx_XGIVEREF(__pyx_t_6);
28724 __Pyx_XGIVEREF(__pyx_t_7);
28725 __Pyx_XGIVEREF(__pyx_t_8);
28726 __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
28727 goto __pyx_L1_error;
28728 __pyx_L8_exception_handled:;
28729 __Pyx_XGIVEREF(__pyx_t_6);
28730 __Pyx_XGIVEREF(__pyx_t_7);
28731 __Pyx_XGIVEREF(__pyx_t_8);
28732 __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
28733 __pyx_L14_try_end:;
28734 }
28735 }
28736 /*finally:*/ {
28737 /*normal exit:*/{
28738 if (__pyx_t_5) {
28739 __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__46, NULL((void*)0));
28740 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
28741 if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__28741; goto __pyx_L1_error;}
28742 __Pyx_GOTREF(__pyx_t_8);
28743 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
28744 }
28745 goto __pyx_L6;
28746 }
28747 __pyx_L6:;
28748 }
28749 goto __pyx_L19;
28750 __pyx_L3_error:;
28751 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
28752 goto __pyx_L1_error;
28753 __pyx_L19:;
28754 }
28755
28756 /* "rados.pyx":1958
28757 * self.ioctx.complete_completions.remove(self)
28758 *
28759 * def _safe(self): # <<<<<<<<<<<<<<
28760 * self.onsafe(self)
28761 * with self.ioctx.lock:
28762 */
28763
28764 /* function exit code */
28765 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
28766 goto __pyx_L0;
28767 __pyx_L1_error:;
28768 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
28769 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
28770 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
28771 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
28772 __Pyx_AddTraceback("rados.Completion._safe", __pyx_clineno, __pyx_lineno, __pyx_filename);
28773 __pyx_r = NULL((void*)0);
28774 __pyx_L0:;
28775 __Pyx_XGIVEREF(__pyx_r);
28776 __Pyx_RefNannyFinishContext();
28777 return __pyx_r;
28778}
28779
28780/* "rados.pyx":1964
28781 * self.ioctx.safe_completions.remove(self)
28782 *
28783 * def _cleanup(self): # <<<<<<<<<<<<<<
28784 * with self.ioctx.lock:
28785 * if self.oncomplete:
28786 */
28787
28788/* Python wrapper */
28789static PyObject *__pyx_pw_5rados_10Completion_23_cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
28790static char __pyx_doc_5rados_10Completion_22_cleanup[] = "Completion._cleanup(self)";
28791static PyObject *__pyx_pw_5rados_10Completion_23_cleanup(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
28792 PyObject *__pyx_r = 0;
28793 __Pyx_RefNannyDeclarations
28794 __Pyx_RefNannySetupContext("_cleanup (wrapper)", 0);
28795 __pyx_r = __pyx_pf_5rados_10Completion_22_cleanup(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
28796
28797 /* function exit code */
28798 __Pyx_RefNannyFinishContext();
28799 return __pyx_r;
28800}
28801
28802static PyObject *__pyx_pf_5rados_10Completion_22_cleanup(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
28803 PyObject *__pyx_r = NULL((void*)0);
28804 __Pyx_RefNannyDeclarations
28805 PyObject *__pyx_t_1 = NULL((void*)0);
28806 PyObject *__pyx_t_2 = NULL((void*)0);
28807 PyObject *__pyx_t_3 = NULL((void*)0);
28808 PyObject *__pyx_t_4 = NULL((void*)0);
28809 PyObject *__pyx_t_5 = NULL((void*)0);
28810 PyObject *__pyx_t_6 = NULL((void*)0);
28811 PyObject *__pyx_t_7 = NULL((void*)0);
28812 int __pyx_t_8;
28813 PyObject *__pyx_t_9 = NULL((void*)0);
28814 PyObject *__pyx_t_10 = NULL((void*)0);
28815 int __pyx_t_11;
28816 int __pyx_lineno = 0;
28817 const char *__pyx_filename = NULL((void*)0);
28818 int __pyx_clineno = 0;
28819 __Pyx_RefNannySetupContext("_cleanup", 0);
28820
28821 /* "rados.pyx":1965
28822 *
28823 * def _cleanup(self):
28824 * with self.ioctx.lock: # <<<<<<<<<<<<<<
28825 * if self.oncomplete:
28826 * self.ioctx.complete_completions.remove(self)
28827 */
28828 /*with:*/ {
28829 __pyx_t_1 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->ioctx->lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__28829; goto __pyx_L1_error;}
28830 __Pyx_GOTREF(__pyx_t_1);
28831 __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->ioctx->lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__28831; goto __pyx_L3_error;}
28832 __Pyx_GOTREF(__pyx_t_3);
28833 __pyx_t_4 = NULL((void*)0);
28834 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
28835 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
28836 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
28837 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
28838 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
28839 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28840 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28841 }
28842 }
28843 if (__pyx_t_4) {
28844 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__28844; goto __pyx_L3_error;}
28845 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28846 } else {
28847 __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__28847; goto __pyx_L3_error;}
28848 }
28849 __Pyx_GOTREF(__pyx_t_2);
28850 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
28851 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28852 /*try:*/ {
28853 {
28854 __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
28855 __Pyx_XGOTREF(__pyx_t_5);
28856 __Pyx_XGOTREF(__pyx_t_6);
28857 __Pyx_XGOTREF(__pyx_t_7);
28858 /*try:*/ {
28859
28860 /* "rados.pyx":1966
28861 * def _cleanup(self):
28862 * with self.ioctx.lock:
28863 * if self.oncomplete: # <<<<<<<<<<<<<<
28864 * self.ioctx.complete_completions.remove(self)
28865 * if self.onsafe:
28866 */
28867 __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_self->oncomplete); if (unlikely(__pyx_t_8 < 0)__builtin_expect(!!(__pyx_t_8 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1966; __pyx_clineno = __LINE__28867; goto __pyx_L7_error;}
28868 if (__pyx_t_8) {
28869
28870 /* "rados.pyx":1967
28871 * with self.ioctx.lock:
28872 * if self.oncomplete:
28873 * self.ioctx.complete_completions.remove(self) # <<<<<<<<<<<<<<
28874 * if self.onsafe:
28875 * self.ioctx.safe_completions.remove(self)
28876 */
28877 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ioctx->complete_completions, __pyx_n_s_remove); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__28877; goto __pyx_L7_error;}
28878 __Pyx_GOTREF(__pyx_t_3);
28879 __pyx_t_4 = NULL((void*)0);
28880 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
28881 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
28882 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
28883 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
28884 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
28885 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28886 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28887 }
28888 }
28889 if (!__pyx_t_4) {
28890 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__28890; goto __pyx_L7_error;}
28891 __Pyx_GOTREF(__pyx_t_2);
28892 } else {
28893 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__28893; goto __pyx_L7_error;}
28894 __Pyx_GOTREF(__pyx_t_9);
28895 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
28896 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
28897 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28898 PyTuple_SET_ITEM(__pyx_t_9, 0+1, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = ((PyObject
*)__pyx_v_self))
;
28899 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__28899; goto __pyx_L7_error;}
28900 __Pyx_GOTREF(__pyx_t_2);
28901 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
28902 }
28903 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
28904 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28905
28906 /* "rados.pyx":1966
28907 * def _cleanup(self):
28908 * with self.ioctx.lock:
28909 * if self.oncomplete: # <<<<<<<<<<<<<<
28910 * self.ioctx.complete_completions.remove(self)
28911 * if self.onsafe:
28912 */
28913 }
28914
28915 /* "rados.pyx":1968
28916 * if self.oncomplete:
28917 * self.ioctx.complete_completions.remove(self)
28918 * if self.onsafe: # <<<<<<<<<<<<<<
28919 * self.ioctx.safe_completions.remove(self)
28920 *
28921 */
28922 __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_self->onsafe); if (unlikely(__pyx_t_8 < 0)__builtin_expect(!!(__pyx_t_8 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1968; __pyx_clineno = __LINE__28922; goto __pyx_L7_error;}
28923 if (__pyx_t_8) {
28924
28925 /* "rados.pyx":1969
28926 * self.ioctx.complete_completions.remove(self)
28927 * if self.onsafe:
28928 * self.ioctx.safe_completions.remove(self) # <<<<<<<<<<<<<<
28929 *
28930 *
28931 */
28932 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->ioctx->safe_completions, __pyx_n_s_remove); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__28932; goto __pyx_L7_error;}
28933 __Pyx_GOTREF(__pyx_t_3);
28934 __pyx_t_9 = NULL((void*)0);
28935 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
28936 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
28937 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
28938 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
28939 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
28940 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
28941 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
28942 }
28943 }
28944 if (!__pyx_t_9) {
28945 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__28945; goto __pyx_L7_error;}
28946 __Pyx_GOTREF(__pyx_t_2);
28947 } else {
28948 __pyx_t_4 = PyTuple_New(1+1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__28948; goto __pyx_L7_error;}
28949 __Pyx_GOTREF(__pyx_t_4);
28950 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
28951 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
28952 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
28953 PyTuple_SET_ITEM(__pyx_t_4, 0+1, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_4))->ob_item[0+1] = ((PyObject
*)__pyx_v_self))
;
28954 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__28954; goto __pyx_L7_error;}
28955 __Pyx_GOTREF(__pyx_t_2);
28956 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
28957 }
28958 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
28959 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
28960
28961 /* "rados.pyx":1968
28962 * if self.oncomplete:
28963 * self.ioctx.complete_completions.remove(self)
28964 * if self.onsafe: # <<<<<<<<<<<<<<
28965 * self.ioctx.safe_completions.remove(self)
28966 *
28967 */
28968 }
28969
28970 /* "rados.pyx":1965
28971 *
28972 * def _cleanup(self):
28973 * with self.ioctx.lock: # <<<<<<<<<<<<<<
28974 * if self.oncomplete:
28975 * self.ioctx.complete_completions.remove(self)
28976 */
28977 }
28978 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
28979 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
28980 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
28981 goto __pyx_L14_try_end;
28982 __pyx_L7_error:;
28983 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
; __pyx_t_9 = 0;
28984 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
28985 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
28986 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
28987 /*except:*/ {
28988 __Pyx_AddTraceback("rados.Completion._cleanup", __pyx_clineno, __pyx_lineno, __pyx_filename);
28989 if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__28989; goto __pyx_L9_except_error;}
28990 __Pyx_GOTREF(__pyx_t_2);
28991 __Pyx_GOTREF(__pyx_t_3);
28992 __Pyx_GOTREF(__pyx_t_4);
28993 __pyx_t_9 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__28993; goto __pyx_L9_except_error;}
28994 __Pyx_GOTREF(__pyx_t_9);
28995 __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL((void*)0));
28996 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
28997 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
28998 if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__28998; goto __pyx_L9_except_error;}
28999 __Pyx_GOTREF(__pyx_t_10);
29000 __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_10);
29001 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
29002 if (__pyx_t_8 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__29002; goto __pyx_L9_except_error;}
29003 __pyx_t_11 = ((!(__pyx_t_8 != 0)) != 0);
29004 if (__pyx_t_11) {
29005 __Pyx_GIVEREF(__pyx_t_2);
29006 __Pyx_GIVEREF(__pyx_t_3);
29007 __Pyx_XGIVEREF(__pyx_t_4);
29008 __Pyx_ErrRestore(__pyx_t_2, __pyx_t_3, __pyx_t_4);
29009 __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0;
29010 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__29010; goto __pyx_L9_except_error;}
29011 }
29012 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
29013 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
29014 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
29015 goto __pyx_L8_exception_handled;
29016 }
29017 __pyx_L9_except_error:;
29018 __Pyx_XGIVEREF(__pyx_t_5);
29019 __Pyx_XGIVEREF(__pyx_t_6);
29020 __Pyx_XGIVEREF(__pyx_t_7);
29021 __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
29022 goto __pyx_L1_error;
29023 __pyx_L8_exception_handled:;
29024 __Pyx_XGIVEREF(__pyx_t_5);
29025 __Pyx_XGIVEREF(__pyx_t_6);
29026 __Pyx_XGIVEREF(__pyx_t_7);
29027 __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
29028 __pyx_L14_try_end:;
29029 }
29030 }
29031 /*finally:*/ {
29032 /*normal exit:*/{
29033 if (__pyx_t_1) {
29034 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__47, NULL((void*)0));
29035 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
29036 if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__29036; goto __pyx_L1_error;}
29037 __Pyx_GOTREF(__pyx_t_7);
29038 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
29039 }
29040 goto __pyx_L6;
29041 }
29042 __pyx_L6:;
29043 }
29044 goto __pyx_L20;
29045 __pyx_L3_error:;
29046 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
29047 goto __pyx_L1_error;
29048 __pyx_L20:;
29049 }
29050
29051 /* "rados.pyx":1964
29052 * self.ioctx.safe_completions.remove(self)
29053 *
29054 * def _cleanup(self): # <<<<<<<<<<<<<<
29055 * with self.ioctx.lock:
29056 * if self.oncomplete:
29057 */
29058
29059 /* function exit code */
29060 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
29061 goto __pyx_L0;
29062 __pyx_L1_error:;
29063 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
29064 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
29065 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
29066 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
29067 __Pyx_AddTraceback("rados.Completion._cleanup", __pyx_clineno, __pyx_lineno, __pyx_filename);
29068 __pyx_r = NULL((void*)0);
29069 __pyx_L0:;
29070 __Pyx_XGIVEREF(__pyx_r);
29071 __Pyx_RefNannyFinishContext();
29072 return __pyx_r;
29073}
29074
29075/* "rados.pyx":1849
29076 *
29077 * cdef public:
29078 * Ioctx ioctx # <<<<<<<<<<<<<<
29079 * object oncomplete
29080 * object onsafe
29081 */
29082
29083/* Python wrapper */
29084static PyObject *__pyx_pw_5rados_10Completion_5ioctx_1__get__(PyObject *__pyx_v_self); /*proto*/
29085static PyObject *__pyx_pw_5rados_10Completion_5ioctx_1__get__(PyObject *__pyx_v_self) {
29086 PyObject *__pyx_r = 0;
29087 __Pyx_RefNannyDeclarations
29088 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29089 __pyx_r = __pyx_pf_5rados_10Completion_5ioctx___get__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
29090
29091 /* function exit code */
29092 __Pyx_RefNannyFinishContext();
29093 return __pyx_r;
29094}
29095
29096static PyObject *__pyx_pf_5rados_10Completion_5ioctx___get__(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
29097 PyObject *__pyx_r = NULL((void*)0);
29098 __Pyx_RefNannyDeclarations
29099 __Pyx_RefNannySetupContext("__get__", 0);
29100 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
29101 __Pyx_INCREF(((PyObject *)__pyx_v_self->ioctx))( ((PyObject*)(((PyObject *)__pyx_v_self->ioctx)))->ob_refcnt
++)
;
29102 __pyx_r = ((PyObject *)__pyx_v_self->ioctx);
29103 goto __pyx_L0;
29104
29105 /* function exit code */
29106 __pyx_L0:;
29107 __Pyx_XGIVEREF(__pyx_r);
29108 __Pyx_RefNannyFinishContext();
29109 return __pyx_r;
29110}
29111
29112/* Python wrapper */
29113static int __pyx_pw_5rados_10Completion_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29114static int __pyx_pw_5rados_10Completion_5ioctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29115 int __pyx_r;
29116 __Pyx_RefNannyDeclarations
29117 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29118 __pyx_r = __pyx_pf_5rados_10Completion_5ioctx_2__set__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29119
29120 /* function exit code */
29121 __Pyx_RefNannyFinishContext();
29122 return __pyx_r;
29123}
29124
29125static int __pyx_pf_5rados_10Completion_5ioctx_2__set__(struct __pyx_obj_5rados_Completion *__pyx_v_self, PyObject *__pyx_v_value) {
29126 int __pyx_r;
29127 __Pyx_RefNannyDeclarations
29128 PyObject *__pyx_t_1 = NULL((void*)0);
29129 int __pyx_lineno = 0;
29130 const char *__pyx_filename = NULL((void*)0);
29131 int __pyx_clineno = 0;
29132 __Pyx_RefNannySetupContext("__set__", 0);
29133 if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx)))__builtin_expect(!!(((__pyx_v_value) == (&_Py_NoneStruct)
) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5rados_Ioctx
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1849; __pyx_clineno = __LINE__29133; goto __pyx_L1_error;}
29134 __pyx_t_1 = __pyx_v_value;
29135 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
29136 __Pyx_GIVEREF(__pyx_t_1);
29137 __Pyx_GOTREF(__pyx_v_self->ioctx);
29138 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
29139 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)__pyx_t_1);
29140 __pyx_t_1 = 0;
29141
29142 /* function exit code */
29143 __pyx_r = 0;
29144 goto __pyx_L0;
29145 __pyx_L1_error:;
29146 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
29147 __Pyx_AddTraceback("rados.Completion.ioctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29148 __pyx_r = -1;
29149 __pyx_L0:;
29150 __Pyx_RefNannyFinishContext();
29151 return __pyx_r;
29152}
29153
29154/* Python wrapper */
29155static int __pyx_pw_5rados_10Completion_5ioctx_5__del__(PyObject *__pyx_v_self); /*proto*/
29156static int __pyx_pw_5rados_10Completion_5ioctx_5__del__(PyObject *__pyx_v_self) {
29157 int __pyx_r;
29158 __Pyx_RefNannyDeclarations
29159 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29160 __pyx_r = __pyx_pf_5rados_10Completion_5ioctx_4__del__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
29161
29162 /* function exit code */
29163 __Pyx_RefNannyFinishContext();
29164 return __pyx_r;
29165}
29166
29167static int __pyx_pf_5rados_10Completion_5ioctx_4__del__(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
29168 int __pyx_r;
29169 __Pyx_RefNannyDeclarations
29170 __Pyx_RefNannySetupContext("__del__", 0);
29171 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
29172 __Pyx_GIVEREF(Py_None);
29173 __Pyx_GOTREF(__pyx_v_self->ioctx);
29174 __Pyx_DECREF(((PyObject *)__pyx_v_self->ioctx))do { if ( --((PyObject*)(((PyObject *)__pyx_v_self->ioctx)
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
((PyObject *)__pyx_v_self->ioctx))))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(((PyObject *)__pyx_v_self->ioctx
))))); } while (0)
;
29175 __pyx_v_self->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct));
29176
29177 /* function exit code */
29178 __pyx_r = 0;
29179 __Pyx_RefNannyFinishContext();
29180 return __pyx_r;
29181}
29182
29183/* "rados.pyx":1850
29184 * cdef public:
29185 * Ioctx ioctx
29186 * object oncomplete # <<<<<<<<<<<<<<
29187 * object onsafe
29188 *
29189 */
29190
29191/* Python wrapper */
29192static PyObject *__pyx_pw_5rados_10Completion_10oncomplete_1__get__(PyObject *__pyx_v_self); /*proto*/
29193static PyObject *__pyx_pw_5rados_10Completion_10oncomplete_1__get__(PyObject *__pyx_v_self) {
29194 PyObject *__pyx_r = 0;
29195 __Pyx_RefNannyDeclarations
29196 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29197 __pyx_r = __pyx_pf_5rados_10Completion_10oncomplete___get__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
29198
29199 /* function exit code */
29200 __Pyx_RefNannyFinishContext();
29201 return __pyx_r;
29202}
29203
29204static PyObject *__pyx_pf_5rados_10Completion_10oncomplete___get__(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
29205 PyObject *__pyx_r = NULL((void*)0);
29206 __Pyx_RefNannyDeclarations
29207 __Pyx_RefNannySetupContext("__get__", 0);
29208 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
29209 __Pyx_INCREF(__pyx_v_self->oncomplete)( ((PyObject*)(__pyx_v_self->oncomplete))->ob_refcnt++);
29210 __pyx_r = __pyx_v_self->oncomplete;
29211 goto __pyx_L0;
29212
29213 /* function exit code */
29214 __pyx_L0:;
29215 __Pyx_XGIVEREF(__pyx_r);
29216 __Pyx_RefNannyFinishContext();
29217 return __pyx_r;
29218}
29219
29220/* Python wrapper */
29221static int __pyx_pw_5rados_10Completion_10oncomplete_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29222static int __pyx_pw_5rados_10Completion_10oncomplete_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29223 int __pyx_r;
29224 __Pyx_RefNannyDeclarations
29225 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29226 __pyx_r = __pyx_pf_5rados_10Completion_10oncomplete_2__set__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29227
29228 /* function exit code */
29229 __Pyx_RefNannyFinishContext();
29230 return __pyx_r;
29231}
29232
29233static int __pyx_pf_5rados_10Completion_10oncomplete_2__set__(struct __pyx_obj_5rados_Completion *__pyx_v_self, PyObject *__pyx_v_value) {
29234 int __pyx_r;
29235 __Pyx_RefNannyDeclarations
29236 __Pyx_RefNannySetupContext("__set__", 0);
29237 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
29238 __Pyx_GIVEREF(__pyx_v_value);
29239 __Pyx_GOTREF(__pyx_v_self->oncomplete);
29240 __Pyx_DECREF(__pyx_v_self->oncomplete)do { if ( --((PyObject*)(__pyx_v_self->oncomplete))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
oncomplete)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->oncomplete)))); } while (0)
;
29241 __pyx_v_self->oncomplete = __pyx_v_value;
29242
29243 /* function exit code */
29244 __pyx_r = 0;
29245 __Pyx_RefNannyFinishContext();
29246 return __pyx_r;
29247}
29248
29249/* Python wrapper */
29250static int __pyx_pw_5rados_10Completion_10oncomplete_5__del__(PyObject *__pyx_v_self); /*proto*/
29251static int __pyx_pw_5rados_10Completion_10oncomplete_5__del__(PyObject *__pyx_v_self) {
29252 int __pyx_r;
29253 __Pyx_RefNannyDeclarations
29254 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29255 __pyx_r = __pyx_pf_5rados_10Completion_10oncomplete_4__del__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
29256
29257 /* function exit code */
29258 __Pyx_RefNannyFinishContext();
29259 return __pyx_r;
29260}
29261
29262static int __pyx_pf_5rados_10Completion_10oncomplete_4__del__(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
29263 int __pyx_r;
29264 __Pyx_RefNannyDeclarations
29265 __Pyx_RefNannySetupContext("__del__", 0);
29266 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
29267 __Pyx_GIVEREF(Py_None);
29268 __Pyx_GOTREF(__pyx_v_self->oncomplete);
29269 __Pyx_DECREF(__pyx_v_self->oncomplete)do { if ( --((PyObject*)(__pyx_v_self->oncomplete))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
oncomplete)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->oncomplete)))); } while (0)
;
29270 __pyx_v_self->oncomplete = Py_None(&_Py_NoneStruct);
29271
29272 /* function exit code */
29273 __pyx_r = 0;
29274 __Pyx_RefNannyFinishContext();
29275 return __pyx_r;
29276}
29277
29278/* "rados.pyx":1851
29279 * Ioctx ioctx
29280 * object oncomplete
29281 * object onsafe # <<<<<<<<<<<<<<
29282 *
29283 * cdef:
29284 */
29285
29286/* Python wrapper */
29287static PyObject *__pyx_pw_5rados_10Completion_6onsafe_1__get__(PyObject *__pyx_v_self); /*proto*/
29288static PyObject *__pyx_pw_5rados_10Completion_6onsafe_1__get__(PyObject *__pyx_v_self) {
29289 PyObject *__pyx_r = 0;
29290 __Pyx_RefNannyDeclarations
29291 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
29292 __pyx_r = __pyx_pf_5rados_10Completion_6onsafe___get__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
29293
29294 /* function exit code */
29295 __Pyx_RefNannyFinishContext();
29296 return __pyx_r;
29297}
29298
29299static PyObject *__pyx_pf_5rados_10Completion_6onsafe___get__(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
29300 PyObject *__pyx_r = NULL((void*)0);
29301 __Pyx_RefNannyDeclarations
29302 __Pyx_RefNannySetupContext("__get__", 0);
29303 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
29304 __Pyx_INCREF(__pyx_v_self->onsafe)( ((PyObject*)(__pyx_v_self->onsafe))->ob_refcnt++);
29305 __pyx_r = __pyx_v_self->onsafe;
29306 goto __pyx_L0;
29307
29308 /* function exit code */
29309 __pyx_L0:;
29310 __Pyx_XGIVEREF(__pyx_r);
29311 __Pyx_RefNannyFinishContext();
29312 return __pyx_r;
29313}
29314
29315/* Python wrapper */
29316static int __pyx_pw_5rados_10Completion_6onsafe_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
29317static int __pyx_pw_5rados_10Completion_6onsafe_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
29318 int __pyx_r;
29319 __Pyx_RefNannyDeclarations
29320 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
29321 __pyx_r = __pyx_pf_5rados_10Completion_6onsafe_2__set__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self), ((PyObject *)__pyx_v_value));
29322
29323 /* function exit code */
29324 __Pyx_RefNannyFinishContext();
29325 return __pyx_r;
29326}
29327
29328static int __pyx_pf_5rados_10Completion_6onsafe_2__set__(struct __pyx_obj_5rados_Completion *__pyx_v_self, PyObject *__pyx_v_value) {
29329 int __pyx_r;
29330 __Pyx_RefNannyDeclarations
29331 __Pyx_RefNannySetupContext("__set__", 0);
29332 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
29333 __Pyx_GIVEREF(__pyx_v_value);
29334 __Pyx_GOTREF(__pyx_v_self->onsafe);
29335 __Pyx_DECREF(__pyx_v_self->onsafe)do { if ( --((PyObject*)(__pyx_v_self->onsafe))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
onsafe)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->onsafe)))); } while (0)
;
29336 __pyx_v_self->onsafe = __pyx_v_value;
29337
29338 /* function exit code */
29339 __pyx_r = 0;
29340 __Pyx_RefNannyFinishContext();
29341 return __pyx_r;
29342}
29343
29344/* Python wrapper */
29345static int __pyx_pw_5rados_10Completion_6onsafe_5__del__(PyObject *__pyx_v_self); /*proto*/
29346static int __pyx_pw_5rados_10Completion_6onsafe_5__del__(PyObject *__pyx_v_self) {
29347 int __pyx_r;
29348 __Pyx_RefNannyDeclarations
29349 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
29350 __pyx_r = __pyx_pf_5rados_10Completion_6onsafe_4__del__(((struct __pyx_obj_5rados_Completion *)__pyx_v_self));
29351
29352 /* function exit code */
29353 __Pyx_RefNannyFinishContext();
29354 return __pyx_r;
29355}
29356
29357static int __pyx_pf_5rados_10Completion_6onsafe_4__del__(struct __pyx_obj_5rados_Completion *__pyx_v_self) {
29358 int __pyx_r;
29359 __Pyx_RefNannyDeclarations
29360 __Pyx_RefNannySetupContext("__del__", 0);
29361 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
29362 __Pyx_GIVEREF(Py_None);
29363 __Pyx_GOTREF(__pyx_v_self->onsafe);
29364 __Pyx_DECREF(__pyx_v_self->onsafe)do { if ( --((PyObject*)(__pyx_v_self->onsafe))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
onsafe)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->onsafe)))); } while (0)
;
29365 __pyx_v_self->onsafe = Py_None(&_Py_NoneStruct);
29366
29367 /* function exit code */
29368 __pyx_r = 0;
29369 __Pyx_RefNannyFinishContext();
29370 return __pyx_r;
29371}
29372
29373/* "rados.pyx":1973
29374 *
29375 * class OpCtx(object):
29376 * def __enter__(self): # <<<<<<<<<<<<<<
29377 * return self.create()
29378 *
29379 */
29380
29381/* Python wrapper */
29382static PyObject *__pyx_pw_5rados_5OpCtx_1__enter__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
29383static char __pyx_doc_5rados_5OpCtx___enter__[] = "OpCtx.__enter__(self)";
29384static PyMethodDef __pyx_mdef_5rados_5OpCtx_1__enter__ = {"__enter__", (PyCFunction)__pyx_pw_5rados_5OpCtx_1__enter__, METH_O0x0008, __pyx_doc_5rados_5OpCtx___enter__};
29385static PyObject *__pyx_pw_5rados_5OpCtx_1__enter__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
29386 PyObject *__pyx_r = 0;
29387 __Pyx_RefNannyDeclarations
29388 __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0);
29389 __pyx_r = __pyx_pf_5rados_5OpCtx___enter__(__pyx_self, ((PyObject *)__pyx_v_self));
29390
29391 /* function exit code */
29392 __Pyx_RefNannyFinishContext();
29393 return __pyx_r;
29394}
29395
29396static PyObject *__pyx_pf_5rados_5OpCtx___enter__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
29397 PyObject *__pyx_r = NULL((void*)0);
29398 __Pyx_RefNannyDeclarations
29399 PyObject *__pyx_t_1 = NULL((void*)0);
29400 PyObject *__pyx_t_2 = NULL((void*)0);
29401 PyObject *__pyx_t_3 = NULL((void*)0);
29402 int __pyx_lineno = 0;
29403 const char *__pyx_filename = NULL((void*)0);
29404 int __pyx_clineno = 0;
29405 __Pyx_RefNannySetupContext("__enter__", 0);
29406
29407 /* "rados.pyx":1974
29408 * class OpCtx(object):
29409 * def __enter__(self):
29410 * return self.create() # <<<<<<<<<<<<<<
29411 *
29412 * def __exit__(self, type, msg, traceback):
29413 */
29414 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
29415 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_create); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__29415; goto __pyx_L1_error;}
29416 __Pyx_GOTREF(__pyx_t_2);
29417 __pyx_t_3 = NULL((void*)0);
29418 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
29419 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
29420 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
29421 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
29422 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
29423 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
29424 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
29425 }
29426 }
29427 if (__pyx_t_3) {
29428 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__29428; goto __pyx_L1_error;}
29429 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
29430 } else {
29431 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__29431; goto __pyx_L1_error;}
29432 }
29433 __Pyx_GOTREF(__pyx_t_1);
29434 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
29435 __pyx_r = __pyx_t_1;
29436 __pyx_t_1 = 0;
29437 goto __pyx_L0;
29438
29439 /* "rados.pyx":1973
29440 *
29441 * class OpCtx(object):
29442 * def __enter__(self): # <<<<<<<<<<<<<<
29443 * return self.create()
29444 *
29445 */
29446
29447 /* function exit code */
29448 __pyx_L1_error:;
29449 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
29450 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
29451 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
29452 __Pyx_AddTraceback("rados.OpCtx.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29453 __pyx_r = NULL((void*)0);
29454 __pyx_L0:;
29455 __Pyx_XGIVEREF(__pyx_r);
29456 __Pyx_RefNannyFinishContext();
29457 return __pyx_r;
29458}
29459
29460/* "rados.pyx":1976
29461 * return self.create()
29462 *
29463 * def __exit__(self, type, msg, traceback): # <<<<<<<<<<<<<<
29464 * self.release()
29465 *
29466 */
29467
29468/* Python wrapper */
29469static PyObject *__pyx_pw_5rados_5OpCtx_3__exit__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29470static char __pyx_doc_5rados_5OpCtx_2__exit__[] = "OpCtx.__exit__(self, type, msg, traceback)";
29471static PyMethodDef __pyx_mdef_5rados_5OpCtx_3__exit__ = {"__exit__", (PyCFunction)__pyx_pw_5rados_5OpCtx_3__exit__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5OpCtx_2__exit__};
29472static PyObject *__pyx_pw_5rados_5OpCtx_3__exit__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29473 PyObject *__pyx_v_self = 0;
29474 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type = 0;
29475 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_msg = 0;
29476 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback = 0;
29477 int __pyx_lineno = 0;
29478 const char *__pyx_filename = NULL((void*)0);
29479 int __pyx_clineno = 0;
29480 PyObject *__pyx_r = 0;
29481 __Pyx_RefNannyDeclarations
29482 __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
29483 {
29484 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_type_2,&__pyx_n_s_msg,&__pyx_n_s_traceback,0};
29485 PyObject* values[4] = {0,0,0,0};
29486 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
29487 Py_ssize_t kw_args;
29488 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
29489 switch (pos_args) {
29490 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
29491 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
29492 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
29493 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
29494 case 0: break;
29495 default: goto __pyx_L5_argtuple_error;
29496 }
29497 kw_args = PyDict_Size(__pyx_kwds);
29498 switch (pos_args) {
29499 case 0:
29500 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
29501 else goto __pyx_L5_argtuple_error;
29502 case 1:
29503 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type_2
)) != 0), 1)
) kw_args--;
29504 else {
29505 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__29505; goto __pyx_L3_error;}
29506 }
29507 case 2:
29508 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_msg)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_msg
)) != 0), 1)
) kw_args--;
29509 else {
29510 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__29510; goto __pyx_L3_error;}
29511 }
29512 case 3:
29513 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_traceback)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_traceback
)) != 0), 1)
) kw_args--;
29514 else {
29515 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__29515; goto __pyx_L3_error;}
29516 }
29517 }
29518 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
29519 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__exit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__29519; goto __pyx_L3_error;}
29520 }
29521 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 4) {
29522 goto __pyx_L5_argtuple_error;
29523 } else {
29524 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
29525 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
29526 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
29527 values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
29528 }
29529 __pyx_v_self = values[0];
29530 __pyx_v_type = values[1];
29531 __pyx_v_msg = values[2];
29532 __pyx_v_traceback = values[3];
29533 }
29534 goto __pyx_L4_argument_unpacking_done;
29535 __pyx_L5_argtuple_error:;
29536 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__29536; goto __pyx_L3_error;}
29537 __pyx_L3_error:;
29538 __Pyx_AddTraceback("rados.OpCtx.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29539 __Pyx_RefNannyFinishContext();
29540 return NULL((void*)0);
29541 __pyx_L4_argument_unpacking_done:;
29542 __pyx_r = __pyx_pf_5rados_5OpCtx_2__exit__(__pyx_self, __pyx_v_self, __pyx_v_type, __pyx_v_msg, __pyx_v_traceback);
29543
29544 /* function exit code */
29545 __Pyx_RefNannyFinishContext();
29546 return __pyx_r;
29547}
29548
29549static PyObject *__pyx_pf_5rados_5OpCtx_2__exit__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_msg, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback) {
29550 PyObject *__pyx_r = NULL((void*)0);
29551 __Pyx_RefNannyDeclarations
29552 PyObject *__pyx_t_1 = NULL((void*)0);
29553 PyObject *__pyx_t_2 = NULL((void*)0);
29554 PyObject *__pyx_t_3 = NULL((void*)0);
29555 int __pyx_lineno = 0;
29556 const char *__pyx_filename = NULL((void*)0);
29557 int __pyx_clineno = 0;
29558 __Pyx_RefNannySetupContext("__exit__", 0);
29559
29560 /* "rados.pyx":1977
29561 *
29562 * def __exit__(self, type, msg, traceback):
29563 * self.release() # <<<<<<<<<<<<<<
29564 *
29565 *
29566 */
29567 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_release); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__29567; goto __pyx_L1_error;}
29568 __Pyx_GOTREF(__pyx_t_2);
29569 __pyx_t_3 = NULL((void*)0);
29570 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
29571 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
29572 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
29573 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
29574 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
29575 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
29576 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
29577 }
29578 }
29579 if (__pyx_t_3) {
29580 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__29580; goto __pyx_L1_error;}
29581 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
29582 } else {
29583 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__29583; goto __pyx_L1_error;}
29584 }
29585 __Pyx_GOTREF(__pyx_t_1);
29586 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
29587 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
29588
29589 /* "rados.pyx":1976
29590 * return self.create()
29591 *
29592 * def __exit__(self, type, msg, traceback): # <<<<<<<<<<<<<<
29593 * self.release()
29594 *
29595 */
29596
29597 /* function exit code */
29598 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
29599 goto __pyx_L0;
29600 __pyx_L1_error:;
29601 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
29602 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
29603 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
29604 __Pyx_AddTraceback("rados.OpCtx.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
29605 __pyx_r = NULL((void*)0);
29606 __pyx_L0:;
29607 __Pyx_XGIVEREF(__pyx_r);
29608 __Pyx_RefNannyFinishContext();
29609 return __pyx_r;
29610}
29611
29612/* "rados.pyx":1983
29613 * cdef rados_write_op_t write_op
29614 *
29615 * def create(self): # <<<<<<<<<<<<<<
29616 * with nogil:
29617 * self.write_op = rados_create_write_op()
29618 */
29619
29620/* Python wrapper */
29621static PyObject *__pyx_pw_5rados_7WriteOp_1create(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
29622static char __pyx_doc_5rados_7WriteOp_create[] = "WriteOp.create(self)";
29623static PyObject *__pyx_pw_5rados_7WriteOp_1create(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
29624 PyObject *__pyx_r = 0;
29625 __Pyx_RefNannyDeclarations
29626 __Pyx_RefNannySetupContext("create (wrapper)", 0);
29627 __pyx_r = __pyx_pf_5rados_7WriteOp_create(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self));
29628
29629 /* function exit code */
29630 __Pyx_RefNannyFinishContext();
29631 return __pyx_r;
29632}
29633
29634static PyObject *__pyx_pf_5rados_7WriteOp_create(struct __pyx_obj_5rados_WriteOp *__pyx_v_self) {
29635 PyObject *__pyx_r = NULL((void*)0);
29636 __Pyx_RefNannyDeclarations
29637 __Pyx_RefNannySetupContext("create", 0);
29638
29639 /* "rados.pyx":1984
29640 *
29641 * def create(self):
29642 * with nogil: # <<<<<<<<<<<<<<
29643 * self.write_op = rados_create_write_op()
29644 * return self
29645 */
29646 {
29647 #ifdef WITH_THREAD1
29648 PyThreadState *_save;
29649 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
29650 #endif
29651 /*try:*/ {
29652
29653 /* "rados.pyx":1985
29654 * def create(self):
29655 * with nogil:
29656 * self.write_op = rados_create_write_op() # <<<<<<<<<<<<<<
29657 * return self
29658 *
29659 */
29660 __pyx_v_self->write_op = rados_create_write_op();
29661 }
29662
29663 /* "rados.pyx":1984
29664 *
29665 * def create(self):
29666 * with nogil: # <<<<<<<<<<<<<<
29667 * self.write_op = rados_create_write_op()
29668 * return self
29669 */
29670 /*finally:*/ {
29671 /*normal exit:*/{
29672 #ifdef WITH_THREAD1
29673 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
29674 #endif
29675 goto __pyx_L5;
29676 }
29677 __pyx_L5:;
29678 }
29679 }
29680
29681 /* "rados.pyx":1986
29682 * with nogil:
29683 * self.write_op = rados_create_write_op()
29684 * return self # <<<<<<<<<<<<<<
29685 *
29686 * def release(self):
29687 */
29688 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
29689 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
29690 __pyx_r = ((PyObject *)__pyx_v_self);
29691 goto __pyx_L0;
29692
29693 /* "rados.pyx":1983
29694 * cdef rados_write_op_t write_op
29695 *
29696 * def create(self): # <<<<<<<<<<<<<<
29697 * with nogil:
29698 * self.write_op = rados_create_write_op()
29699 */
29700
29701 /* function exit code */
29702 __pyx_L0:;
29703 __Pyx_XGIVEREF(__pyx_r);
29704 __Pyx_RefNannyFinishContext();
29705 return __pyx_r;
29706}
29707
29708/* "rados.pyx":1988
29709 * return self
29710 *
29711 * def release(self): # <<<<<<<<<<<<<<
29712 * with nogil:
29713 * rados_release_write_op(self.write_op)
29714 */
29715
29716/* Python wrapper */
29717static PyObject *__pyx_pw_5rados_7WriteOp_3release(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
29718static char __pyx_doc_5rados_7WriteOp_2release[] = "WriteOp.release(self)";
29719static PyObject *__pyx_pw_5rados_7WriteOp_3release(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
29720 PyObject *__pyx_r = 0;
29721 __Pyx_RefNannyDeclarations
29722 __Pyx_RefNannySetupContext("release (wrapper)", 0);
29723 __pyx_r = __pyx_pf_5rados_7WriteOp_2release(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self));
29724
29725 /* function exit code */
29726 __Pyx_RefNannyFinishContext();
29727 return __pyx_r;
29728}
29729
29730static PyObject *__pyx_pf_5rados_7WriteOp_2release(struct __pyx_obj_5rados_WriteOp *__pyx_v_self) {
29731 PyObject *__pyx_r = NULL((void*)0);
29732 __Pyx_RefNannyDeclarations
29733 __Pyx_RefNannySetupContext("release", 0);
29734
29735 /* "rados.pyx":1989
29736 *
29737 * def release(self):
29738 * with nogil: # <<<<<<<<<<<<<<
29739 * rados_release_write_op(self.write_op)
29740 *
29741 */
29742 {
29743 #ifdef WITH_THREAD1
29744 PyThreadState *_save;
29745 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
29746 #endif
29747 /*try:*/ {
29748
29749 /* "rados.pyx":1990
29750 * def release(self):
29751 * with nogil:
29752 * rados_release_write_op(self.write_op) # <<<<<<<<<<<<<<
29753 *
29754 * @requires(('exclusive', opt(int)))
29755 */
29756 rados_release_write_op(__pyx_v_self->write_op);
29757 }
29758
29759 /* "rados.pyx":1989
29760 *
29761 * def release(self):
29762 * with nogil: # <<<<<<<<<<<<<<
29763 * rados_release_write_op(self.write_op)
29764 *
29765 */
29766 /*finally:*/ {
29767 /*normal exit:*/{
29768 #ifdef WITH_THREAD1
29769 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
29770 #endif
29771 goto __pyx_L5;
29772 }
29773 __pyx_L5:;
29774 }
29775 }
29776
29777 /* "rados.pyx":1988
29778 * return self
29779 *
29780 * def release(self): # <<<<<<<<<<<<<<
29781 * with nogil:
29782 * rados_release_write_op(self.write_op)
29783 */
29784
29785 /* function exit code */
29786 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
29787 __Pyx_XGIVEREF(__pyx_r);
29788 __Pyx_RefNannyFinishContext();
29789 return __pyx_r;
29790}
29791
29792/* "rados.pyx":1993
29793 *
29794 * @requires(('exclusive', opt(int)))
29795 * def new(self, exclusive=None): # <<<<<<<<<<<<<<
29796 * """
29797 * Create the object.
29798 */
29799
29800/* Python wrapper */
29801static PyObject *__pyx_pw_5rados_7WriteOp_5new(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
29802static char __pyx_doc_5rados_7WriteOp_4new[] = "WriteOp.new(self, exclusive=None)\n\n Create the object.\n ";
29803static PyObject *__pyx_pw_5rados_7WriteOp_5new(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
29804 PyObject *__pyx_v_exclusive = 0;
29805 int __pyx_lineno = 0;
29806 const char *__pyx_filename = NULL((void*)0);
29807 int __pyx_clineno = 0;
29808 PyObject *__pyx_r = 0;
29809 __Pyx_RefNannyDeclarations
29810 __Pyx_RefNannySetupContext("new (wrapper)", 0);
29811 {
29812 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exclusive,0};
29813 PyObject* values[1] = {0};
29814 values[0] = ((PyObject *)Py_None(&_Py_NoneStruct));
29815 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
29816 Py_ssize_t kw_args;
29817 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
29818 switch (pos_args) {
29819 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
29820 case 0: break;
29821 default: goto __pyx_L5_argtuple_error;
29822 }
29823 kw_args = PyDict_Size(__pyx_kwds);
29824 switch (pos_args) {
29825 case 0:
29826 if (kw_args > 0) {
29827 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_exclusive);
29828 if (value) { values[0] = value; kw_args--; }
29829 }
29830 }
29831 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
29832 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "new") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__29832; goto __pyx_L3_error;}
29833 }
29834 } else {
29835 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
29836 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
29837 case 0: break;
29838 default: goto __pyx_L5_argtuple_error;
29839 }
29840 }
29841 __pyx_v_exclusive = values[0];
29842 }
29843 goto __pyx_L4_argument_unpacking_done;
29844 __pyx_L5_argtuple_error:;
29845 __Pyx_RaiseArgtupleInvalid("new", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__29845; goto __pyx_L3_error;}
29846 __pyx_L3_error:;
29847 __Pyx_AddTraceback("rados.WriteOp.new", __pyx_clineno, __pyx_lineno, __pyx_filename);
29848 __Pyx_RefNannyFinishContext();
29849 return NULL((void*)0);
29850 __pyx_L4_argument_unpacking_done:;
29851 __pyx_r = __pyx_pf_5rados_7WriteOp_4new(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), __pyx_v_exclusive);
29852
29853 /* function exit code */
29854 __Pyx_RefNannyFinishContext();
29855 return __pyx_r;
29856}
29857
29858static PyObject *__pyx_pf_5rados_7WriteOp_4new(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_exclusive) {
29859 int __pyx_v__exclusive;
29860 PyObject *__pyx_r = NULL((void*)0);
29861 __Pyx_RefNannyDeclarations
29862 int __pyx_t_1;
29863 int __pyx_lineno = 0;
29864 const char *__pyx_filename = NULL((void*)0);
29865 int __pyx_clineno = 0;
29866 __Pyx_RefNannySetupContext("new", 0);
29867
29868 /* "rados.pyx":1999
29869 *
29870 * cdef:
29871 * int _exclusive = exclusive # <<<<<<<<<<<<<<
29872 *
29873 * with nogil:
29874 */
29875 __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_exclusive); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_1 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1999; __pyx_clineno = __LINE__29875; goto __pyx_L1_error;}
29876 __pyx_v__exclusive = __pyx_t_1;
29877
29878 /* "rados.pyx":2001
29879 * int _exclusive = exclusive
29880 *
29881 * with nogil: # <<<<<<<<<<<<<<
29882 * rados_write_op_create(self.write_op, _exclusive, NULL)
29883 *
29884 */
29885 {
29886 #ifdef WITH_THREAD1
29887 PyThreadState *_save;
29888 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
29889 #endif
29890 /*try:*/ {
29891
29892 /* "rados.pyx":2002
29893 *
29894 * with nogil:
29895 * rados_write_op_create(self.write_op, _exclusive, NULL) # <<<<<<<<<<<<<<
29896 *
29897 *
29898 */
29899 rados_write_op_create(__pyx_v_self->write_op, __pyx_v__exclusive, NULL((void*)0));
29900 }
29901
29902 /* "rados.pyx":2001
29903 * int _exclusive = exclusive
29904 *
29905 * with nogil: # <<<<<<<<<<<<<<
29906 * rados_write_op_create(self.write_op, _exclusive, NULL)
29907 *
29908 */
29909 /*finally:*/ {
29910 /*normal exit:*/{
29911 #ifdef WITH_THREAD1
29912 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
29913 #endif
29914 goto __pyx_L5;
29915 }
29916 __pyx_L5:;
29917 }
29918 }
29919
29920 /* "rados.pyx":1993
29921 *
29922 * @requires(('exclusive', opt(int)))
29923 * def new(self, exclusive=None): # <<<<<<<<<<<<<<
29924 * """
29925 * Create the object.
29926 */
29927
29928 /* function exit code */
29929 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
29930 goto __pyx_L0;
29931 __pyx_L1_error:;
29932 __Pyx_AddTraceback("rados.WriteOp.new", __pyx_clineno, __pyx_lineno, __pyx_filename);
29933 __pyx_r = NULL((void*)0);
29934 __pyx_L0:;
29935 __Pyx_XGIVEREF(__pyx_r);
29936 __Pyx_RefNannyFinishContext();
29937 return __pyx_r;
29938}
29939
29940/* "rados.pyx":2005
29941 *
29942 *
29943 * def remove(self): # <<<<<<<<<<<<<<
29944 * """
29945 * Remove object.
29946 */
29947
29948/* Python wrapper */
29949static PyObject *__pyx_pw_5rados_7WriteOp_7remove(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
29950static char __pyx_doc_5rados_7WriteOp_6remove[] = "WriteOp.remove(self)\n\n Remove object.\n ";
29951static PyObject *__pyx_pw_5rados_7WriteOp_7remove(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
29952 PyObject *__pyx_r = 0;
29953 __Pyx_RefNannyDeclarations
29954 __Pyx_RefNannySetupContext("remove (wrapper)", 0);
29955 __pyx_r = __pyx_pf_5rados_7WriteOp_6remove(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self));
29956
29957 /* function exit code */
29958 __Pyx_RefNannyFinishContext();
29959 return __pyx_r;
29960}
29961
29962static PyObject *__pyx_pf_5rados_7WriteOp_6remove(struct __pyx_obj_5rados_WriteOp *__pyx_v_self) {
29963 PyObject *__pyx_r = NULL((void*)0);
29964 __Pyx_RefNannyDeclarations
29965 __Pyx_RefNannySetupContext("remove", 0);
29966
29967 /* "rados.pyx":2009
29968 * Remove object.
29969 * """
29970 * with nogil: # <<<<<<<<<<<<<<
29971 * rados_write_op_remove(self.write_op)
29972 *
29973 */
29974 {
29975 #ifdef WITH_THREAD1
29976 PyThreadState *_save;
29977 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
29978 #endif
29979 /*try:*/ {
29980
29981 /* "rados.pyx":2010
29982 * """
29983 * with nogil:
29984 * rados_write_op_remove(self.write_op) # <<<<<<<<<<<<<<
29985 *
29986 * @requires(('flags', int))
29987 */
29988 rados_write_op_remove(__pyx_v_self->write_op);
29989 }
29990
29991 /* "rados.pyx":2009
29992 * Remove object.
29993 * """
29994 * with nogil: # <<<<<<<<<<<<<<
29995 * rados_write_op_remove(self.write_op)
29996 *
29997 */
29998 /*finally:*/ {
29999 /*normal exit:*/{
30000 #ifdef WITH_THREAD1
30001 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30002 #endif
30003 goto __pyx_L5;
30004 }
30005 __pyx_L5:;
30006 }
30007 }
30008
30009 /* "rados.pyx":2005
30010 *
30011 *
30012 * def remove(self): # <<<<<<<<<<<<<<
30013 * """
30014 * Remove object.
30015 */
30016
30017 /* function exit code */
30018 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30019 __Pyx_XGIVEREF(__pyx_r);
30020 __Pyx_RefNannyFinishContext();
30021 return __pyx_r;
30022}
30023
30024/* "rados.pyx":2013
30025 *
30026 * @requires(('flags', int))
30027 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
30028 * """
30029 * Set flags for the last operation added to this write_op.
30030 */
30031
30032/* Python wrapper */
30033static PyObject *__pyx_pw_5rados_7WriteOp_9set_flags(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
30034static char __pyx_doc_5rados_7WriteOp_8set_flags[] = "WriteOp.set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG)\n\n Set flags for the last operation added to this write_op.\n :para flags: flags to apply to the last operation\n :type flags: int\n ";
30035static PyObject *__pyx_pw_5rados_7WriteOp_9set_flags(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
30036 PyObject *__pyx_v_flags = 0;
30037 int __pyx_lineno = 0;
30038 const char *__pyx_filename = NULL((void*)0);
30039 int __pyx_clineno = 0;
30040 PyObject *__pyx_r = 0;
30041 __Pyx_RefNannyDeclarations
30042 __Pyx_RefNannySetupContext("set_flags (wrapper)", 0);
30043 {
30044 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,0};
30045 PyObject* values[1] = {0};
30046 values[0] = __pyx_k__48;
30047 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
30048 Py_ssize_t kw_args;
30049 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
30050 switch (pos_args) {
30051 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
30052 case 0: break;
30053 default: goto __pyx_L5_argtuple_error;
30054 }
30055 kw_args = PyDict_Size(__pyx_kwds);
30056 switch (pos_args) {
30057 case 0:
30058 if (kw_args > 0) {
30059 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags);
30060 if (value) { values[0] = value; kw_args--; }
30061 }
30062 }
30063 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
30064 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_flags") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "set_flags") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__30064; goto __pyx_L3_error;}
30065 }
30066 } else {
30067 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
30068 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
30069 case 0: break;
30070 default: goto __pyx_L5_argtuple_error;
30071 }
30072 }
30073 __pyx_v_flags = values[0];
30074 }
30075 goto __pyx_L4_argument_unpacking_done;
30076 __pyx_L5_argtuple_error:;
30077 __Pyx_RaiseArgtupleInvalid("set_flags", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__30077; goto __pyx_L3_error;}
30078 __pyx_L3_error:;
30079 __Pyx_AddTraceback("rados.WriteOp.set_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
30080 __Pyx_RefNannyFinishContext();
30081 return NULL((void*)0);
30082 __pyx_L4_argument_unpacking_done:;
30083 __pyx_r = __pyx_pf_5rados_7WriteOp_8set_flags(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), __pyx_v_flags);
30084
30085 /* function exit code */
30086 __Pyx_RefNannyFinishContext();
30087 return __pyx_r;
30088}
30089
30090static PyObject *__pyx_pf_5rados_7WriteOp_8set_flags(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_flags) {
30091 int __pyx_v__flags;
30092 PyObject *__pyx_r = NULL((void*)0);
30093 __Pyx_RefNannyDeclarations
30094 int __pyx_t_1;
30095 int __pyx_lineno = 0;
30096 const char *__pyx_filename = NULL((void*)0);
30097 int __pyx_clineno = 0;
30098 __Pyx_RefNannySetupContext("set_flags", 0);
30099
30100 /* "rados.pyx":2021
30101 *
30102 * cdef:
30103 * int _flags = flags # <<<<<<<<<<<<<<
30104 *
30105 * with nogil:
30106 */
30107 __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_1 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2021; __pyx_clineno = __LINE__30107; goto __pyx_L1_error;}
30108 __pyx_v__flags = __pyx_t_1;
30109
30110 /* "rados.pyx":2023
30111 * int _flags = flags
30112 *
30113 * with nogil: # <<<<<<<<<<<<<<
30114 * rados_write_op_set_flags(self.write_op, _flags)
30115 *
30116 */
30117 {
30118 #ifdef WITH_THREAD1
30119 PyThreadState *_save;
30120 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30121 #endif
30122 /*try:*/ {
30123
30124 /* "rados.pyx":2024
30125 *
30126 * with nogil:
30127 * rados_write_op_set_flags(self.write_op, _flags) # <<<<<<<<<<<<<<
30128 *
30129 * @requires(('to_write', bytes))
30130 */
30131 rados_write_op_set_flags(__pyx_v_self->write_op, __pyx_v__flags);
30132 }
30133
30134 /* "rados.pyx":2023
30135 * int _flags = flags
30136 *
30137 * with nogil: # <<<<<<<<<<<<<<
30138 * rados_write_op_set_flags(self.write_op, _flags)
30139 *
30140 */
30141 /*finally:*/ {
30142 /*normal exit:*/{
30143 #ifdef WITH_THREAD1
30144 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30145 #endif
30146 goto __pyx_L5;
30147 }
30148 __pyx_L5:;
30149 }
30150 }
30151
30152 /* "rados.pyx":2013
30153 *
30154 * @requires(('flags', int))
30155 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
30156 * """
30157 * Set flags for the last operation added to this write_op.
30158 */
30159
30160 /* function exit code */
30161 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30162 goto __pyx_L0;
30163 __pyx_L1_error:;
30164 __Pyx_AddTraceback("rados.WriteOp.set_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
30165 __pyx_r = NULL((void*)0);
30166 __pyx_L0:;
30167 __Pyx_XGIVEREF(__pyx_r);
30168 __Pyx_RefNannyFinishContext();
30169 return __pyx_r;
30170}
30171
30172/* "rados.pyx":2027
30173 *
30174 * @requires(('to_write', bytes))
30175 * def append(self, to_write): # <<<<<<<<<<<<<<
30176 * """
30177 * Append data to an object synchronously
30178 */
30179
30180/* Python wrapper */
30181static PyObject *__pyx_pw_5rados_7WriteOp_11append(PyObject *__pyx_v_self, PyObject *__pyx_v_to_write); /*proto*/
30182static char __pyx_doc_5rados_7WriteOp_10append[] = "WriteOp.append(self, to_write)\n\n Append data to an object synchronously\n :param to_write: data to write\n :type to_write: bytes\n ";
30183static PyObject *__pyx_pw_5rados_7WriteOp_11append(PyObject *__pyx_v_self, PyObject *__pyx_v_to_write) {
30184 PyObject *__pyx_r = 0;
30185 __Pyx_RefNannyDeclarations
30186 __Pyx_RefNannySetupContext("append (wrapper)", 0);
30187 __pyx_r = __pyx_pf_5rados_7WriteOp_10append(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), ((PyObject *)__pyx_v_to_write));
30188
30189 /* function exit code */
30190 __Pyx_RefNannyFinishContext();
30191 return __pyx_r;
30192}
30193
30194static PyObject *__pyx_pf_5rados_7WriteOp_10append(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_to_write) {
30195 char *__pyx_v__to_write;
30196 size_t __pyx_v_length;
30197 PyObject *__pyx_r = NULL((void*)0);
30198 __Pyx_RefNannyDeclarations
30199 char *__pyx_t_1;
30200 Py_ssize_t __pyx_t_2;
30201 int __pyx_lineno = 0;
30202 const char *__pyx_filename = NULL((void*)0);
30203 int __pyx_clineno = 0;
30204 __Pyx_RefNannySetupContext("append", 0);
30205
30206 /* "rados.pyx":2035
30207 *
30208 * cdef:
30209 * char *_to_write = to_write # <<<<<<<<<<<<<<
30210 * size_t length = len(to_write)
30211 *
30212 */
30213 __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_to_write); if (unlikely((!__pyx_t_1) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_1) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2035; __pyx_clineno = __LINE__30213; goto __pyx_L1_error;}
30214 __pyx_v__to_write = __pyx_t_1;
30215
30216 /* "rados.pyx":2036
30217 * cdef:
30218 * char *_to_write = to_write
30219 * size_t length = len(to_write) # <<<<<<<<<<<<<<
30220 *
30221 * with nogil:
30222 */
30223 __pyx_t_2 = PyObject_LengthPyObject_Size(__pyx_v_to_write); if (unlikely(__pyx_t_2 == -1)__builtin_expect(!!(__pyx_t_2 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2036; __pyx_clineno = __LINE__30223; goto __pyx_L1_error;}
30224 __pyx_v_length = __pyx_t_2;
30225
30226 /* "rados.pyx":2038
30227 * size_t length = len(to_write)
30228 *
30229 * with nogil: # <<<<<<<<<<<<<<
30230 * rados_write_op_append(self.write_op, _to_write, length)
30231 *
30232 */
30233 {
30234 #ifdef WITH_THREAD1
30235 PyThreadState *_save;
30236 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30237 #endif
30238 /*try:*/ {
30239
30240 /* "rados.pyx":2039
30241 *
30242 * with nogil:
30243 * rados_write_op_append(self.write_op, _to_write, length) # <<<<<<<<<<<<<<
30244 *
30245 * @requires(('to_write', bytes))
30246 */
30247 rados_write_op_append(__pyx_v_self->write_op, __pyx_v__to_write, __pyx_v_length);
30248 }
30249
30250 /* "rados.pyx":2038
30251 * size_t length = len(to_write)
30252 *
30253 * with nogil: # <<<<<<<<<<<<<<
30254 * rados_write_op_append(self.write_op, _to_write, length)
30255 *
30256 */
30257 /*finally:*/ {
30258 /*normal exit:*/{
30259 #ifdef WITH_THREAD1
30260 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30261 #endif
30262 goto __pyx_L5;
30263 }
30264 __pyx_L5:;
30265 }
30266 }
30267
30268 /* "rados.pyx":2027
30269 *
30270 * @requires(('to_write', bytes))
30271 * def append(self, to_write): # <<<<<<<<<<<<<<
30272 * """
30273 * Append data to an object synchronously
30274 */
30275
30276 /* function exit code */
30277 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30278 goto __pyx_L0;
30279 __pyx_L1_error:;
30280 __Pyx_AddTraceback("rados.WriteOp.append", __pyx_clineno, __pyx_lineno, __pyx_filename);
30281 __pyx_r = NULL((void*)0);
30282 __pyx_L0:;
30283 __Pyx_XGIVEREF(__pyx_r);
30284 __Pyx_RefNannyFinishContext();
30285 return __pyx_r;
30286}
30287
30288/* "rados.pyx":2042
30289 *
30290 * @requires(('to_write', bytes))
30291 * def write_full(self, to_write): # <<<<<<<<<<<<<<
30292 * """
30293 * Write whole object, atomically replacing it.
30294 */
30295
30296/* Python wrapper */
30297static PyObject *__pyx_pw_5rados_7WriteOp_13write_full(PyObject *__pyx_v_self, PyObject *__pyx_v_to_write); /*proto*/
30298static char __pyx_doc_5rados_7WriteOp_12write_full[] = "WriteOp.write_full(self, to_write)\n\n Write whole object, atomically replacing it.\n :param to_write: data to write\n :type to_write: bytes\n ";
30299static PyObject *__pyx_pw_5rados_7WriteOp_13write_full(PyObject *__pyx_v_self, PyObject *__pyx_v_to_write) {
30300 PyObject *__pyx_r = 0;
30301 __Pyx_RefNannyDeclarations
30302 __Pyx_RefNannySetupContext("write_full (wrapper)", 0);
30303 __pyx_r = __pyx_pf_5rados_7WriteOp_12write_full(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), ((PyObject *)__pyx_v_to_write));
30304
30305 /* function exit code */
30306 __Pyx_RefNannyFinishContext();
30307 return __pyx_r;
30308}
30309
30310static PyObject *__pyx_pf_5rados_7WriteOp_12write_full(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_to_write) {
30311 char *__pyx_v__to_write;
30312 size_t __pyx_v_length;
30313 PyObject *__pyx_r = NULL((void*)0);
30314 __Pyx_RefNannyDeclarations
30315 char *__pyx_t_1;
30316 Py_ssize_t __pyx_t_2;
30317 int __pyx_lineno = 0;
30318 const char *__pyx_filename = NULL((void*)0);
30319 int __pyx_clineno = 0;
30320 __Pyx_RefNannySetupContext("write_full", 0);
30321
30322 /* "rados.pyx":2050
30323 *
30324 * cdef:
30325 * char *_to_write = to_write # <<<<<<<<<<<<<<
30326 * size_t length = len(to_write)
30327 *
30328 */
30329 __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_to_write); if (unlikely((!__pyx_t_1) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_1) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2050; __pyx_clineno = __LINE__30329; goto __pyx_L1_error;}
30330 __pyx_v__to_write = __pyx_t_1;
30331
30332 /* "rados.pyx":2051
30333 * cdef:
30334 * char *_to_write = to_write
30335 * size_t length = len(to_write) # <<<<<<<<<<<<<<
30336 *
30337 * with nogil:
30338 */
30339 __pyx_t_2 = PyObject_LengthPyObject_Size(__pyx_v_to_write); if (unlikely(__pyx_t_2 == -1)__builtin_expect(!!(__pyx_t_2 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2051; __pyx_clineno = __LINE__30339; goto __pyx_L1_error;}
30340 __pyx_v_length = __pyx_t_2;
30341
30342 /* "rados.pyx":2053
30343 * size_t length = len(to_write)
30344 *
30345 * with nogil: # <<<<<<<<<<<<<<
30346 * rados_write_op_write_full(self.write_op, _to_write, length)
30347 *
30348 */
30349 {
30350 #ifdef WITH_THREAD1
30351 PyThreadState *_save;
30352 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30353 #endif
30354 /*try:*/ {
30355
30356 /* "rados.pyx":2054
30357 *
30358 * with nogil:
30359 * rados_write_op_write_full(self.write_op, _to_write, length) # <<<<<<<<<<<<<<
30360 *
30361 * @requires(('to_write', bytes), ('offset', int))
30362 */
30363 rados_write_op_write_full(__pyx_v_self->write_op, __pyx_v__to_write, __pyx_v_length);
30364 }
30365
30366 /* "rados.pyx":2053
30367 * size_t length = len(to_write)
30368 *
30369 * with nogil: # <<<<<<<<<<<<<<
30370 * rados_write_op_write_full(self.write_op, _to_write, length)
30371 *
30372 */
30373 /*finally:*/ {
30374 /*normal exit:*/{
30375 #ifdef WITH_THREAD1
30376 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30377 #endif
30378 goto __pyx_L5;
30379 }
30380 __pyx_L5:;
30381 }
30382 }
30383
30384 /* "rados.pyx":2042
30385 *
30386 * @requires(('to_write', bytes))
30387 * def write_full(self, to_write): # <<<<<<<<<<<<<<
30388 * """
30389 * Write whole object, atomically replacing it.
30390 */
30391
30392 /* function exit code */
30393 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30394 goto __pyx_L0;
30395 __pyx_L1_error:;
30396 __Pyx_AddTraceback("rados.WriteOp.write_full", __pyx_clineno, __pyx_lineno, __pyx_filename);
30397 __pyx_r = NULL((void*)0);
30398 __pyx_L0:;
30399 __Pyx_XGIVEREF(__pyx_r);
30400 __Pyx_RefNannyFinishContext();
30401 return __pyx_r;
30402}
30403
30404/* "rados.pyx":2057
30405 *
30406 * @requires(('to_write', bytes), ('offset', int))
30407 * def write(self, to_write, offset=0): # <<<<<<<<<<<<<<
30408 * """
30409 * Write to offset.
30410 */
30411
30412/* Python wrapper */
30413static PyObject *__pyx_pw_5rados_7WriteOp_15write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
30414static char __pyx_doc_5rados_7WriteOp_14write[] = "WriteOp.write(self, to_write, offset=0)\n\n Write to offset.\n :param to_write: data to write\n :type to_write: bytes\n :param offset: byte offset in the object to begin writing at\n :type offset: int\n ";
30415static PyObject *__pyx_pw_5rados_7WriteOp_15write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
30416 PyObject *__pyx_v_to_write = 0;
30417 PyObject *__pyx_v_offset = 0;
30418 int __pyx_lineno = 0;
30419 const char *__pyx_filename = NULL((void*)0);
30420 int __pyx_clineno = 0;
30421 PyObject *__pyx_r = 0;
30422 __Pyx_RefNannyDeclarations
30423 __Pyx_RefNannySetupContext("write (wrapper)", 0);
30424 {
30425 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_to_write,&__pyx_n_s_offset,0};
30426 PyObject* values[2] = {0,0};
30427 values[1] = ((PyObject *)__pyx_int_0);
30428 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
30429 Py_ssize_t kw_args;
30430 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
30431 switch (pos_args) {
30432 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
30433 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
30434 case 0: break;
30435 default: goto __pyx_L5_argtuple_error;
30436 }
30437 kw_args = PyDict_Size(__pyx_kwds);
30438 switch (pos_args) {
30439 case 0:
30440 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_write)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_write
)) != 0), 1)
) kw_args--;
30441 else goto __pyx_L5_argtuple_error;
30442 case 1:
30443 if (kw_args > 0) {
30444 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset);
30445 if (value) { values[1] = value; kw_args--; }
30446 }
30447 }
30448 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
30449 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "write") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2057; __pyx_clineno = __LINE__30449; goto __pyx_L3_error;}
30450 }
30451 } else {
30452 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
30453 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
30454 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
30455 break;
30456 default: goto __pyx_L5_argtuple_error;
30457 }
30458 }
30459 __pyx_v_to_write = values[0];
30460 __pyx_v_offset = values[1];
30461 }
30462 goto __pyx_L4_argument_unpacking_done;
30463 __pyx_L5_argtuple_error:;
30464 __Pyx_RaiseArgtupleInvalid("write", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2057; __pyx_clineno = __LINE__30464; goto __pyx_L3_error;}
30465 __pyx_L3_error:;
30466 __Pyx_AddTraceback("rados.WriteOp.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
30467 __Pyx_RefNannyFinishContext();
30468 return NULL((void*)0);
30469 __pyx_L4_argument_unpacking_done:;
30470 __pyx_r = __pyx_pf_5rados_7WriteOp_14write(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), __pyx_v_to_write, __pyx_v_offset);
30471
30472 /* function exit code */
30473 __Pyx_RefNannyFinishContext();
30474 return __pyx_r;
30475}
30476
30477static PyObject *__pyx_pf_5rados_7WriteOp_14write(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_to_write, PyObject *__pyx_v_offset) {
30478 char *__pyx_v__to_write;
30479 size_t __pyx_v_length;
30480 uint64_t __pyx_v__offset;
30481 PyObject *__pyx_r = NULL((void*)0);
30482 __Pyx_RefNannyDeclarations
30483 char *__pyx_t_1;
30484 Py_ssize_t __pyx_t_2;
30485 uint64_t __pyx_t_3;
30486 int __pyx_lineno = 0;
30487 const char *__pyx_filename = NULL((void*)0);
30488 int __pyx_clineno = 0;
30489 __Pyx_RefNannySetupContext("write", 0);
30490
30491 /* "rados.pyx":2067
30492 *
30493 * cdef:
30494 * char *_to_write = to_write # <<<<<<<<<<<<<<
30495 * size_t length = len(to_write)
30496 * uint64_t _offset = offset
30497 */
30498 __pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_to_write); if (unlikely((!__pyx_t_1) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_1) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__30498; goto __pyx_L1_error;}
30499 __pyx_v__to_write = __pyx_t_1;
30500
30501 /* "rados.pyx":2068
30502 * cdef:
30503 * char *_to_write = to_write
30504 * size_t length = len(to_write) # <<<<<<<<<<<<<<
30505 * uint64_t _offset = offset
30506 *
30507 */
30508 __pyx_t_2 = PyObject_LengthPyObject_Size(__pyx_v_to_write); if (unlikely(__pyx_t_2 == -1)__builtin_expect(!!(__pyx_t_2 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__30508; goto __pyx_L1_error;}
30509 __pyx_v_length = __pyx_t_2;
30510
30511 /* "rados.pyx":2069
30512 * char *_to_write = to_write
30513 * size_t length = len(to_write)
30514 * uint64_t _offset = offset # <<<<<<<<<<<<<<
30515 *
30516 * with nogil:
30517 */
30518 __pyx_t_3 = __Pyx_PyInt_As_uint64_t(__pyx_v_offset); if (unlikely((__pyx_t_3 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_3 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2069; __pyx_clineno = __LINE__30518; goto __pyx_L1_error;}
30519 __pyx_v__offset = __pyx_t_3;
30520
30521 /* "rados.pyx":2071
30522 * uint64_t _offset = offset
30523 *
30524 * with nogil: # <<<<<<<<<<<<<<
30525 * rados_write_op_write(self.write_op, _to_write, length, _offset)
30526 *
30527 */
30528 {
30529 #ifdef WITH_THREAD1
30530 PyThreadState *_save;
30531 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30532 #endif
30533 /*try:*/ {
30534
30535 /* "rados.pyx":2072
30536 *
30537 * with nogil:
30538 * rados_write_op_write(self.write_op, _to_write, length, _offset) # <<<<<<<<<<<<<<
30539 *
30540 * @requires(('version', int))
30541 */
30542 rados_write_op_write(__pyx_v_self->write_op, __pyx_v__to_write, __pyx_v_length, __pyx_v__offset);
30543 }
30544
30545 /* "rados.pyx":2071
30546 * uint64_t _offset = offset
30547 *
30548 * with nogil: # <<<<<<<<<<<<<<
30549 * rados_write_op_write(self.write_op, _to_write, length, _offset)
30550 *
30551 */
30552 /*finally:*/ {
30553 /*normal exit:*/{
30554 #ifdef WITH_THREAD1
30555 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30556 #endif
30557 goto __pyx_L5;
30558 }
30559 __pyx_L5:;
30560 }
30561 }
30562
30563 /* "rados.pyx":2057
30564 *
30565 * @requires(('to_write', bytes), ('offset', int))
30566 * def write(self, to_write, offset=0): # <<<<<<<<<<<<<<
30567 * """
30568 * Write to offset.
30569 */
30570
30571 /* function exit code */
30572 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30573 goto __pyx_L0;
30574 __pyx_L1_error:;
30575 __Pyx_AddTraceback("rados.WriteOp.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
30576 __pyx_r = NULL((void*)0);
30577 __pyx_L0:;
30578 __Pyx_XGIVEREF(__pyx_r);
30579 __Pyx_RefNannyFinishContext();
30580 return __pyx_r;
30581}
30582
30583/* "rados.pyx":2075
30584 *
30585 * @requires(('version', int))
30586 * def assert_version(self, version): # <<<<<<<<<<<<<<
30587 * """
30588 * Check if object's version is the expected one.
30589 */
30590
30591/* Python wrapper */
30592static PyObject *__pyx_pw_5rados_7WriteOp_17assert_version(PyObject *__pyx_v_self, PyObject *__pyx_v_version); /*proto*/
30593static char __pyx_doc_5rados_7WriteOp_16assert_version[] = "WriteOp.assert_version(self, version)\n\n Check if object's version is the expected one.\n :param version: expected version of the object\n :param type: int\n ";
30594static PyObject *__pyx_pw_5rados_7WriteOp_17assert_version(PyObject *__pyx_v_self, PyObject *__pyx_v_version) {
30595 PyObject *__pyx_r = 0;
30596 __Pyx_RefNannyDeclarations
30597 __Pyx_RefNannySetupContext("assert_version (wrapper)", 0);
30598 __pyx_r = __pyx_pf_5rados_7WriteOp_16assert_version(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), ((PyObject *)__pyx_v_version));
30599
30600 /* function exit code */
30601 __Pyx_RefNannyFinishContext();
30602 return __pyx_r;
30603}
30604
30605static PyObject *__pyx_pf_5rados_7WriteOp_16assert_version(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_version) {
30606 uint64_t __pyx_v__version;
30607 PyObject *__pyx_r = NULL((void*)0);
30608 __Pyx_RefNannyDeclarations
30609 uint64_t __pyx_t_1;
30610 int __pyx_lineno = 0;
30611 const char *__pyx_filename = NULL((void*)0);
30612 int __pyx_clineno = 0;
30613 __Pyx_RefNannySetupContext("assert_version", 0);
30614
30615 /* "rados.pyx":2082
30616 * """
30617 * cdef:
30618 * uint64_t _version = version # <<<<<<<<<<<<<<
30619 *
30620 * with nogil:
30621 */
30622 __pyx_t_1 = __Pyx_PyInt_As_uint64_t(__pyx_v_version); if (unlikely((__pyx_t_1 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_1 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2082; __pyx_clineno = __LINE__30622; goto __pyx_L1_error;}
30623 __pyx_v__version = __pyx_t_1;
30624
30625 /* "rados.pyx":2084
30626 * uint64_t _version = version
30627 *
30628 * with nogil: # <<<<<<<<<<<<<<
30629 * rados_write_op_assert_version(self.write_op, _version)
30630 *
30631 */
30632 {
30633 #ifdef WITH_THREAD1
30634 PyThreadState *_save;
30635 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30636 #endif
30637 /*try:*/ {
30638
30639 /* "rados.pyx":2085
30640 *
30641 * with nogil:
30642 * rados_write_op_assert_version(self.write_op, _version) # <<<<<<<<<<<<<<
30643 *
30644 * @requires(('offset', int), ('length', int))
30645 */
30646 rados_write_op_assert_version(__pyx_v_self->write_op, __pyx_v__version);
30647 }
30648
30649 /* "rados.pyx":2084
30650 * uint64_t _version = version
30651 *
30652 * with nogil: # <<<<<<<<<<<<<<
30653 * rados_write_op_assert_version(self.write_op, _version)
30654 *
30655 */
30656 /*finally:*/ {
30657 /*normal exit:*/{
30658 #ifdef WITH_THREAD1
30659 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30660 #endif
30661 goto __pyx_L5;
30662 }
30663 __pyx_L5:;
30664 }
30665 }
30666
30667 /* "rados.pyx":2075
30668 *
30669 * @requires(('version', int))
30670 * def assert_version(self, version): # <<<<<<<<<<<<<<
30671 * """
30672 * Check if object's version is the expected one.
30673 */
30674
30675 /* function exit code */
30676 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30677 goto __pyx_L0;
30678 __pyx_L1_error:;
30679 __Pyx_AddTraceback("rados.WriteOp.assert_version", __pyx_clineno, __pyx_lineno, __pyx_filename);
30680 __pyx_r = NULL((void*)0);
30681 __pyx_L0:;
30682 __Pyx_XGIVEREF(__pyx_r);
30683 __Pyx_RefNannyFinishContext();
30684 return __pyx_r;
30685}
30686
30687/* "rados.pyx":2088
30688 *
30689 * @requires(('offset', int), ('length', int))
30690 * def zero(self, offset, length): # <<<<<<<<<<<<<<
30691 * """
30692 * Zero part of an object.
30693 */
30694
30695/* Python wrapper */
30696static PyObject *__pyx_pw_5rados_7WriteOp_19zero(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
30697static char __pyx_doc_5rados_7WriteOp_18zero[] = "WriteOp.zero(self, offset, length)\n\n Zero part of an object.\n :param offset: byte offset in the object to begin writing at\n :type offset: int\n :param offset: number of zero to write\n :type offset: int\n ";
30698static PyObject *__pyx_pw_5rados_7WriteOp_19zero(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
30699 PyObject *__pyx_v_offset = 0;
30700 PyObject *__pyx_v_length = 0;
30701 int __pyx_lineno = 0;
30702 const char *__pyx_filename = NULL((void*)0);
30703 int __pyx_clineno = 0;
30704 PyObject *__pyx_r = 0;
30705 __Pyx_RefNannyDeclarations
30706 __Pyx_RefNannySetupContext("zero (wrapper)", 0);
30707 {
30708 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_offset,&__pyx_n_s_length,0};
30709 PyObject* values[2] = {0,0};
30710 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
30711 Py_ssize_t kw_args;
30712 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
30713 switch (pos_args) {
30714 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
30715 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
30716 case 0: break;
30717 default: goto __pyx_L5_argtuple_error;
30718 }
30719 kw_args = PyDict_Size(__pyx_kwds);
30720 switch (pos_args) {
30721 case 0:
30722 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset
)) != 0), 1)
) kw_args--;
30723 else goto __pyx_L5_argtuple_error;
30724 case 1:
30725 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length
)) != 0), 1)
) kw_args--;
30726 else {
30727 __Pyx_RaiseArgtupleInvalid("zero", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__30727; goto __pyx_L3_error;}
30728 }
30729 }
30730 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
30731 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "zero") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "zero") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__30731; goto __pyx_L3_error;}
30732 }
30733 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
30734 goto __pyx_L5_argtuple_error;
30735 } else {
30736 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
30737 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
30738 }
30739 __pyx_v_offset = values[0];
30740 __pyx_v_length = values[1];
30741 }
30742 goto __pyx_L4_argument_unpacking_done;
30743 __pyx_L5_argtuple_error:;
30744 __Pyx_RaiseArgtupleInvalid("zero", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__30744; goto __pyx_L3_error;}
30745 __pyx_L3_error:;
30746 __Pyx_AddTraceback("rados.WriteOp.zero", __pyx_clineno, __pyx_lineno, __pyx_filename);
30747 __Pyx_RefNannyFinishContext();
30748 return NULL((void*)0);
30749 __pyx_L4_argument_unpacking_done:;
30750 __pyx_r = __pyx_pf_5rados_7WriteOp_18zero(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), __pyx_v_offset, __pyx_v_length);
30751
30752 /* function exit code */
30753 __Pyx_RefNannyFinishContext();
30754 return __pyx_r;
30755}
30756
30757static PyObject *__pyx_pf_5rados_7WriteOp_18zero(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_offset, PyObject *__pyx_v_length) {
30758 size_t __pyx_v__length;
30759 uint64_t __pyx_v__offset;
30760 PyObject *__pyx_r = NULL((void*)0);
30761 __Pyx_RefNannyDeclarations
30762 size_t __pyx_t_1;
30763 uint64_t __pyx_t_2;
30764 int __pyx_lineno = 0;
30765 const char *__pyx_filename = NULL((void*)0);
30766 int __pyx_clineno = 0;
30767 __Pyx_RefNannySetupContext("zero", 0);
30768
30769 /* "rados.pyx":2098
30770 *
30771 * cdef:
30772 * size_t _length = length # <<<<<<<<<<<<<<
30773 * uint64_t _offset = offset
30774 *
30775 */
30776 __pyx_t_1 = __Pyx_PyInt_As_size_t(__pyx_v_length); if (unlikely((__pyx_t_1 == (size_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_1 == (size_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2098; __pyx_clineno = __LINE__30776; goto __pyx_L1_error;}
30777 __pyx_v__length = __pyx_t_1;
30778
30779 /* "rados.pyx":2099
30780 * cdef:
30781 * size_t _length = length
30782 * uint64_t _offset = offset # <<<<<<<<<<<<<<
30783 *
30784 * with nogil:
30785 */
30786 __pyx_t_2 = __Pyx_PyInt_As_uint64_t(__pyx_v_offset); if (unlikely((__pyx_t_2 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_2 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2099; __pyx_clineno = __LINE__30786; goto __pyx_L1_error;}
30787 __pyx_v__offset = __pyx_t_2;
30788
30789 /* "rados.pyx":2101
30790 * uint64_t _offset = offset
30791 *
30792 * with nogil: # <<<<<<<<<<<<<<
30793 * rados_write_op_zero(self.write_op, _length, _offset)
30794 *
30795 */
30796 {
30797 #ifdef WITH_THREAD1
30798 PyThreadState *_save;
30799 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30800 #endif
30801 /*try:*/ {
30802
30803 /* "rados.pyx":2102
30804 *
30805 * with nogil:
30806 * rados_write_op_zero(self.write_op, _length, _offset) # <<<<<<<<<<<<<<
30807 *
30808 * @requires(('offset', int))
30809 */
30810 rados_write_op_zero(__pyx_v_self->write_op, __pyx_v__length, __pyx_v__offset);
30811 }
30812
30813 /* "rados.pyx":2101
30814 * uint64_t _offset = offset
30815 *
30816 * with nogil: # <<<<<<<<<<<<<<
30817 * rados_write_op_zero(self.write_op, _length, _offset)
30818 *
30819 */
30820 /*finally:*/ {
30821 /*normal exit:*/{
30822 #ifdef WITH_THREAD1
30823 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30824 #endif
30825 goto __pyx_L5;
30826 }
30827 __pyx_L5:;
30828 }
30829 }
30830
30831 /* "rados.pyx":2088
30832 *
30833 * @requires(('offset', int), ('length', int))
30834 * def zero(self, offset, length): # <<<<<<<<<<<<<<
30835 * """
30836 * Zero part of an object.
30837 */
30838
30839 /* function exit code */
30840 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30841 goto __pyx_L0;
30842 __pyx_L1_error:;
30843 __Pyx_AddTraceback("rados.WriteOp.zero", __pyx_clineno, __pyx_lineno, __pyx_filename);
30844 __pyx_r = NULL((void*)0);
30845 __pyx_L0:;
30846 __Pyx_XGIVEREF(__pyx_r);
30847 __Pyx_RefNannyFinishContext();
30848 return __pyx_r;
30849}
30850
30851/* "rados.pyx":2105
30852 *
30853 * @requires(('offset', int))
30854 * def truncate(self, offset): # <<<<<<<<<<<<<<
30855 * """
30856 * Truncate an object.
30857 */
30858
30859/* Python wrapper */
30860static PyObject *__pyx_pw_5rados_7WriteOp_21truncate(PyObject *__pyx_v_self, PyObject *__pyx_v_offset); /*proto*/
30861static char __pyx_doc_5rados_7WriteOp_20truncate[] = "WriteOp.truncate(self, offset)\n\n Truncate an object.\n :param offset: byte offset in the object to begin truncating at\n :type offset: int\n ";
30862static PyObject *__pyx_pw_5rados_7WriteOp_21truncate(PyObject *__pyx_v_self, PyObject *__pyx_v_offset) {
30863 PyObject *__pyx_r = 0;
30864 __Pyx_RefNannyDeclarations
30865 __Pyx_RefNannySetupContext("truncate (wrapper)", 0);
30866 __pyx_r = __pyx_pf_5rados_7WriteOp_20truncate(((struct __pyx_obj_5rados_WriteOp *)__pyx_v_self), ((PyObject *)__pyx_v_offset));
30867
30868 /* function exit code */
30869 __Pyx_RefNannyFinishContext();
30870 return __pyx_r;
30871}
30872
30873static PyObject *__pyx_pf_5rados_7WriteOp_20truncate(struct __pyx_obj_5rados_WriteOp *__pyx_v_self, PyObject *__pyx_v_offset) {
30874 uint64_t __pyx_v__offset;
30875 PyObject *__pyx_r = NULL((void*)0);
30876 __Pyx_RefNannyDeclarations
30877 uint64_t __pyx_t_1;
30878 int __pyx_lineno = 0;
30879 const char *__pyx_filename = NULL((void*)0);
30880 int __pyx_clineno = 0;
30881 __Pyx_RefNannySetupContext("truncate", 0);
30882
30883 /* "rados.pyx":2113
30884 *
30885 * cdef:
30886 * uint64_t _offset = offset # <<<<<<<<<<<<<<
30887 *
30888 * with nogil:
30889 */
30890 __pyx_t_1 = __Pyx_PyInt_As_uint64_t(__pyx_v_offset); if (unlikely((__pyx_t_1 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_1 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2113; __pyx_clineno = __LINE__30890; goto __pyx_L1_error;}
30891 __pyx_v__offset = __pyx_t_1;
30892
30893 /* "rados.pyx":2115
30894 * uint64_t _offset = offset
30895 *
30896 * with nogil: # <<<<<<<<<<<<<<
30897 * rados_write_op_truncate(self.write_op, _offset)
30898 *
30899 */
30900 {
30901 #ifdef WITH_THREAD1
30902 PyThreadState *_save;
30903 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30904 #endif
30905 /*try:*/ {
30906
30907 /* "rados.pyx":2116
30908 *
30909 * with nogil:
30910 * rados_write_op_truncate(self.write_op, _offset) # <<<<<<<<<<<<<<
30911 *
30912 *
30913 */
30914 rados_write_op_truncate(__pyx_v_self->write_op, __pyx_v__offset);
30915 }
30916
30917 /* "rados.pyx":2115
30918 * uint64_t _offset = offset
30919 *
30920 * with nogil: # <<<<<<<<<<<<<<
30921 * rados_write_op_truncate(self.write_op, _offset)
30922 *
30923 */
30924 /*finally:*/ {
30925 /*normal exit:*/{
30926 #ifdef WITH_THREAD1
30927 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
30928 #endif
30929 goto __pyx_L5;
30930 }
30931 __pyx_L5:;
30932 }
30933 }
30934
30935 /* "rados.pyx":2105
30936 *
30937 * @requires(('offset', int))
30938 * def truncate(self, offset): # <<<<<<<<<<<<<<
30939 * """
30940 * Truncate an object.
30941 */
30942
30943 /* function exit code */
30944 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
30945 goto __pyx_L0;
30946 __pyx_L1_error:;
30947 __Pyx_AddTraceback("rados.WriteOp.truncate", __pyx_clineno, __pyx_lineno, __pyx_filename);
30948 __pyx_r = NULL((void*)0);
30949 __pyx_L0:;
30950 __Pyx_XGIVEREF(__pyx_r);
30951 __Pyx_RefNannyFinishContext();
30952 return __pyx_r;
30953}
30954
30955/* "rados.pyx":2126
30956 * cdef rados_read_op_t read_op
30957 *
30958 * def create(self): # <<<<<<<<<<<<<<
30959 * with nogil:
30960 * self.read_op = rados_create_read_op()
30961 */
30962
30963/* Python wrapper */
30964static PyObject *__pyx_pw_5rados_6ReadOp_1create(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
30965static char __pyx_doc_5rados_6ReadOp_create[] = "ReadOp.create(self)";
30966static PyObject *__pyx_pw_5rados_6ReadOp_1create(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
30967 PyObject *__pyx_r = 0;
30968 __Pyx_RefNannyDeclarations
30969 __Pyx_RefNannySetupContext("create (wrapper)", 0);
30970 __pyx_r = __pyx_pf_5rados_6ReadOp_create(((struct __pyx_obj_5rados_ReadOp *)__pyx_v_self));
30971
30972 /* function exit code */
30973 __Pyx_RefNannyFinishContext();
30974 return __pyx_r;
30975}
30976
30977static PyObject *__pyx_pf_5rados_6ReadOp_create(struct __pyx_obj_5rados_ReadOp *__pyx_v_self) {
30978 PyObject *__pyx_r = NULL((void*)0);
30979 __Pyx_RefNannyDeclarations
30980 __Pyx_RefNannySetupContext("create", 0);
30981
30982 /* "rados.pyx":2127
30983 *
30984 * def create(self):
30985 * with nogil: # <<<<<<<<<<<<<<
30986 * self.read_op = rados_create_read_op()
30987 * return self
30988 */
30989 {
30990 #ifdef WITH_THREAD1
30991 PyThreadState *_save;
30992 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
30993 #endif
30994 /*try:*/ {
30995
30996 /* "rados.pyx":2128
30997 * def create(self):
30998 * with nogil:
30999 * self.read_op = rados_create_read_op() # <<<<<<<<<<<<<<
31000 * return self
31001 *
31002 */
31003 __pyx_v_self->read_op = rados_create_read_op();
31004 }
31005
31006 /* "rados.pyx":2127
31007 *
31008 * def create(self):
31009 * with nogil: # <<<<<<<<<<<<<<
31010 * self.read_op = rados_create_read_op()
31011 * return self
31012 */
31013 /*finally:*/ {
31014 /*normal exit:*/{
31015 #ifdef WITH_THREAD1
31016 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
31017 #endif
31018 goto __pyx_L5;
31019 }
31020 __pyx_L5:;
31021 }
31022 }
31023
31024 /* "rados.pyx":2129
31025 * with nogil:
31026 * self.read_op = rados_create_read_op()
31027 * return self # <<<<<<<<<<<<<<
31028 *
31029 * def release(self):
31030 */
31031 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
31032 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
31033 __pyx_r = ((PyObject *)__pyx_v_self);
31034 goto __pyx_L0;
31035
31036 /* "rados.pyx":2126
31037 * cdef rados_read_op_t read_op
31038 *
31039 * def create(self): # <<<<<<<<<<<<<<
31040 * with nogil:
31041 * self.read_op = rados_create_read_op()
31042 */
31043
31044 /* function exit code */
31045 __pyx_L0:;
31046 __Pyx_XGIVEREF(__pyx_r);
31047 __Pyx_RefNannyFinishContext();
31048 return __pyx_r;
31049}
31050
31051/* "rados.pyx":2131
31052 * return self
31053 *
31054 * def release(self): # <<<<<<<<<<<<<<
31055 * with nogil:
31056 * rados_release_read_op(self.read_op)
31057 */
31058
31059/* Python wrapper */
31060static PyObject *__pyx_pw_5rados_6ReadOp_3release(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
31061static char __pyx_doc_5rados_6ReadOp_2release[] = "ReadOp.release(self)";
31062static PyObject *__pyx_pw_5rados_6ReadOp_3release(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
31063 PyObject *__pyx_r = 0;
31064 __Pyx_RefNannyDeclarations
31065 __Pyx_RefNannySetupContext("release (wrapper)", 0);
31066 __pyx_r = __pyx_pf_5rados_6ReadOp_2release(((struct __pyx_obj_5rados_ReadOp *)__pyx_v_self));
31067
31068 /* function exit code */
31069 __Pyx_RefNannyFinishContext();
31070 return __pyx_r;
31071}
31072
31073static PyObject *__pyx_pf_5rados_6ReadOp_2release(struct __pyx_obj_5rados_ReadOp *__pyx_v_self) {
31074 PyObject *__pyx_r = NULL((void*)0);
31075 __Pyx_RefNannyDeclarations
31076 __Pyx_RefNannySetupContext("release", 0);
31077
31078 /* "rados.pyx":2132
31079 *
31080 * def release(self):
31081 * with nogil: # <<<<<<<<<<<<<<
31082 * rados_release_read_op(self.read_op)
31083 *
31084 */
31085 {
31086 #ifdef WITH_THREAD1
31087 PyThreadState *_save;
31088 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
31089 #endif
31090 /*try:*/ {
31091
31092 /* "rados.pyx":2133
31093 * def release(self):
31094 * with nogil:
31095 * rados_release_read_op(self.read_op) # <<<<<<<<<<<<<<
31096 *
31097 * @requires(('flags', int))
31098 */
31099 rados_release_read_op(__pyx_v_self->read_op);
31100 }
31101
31102 /* "rados.pyx":2132
31103 *
31104 * def release(self):
31105 * with nogil: # <<<<<<<<<<<<<<
31106 * rados_release_read_op(self.read_op)
31107 *
31108 */
31109 /*finally:*/ {
31110 /*normal exit:*/{
31111 #ifdef WITH_THREAD1
31112 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
31113 #endif
31114 goto __pyx_L5;
31115 }
31116 __pyx_L5:;
31117 }
31118 }
31119
31120 /* "rados.pyx":2131
31121 * return self
31122 *
31123 * def release(self): # <<<<<<<<<<<<<<
31124 * with nogil:
31125 * rados_release_read_op(self.read_op)
31126 */
31127
31128 /* function exit code */
31129 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
31130 __Pyx_XGIVEREF(__pyx_r);
31131 __Pyx_RefNannyFinishContext();
31132 return __pyx_r;
31133}
31134
31135/* "rados.pyx":2136
31136 *
31137 * @requires(('flags', int))
31138 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
31139 * """
31140 * Set flags for the last operation added to this read_op.
31141 */
31142
31143/* Python wrapper */
31144static PyObject *__pyx_pw_5rados_6ReadOp_5set_flags(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
31145static char __pyx_doc_5rados_6ReadOp_4set_flags[] = "ReadOp.set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG)\n\n Set flags for the last operation added to this read_op.\n :para flags: flags to apply to the last operation\n :type flags: int\n ";
31146static PyObject *__pyx_pw_5rados_6ReadOp_5set_flags(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
31147 PyObject *__pyx_v_flags = 0;
31148 int __pyx_lineno = 0;
31149 const char *__pyx_filename = NULL((void*)0);
31150 int __pyx_clineno = 0;
31151 PyObject *__pyx_r = 0;
31152 __Pyx_RefNannyDeclarations
31153 __Pyx_RefNannySetupContext("set_flags (wrapper)", 0);
31154 {
31155 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flags,0};
31156 PyObject* values[1] = {0};
31157 values[0] = __pyx_k__49;
31158 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
31159 Py_ssize_t kw_args;
31160 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
31161 switch (pos_args) {
31162 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
31163 case 0: break;
31164 default: goto __pyx_L5_argtuple_error;
31165 }
31166 kw_args = PyDict_Size(__pyx_kwds);
31167 switch (pos_args) {
31168 case 0:
31169 if (kw_args > 0) {
31170 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags);
31171 if (value) { values[0] = value; kw_args--; }
31172 }
31173 }
31174 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
31175 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_flags") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "set_flags") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2136; __pyx_clineno = __LINE__31175; goto __pyx_L3_error;}
31176 }
31177 } else {
31178 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
31179 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
31180 case 0: break;
31181 default: goto __pyx_L5_argtuple_error;
31182 }
31183 }
31184 __pyx_v_flags = values[0];
31185 }
31186 goto __pyx_L4_argument_unpacking_done;
31187 __pyx_L5_argtuple_error:;
31188 __Pyx_RaiseArgtupleInvalid("set_flags", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2136; __pyx_clineno = __LINE__31188; goto __pyx_L3_error;}
31189 __pyx_L3_error:;
31190 __Pyx_AddTraceback("rados.ReadOp.set_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
31191 __Pyx_RefNannyFinishContext();
31192 return NULL((void*)0);
31193 __pyx_L4_argument_unpacking_done:;
31194 __pyx_r = __pyx_pf_5rados_6ReadOp_4set_flags(((struct __pyx_obj_5rados_ReadOp *)__pyx_v_self), __pyx_v_flags);
31195
31196 /* function exit code */
31197 __Pyx_RefNannyFinishContext();
31198 return __pyx_r;
31199}
31200
31201static PyObject *__pyx_pf_5rados_6ReadOp_4set_flags(struct __pyx_obj_5rados_ReadOp *__pyx_v_self, PyObject *__pyx_v_flags) {
31202 int __pyx_v__flags;
31203 PyObject *__pyx_r = NULL((void*)0);
31204 __Pyx_RefNannyDeclarations
31205 int __pyx_t_1;
31206 int __pyx_lineno = 0;
31207 const char *__pyx_filename = NULL((void*)0);
31208 int __pyx_clineno = 0;
31209 __Pyx_RefNannySetupContext("set_flags", 0);
31210
31211 /* "rados.pyx":2144
31212 *
31213 * cdef:
31214 * int _flags = flags # <<<<<<<<<<<<<<
31215 *
31216 * with nogil:
31217 */
31218 __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_1 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2144; __pyx_clineno = __LINE__31218; goto __pyx_L1_error;}
31219 __pyx_v__flags = __pyx_t_1;
31220
31221 /* "rados.pyx":2146
31222 * int _flags = flags
31223 *
31224 * with nogil: # <<<<<<<<<<<<<<
31225 * rados_read_op_set_flags(self.read_op, _flags)
31226 *
31227 */
31228 {
31229 #ifdef WITH_THREAD1
31230 PyThreadState *_save;
31231 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
31232 #endif
31233 /*try:*/ {
31234
31235 /* "rados.pyx":2147
31236 *
31237 * with nogil:
31238 * rados_read_op_set_flags(self.read_op, _flags) # <<<<<<<<<<<<<<
31239 *
31240 *
31241 */
31242 rados_read_op_set_flags(__pyx_v_self->read_op, __pyx_v__flags);
31243 }
31244
31245 /* "rados.pyx":2146
31246 * int _flags = flags
31247 *
31248 * with nogil: # <<<<<<<<<<<<<<
31249 * rados_read_op_set_flags(self.read_op, _flags)
31250 *
31251 */
31252 /*finally:*/ {
31253 /*normal exit:*/{
31254 #ifdef WITH_THREAD1
31255 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
31256 #endif
31257 goto __pyx_L5;
31258 }
31259 __pyx_L5:;
31260 }
31261 }
31262
31263 /* "rados.pyx":2136
31264 *
31265 * @requires(('flags', int))
31266 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
31267 * """
31268 * Set flags for the last operation added to this read_op.
31269 */
31270
31271 /* function exit code */
31272 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
31273 goto __pyx_L0;
31274 __pyx_L1_error:;
31275 __Pyx_AddTraceback("rados.ReadOp.set_flags", __pyx_clineno, __pyx_lineno, __pyx_filename);
31276 __pyx_r = NULL((void*)0);
31277 __pyx_L0:;
31278 __Pyx_XGIVEREF(__pyx_r);
31279 __Pyx_RefNannyFinishContext();
31280 return __pyx_r;
31281}
31282
31283/* "rados.pyx":2154
31284 *
31285 *
31286 * cdef int __aio_safe_cb(rados_completion_t completion, void *args) with gil: # <<<<<<<<<<<<<<
31287 * """
31288 * Callback to onsafe() for asynchronous operations
31289 */
31290
31291static int __pyx_f_5rados___aio_safe_cb(CYTHON_UNUSED__attribute__ ((__unused__)) rados_completion_t __pyx_v_completion, void *__pyx_v_args) {
31292 PyObject *__pyx_v_cb = 0;
31293 int __pyx_r;
31294 __Pyx_RefNannyDeclarations
31295 PyObject *__pyx_t_1 = NULL((void*)0);
31296 PyObject *__pyx_t_2 = NULL((void*)0);
31297 PyObject *__pyx_t_3 = NULL((void*)0);
31298 int __pyx_lineno = 0;
31299 const char *__pyx_filename = NULL((void*)0);
31300 int __pyx_clineno = 0;
31301 #ifdef WITH_THREAD1
31302 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
31303 #endif
31304 __Pyx_RefNannySetupContext("__aio_safe_cb", 0);
31305
31306 /* "rados.pyx":2158
31307 * Callback to onsafe() for asynchronous operations
31308 * """
31309 * cdef object cb = <object>args # <<<<<<<<<<<<<<
31310 * cb._safe()
31311 * return 0
31312 */
31313 __pyx_t_1 = ((PyObject *)__pyx_v_args);
31314 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
31315 __pyx_v_cb = __pyx_t_1;
31316 __pyx_t_1 = 0;
31317
31318 /* "rados.pyx":2159
31319 * """
31320 * cdef object cb = <object>args
31321 * cb._safe() # <<<<<<<<<<<<<<
31322 * return 0
31323 *
31324 */
31325 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cb, __pyx_n_s_safe); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2159; __pyx_clineno = __LINE__31325; goto __pyx_L1_error;}
31326 __Pyx_GOTREF(__pyx_t_2);
31327 __pyx_t_3 = NULL((void*)0);
31328 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
31329 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
31330 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
31331 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
31332 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
31333 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
31334 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
31335 }
31336 }
31337 if (__pyx_t_3) {
31338 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2159; __pyx_clineno = __LINE__31338; goto __pyx_L1_error;}
31339 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
31340 } else {
31341 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2159; __pyx_clineno = __LINE__31341; goto __pyx_L1_error;}
31342 }
31343 __Pyx_GOTREF(__pyx_t_1);
31344 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
31345 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
31346
31347 /* "rados.pyx":2160
31348 * cdef object cb = <object>args
31349 * cb._safe()
31350 * return 0 # <<<<<<<<<<<<<<
31351 *
31352 *
31353 */
31354 __pyx_r = 0;
31355 goto __pyx_L0;
31356
31357 /* "rados.pyx":2154
31358 *
31359 *
31360 * cdef int __aio_safe_cb(rados_completion_t completion, void *args) with gil: # <<<<<<<<<<<<<<
31361 * """
31362 * Callback to onsafe() for asynchronous operations
31363 */
31364
31365 /* function exit code */
31366 __pyx_L1_error:;
31367 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
31368 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
31369 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
31370 __Pyx_WriteUnraisable("rados.__aio_safe_cb", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
31371 __pyx_r = 0;
31372 __pyx_L0:;
31373 __Pyx_XDECREF(__pyx_v_cb)do { if ((__pyx_v_cb) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cb))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_v_cb)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cb)))); } while (0); } while (0)
;
31374 __Pyx_RefNannyFinishContext();
31375 #ifdef WITH_THREAD1
31376 PyGILState_Release(__pyx_gilstate_save);
31377 #endif
31378 return __pyx_r;
31379}
31380
31381/* "rados.pyx":2163
31382 *
31383 *
31384 * cdef int __aio_complete_cb(rados_completion_t completion, void *args) with gil: # <<<<<<<<<<<<<<
31385 * """
31386 * Callback to oncomplete() for asynchronous operations
31387 */
31388
31389static int __pyx_f_5rados___aio_complete_cb(CYTHON_UNUSED__attribute__ ((__unused__)) rados_completion_t __pyx_v_completion, void *__pyx_v_args) {
31390 PyObject *__pyx_v_cb = 0;
31391 int __pyx_r;
31392 __Pyx_RefNannyDeclarations
31393 PyObject *__pyx_t_1 = NULL((void*)0);
31394 PyObject *__pyx_t_2 = NULL((void*)0);
31395 PyObject *__pyx_t_3 = NULL((void*)0);
31396 int __pyx_lineno = 0;
31397 const char *__pyx_filename = NULL((void*)0);
31398 int __pyx_clineno = 0;
31399 #ifdef WITH_THREAD1
31400 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
31401 #endif
31402 __Pyx_RefNannySetupContext("__aio_complete_cb", 0);
31403
31404 /* "rados.pyx":2167
31405 * Callback to oncomplete() for asynchronous operations
31406 * """
31407 * cdef object cb = <object>args # <<<<<<<<<<<<<<
31408 * cb._complete()
31409 * return 0
31410 */
31411 __pyx_t_1 = ((PyObject *)__pyx_v_args);
31412 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
31413 __pyx_v_cb = __pyx_t_1;
31414 __pyx_t_1 = 0;
31415
31416 /* "rados.pyx":2168
31417 * """
31418 * cdef object cb = <object>args
31419 * cb._complete() # <<<<<<<<<<<<<<
31420 * return 0
31421 *
31422 */
31423 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cb, __pyx_n_s_complete); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__31423; goto __pyx_L1_error;}
31424 __Pyx_GOTREF(__pyx_t_2);
31425 __pyx_t_3 = NULL((void*)0);
31426 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
31427 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
31428 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
31429 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
31430 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
31431 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
31432 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
31433 }
31434 }
31435 if (__pyx_t_3) {
31436 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__31436; goto __pyx_L1_error;}
31437 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
31438 } else {
31439 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__31439; goto __pyx_L1_error;}
31440 }
31441 __Pyx_GOTREF(__pyx_t_1);
31442 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
31443 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
31444
31445 /* "rados.pyx":2169
31446 * cdef object cb = <object>args
31447 * cb._complete()
31448 * return 0 # <<<<<<<<<<<<<<
31449 *
31450 *
31451 */
31452 __pyx_r = 0;
31453 goto __pyx_L0;
31454
31455 /* "rados.pyx":2163
31456 *
31457 *
31458 * cdef int __aio_complete_cb(rados_completion_t completion, void *args) with gil: # <<<<<<<<<<<<<<
31459 * """
31460 * Callback to oncomplete() for asynchronous operations
31461 */
31462
31463 /* function exit code */
31464 __pyx_L1_error:;
31465 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
31466 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
31467 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
31468 __Pyx_WriteUnraisable("rados.__aio_complete_cb", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
31469 __pyx_r = 0;
31470 __pyx_L0:;
31471 __Pyx_XDECREF(__pyx_v_cb)do { if ((__pyx_v_cb) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cb))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_v_cb)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cb)))); } while (0); } while (0)
;
31472 __Pyx_RefNannyFinishContext();
31473 #ifdef WITH_THREAD1
31474 PyGILState_Release(__pyx_gilstate_save);
31475 #endif
31476 return __pyx_r;
31477}
31478
31479/* "rados.pyx":2176
31480 * # NOTE(sileht): attributes declared in .pyd
31481 *
31482 * def __init__(self, name): # <<<<<<<<<<<<<<
31483 * self.name = name
31484 * self.state = "open"
31485 */
31486
31487/* Python wrapper */
31488static int __pyx_pw_5rados_5Ioctx_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
31489static int __pyx_pw_5rados_5Ioctx_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
31490 PyObject *__pyx_v_name = 0;
31491 int __pyx_lineno = 0;
31492 const char *__pyx_filename = NULL((void*)0);
31493 int __pyx_clineno = 0;
31494 int __pyx_r;
31495 __Pyx_RefNannyDeclarations
31496 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
31497 {
31498 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name_2,0};
31499 PyObject* values[1] = {0};
31500 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
31501 Py_ssize_t kw_args;
31502 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
31503 switch (pos_args) {
31504 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
31505 case 0: break;
31506 default: goto __pyx_L5_argtuple_error;
31507 }
31508 kw_args = PyDict_Size(__pyx_kwds);
31509 switch (pos_args) {
31510 case 0:
31511 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
31512 else goto __pyx_L5_argtuple_error;
31513 }
31514 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
31515 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2176; __pyx_clineno = __LINE__31515; goto __pyx_L3_error;}
31516 }
31517 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 1) {
31518 goto __pyx_L5_argtuple_error;
31519 } else {
31520 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
31521 }
31522 __pyx_v_name = values[0];
31523 }
31524 goto __pyx_L4_argument_unpacking_done;
31525 __pyx_L5_argtuple_error:;
31526 __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2176; __pyx_clineno = __LINE__31526; goto __pyx_L3_error;}
31527 __pyx_L3_error:;
31528 __Pyx_AddTraceback("rados.Ioctx.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31529 __Pyx_RefNannyFinishContext();
31530 return -1;
31531 __pyx_L4_argument_unpacking_done:;
31532 __pyx_r = __pyx_pf_5rados_5Ioctx___init__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_name);
31533
31534 /* function exit code */
31535 __Pyx_RefNannyFinishContext();
31536 return __pyx_r;
31537}
31538
31539static int __pyx_pf_5rados_5Ioctx___init__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_name) {
31540 int __pyx_r;
31541 __Pyx_RefNannyDeclarations
31542 PyObject *__pyx_t_1 = NULL((void*)0);
31543 PyObject *__pyx_t_2 = NULL((void*)0);
31544 PyObject *__pyx_t_3 = NULL((void*)0);
31545 int __pyx_lineno = 0;
31546 const char *__pyx_filename = NULL((void*)0);
31547 int __pyx_clineno = 0;
31548 __Pyx_RefNannySetupContext("__init__", 0);
31549
31550 /* "rados.pyx":2177
31551 *
31552 * def __init__(self, name):
31553 * self.name = name # <<<<<<<<<<<<<<
31554 * self.state = "open"
31555 *
31556 */
31557 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
31558 __Pyx_GIVEREF(__pyx_v_name);
31559 __Pyx_GOTREF(__pyx_v_self->name);
31560 __Pyx_DECREF(__pyx_v_self->name)do { if ( --((PyObject*)(__pyx_v_self->name))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
name)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->name)))); } while (0)
;
31561 __pyx_v_self->name = __pyx_v_name;
31562
31563 /* "rados.pyx":2178
31564 * def __init__(self, name):
31565 * self.name = name
31566 * self.state = "open" # <<<<<<<<<<<<<<
31567 *
31568 * self.locator_key = ""
31569 */
31570 __Pyx_INCREF(__pyx_n_s_open)( ((PyObject*)(__pyx_n_s_open))->ob_refcnt++);
31571 __Pyx_GIVEREF(__pyx_n_s_open);
31572 __Pyx_GOTREF(__pyx_v_self->state);
31573 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
31574 __pyx_v_self->state = __pyx_n_s_open;
31575
31576 /* "rados.pyx":2180
31577 * self.state = "open"
31578 *
31579 * self.locator_key = "" # <<<<<<<<<<<<<<
31580 * self.nspace = ""
31581 * self.lock = threading.Lock()
31582 */
31583 __Pyx_INCREF(__pyx_kp_s__10)( ((PyObject*)(__pyx_kp_s__10))->ob_refcnt++);
31584 __Pyx_GIVEREF(__pyx_kp_s__10);
31585 __Pyx_GOTREF(__pyx_v_self->locator_key);
31586 __Pyx_DECREF(__pyx_v_self->locator_key)do { if ( --((PyObject*)(__pyx_v_self->locator_key))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
locator_key)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->locator_key)))); } while (0)
;
31587 __pyx_v_self->locator_key = __pyx_kp_s__10;
31588
31589 /* "rados.pyx":2181
31590 *
31591 * self.locator_key = ""
31592 * self.nspace = "" # <<<<<<<<<<<<<<
31593 * self.lock = threading.Lock()
31594 * self.safe_completions = []
31595 */
31596 __Pyx_INCREF(__pyx_kp_s__10)( ((PyObject*)(__pyx_kp_s__10))->ob_refcnt++);
31597 __Pyx_GIVEREF(__pyx_kp_s__10);
31598 __Pyx_GOTREF(__pyx_v_self->nspace);
31599 __Pyx_DECREF(__pyx_v_self->nspace)do { if ( --((PyObject*)(__pyx_v_self->nspace))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
nspace)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->nspace)))); } while (0)
;
31600 __pyx_v_self->nspace = __pyx_kp_s__10;
31601
31602 /* "rados.pyx":2182
31603 * self.locator_key = ""
31604 * self.nspace = ""
31605 * self.lock = threading.Lock() # <<<<<<<<<<<<<<
31606 * self.safe_completions = []
31607 * self.complete_completions = []
31608 */
31609 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_threading); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__31609; goto __pyx_L1_error;}
31610 __Pyx_GOTREF(__pyx_t_2);
31611 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Lock); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__31611; goto __pyx_L1_error;}
31612 __Pyx_GOTREF(__pyx_t_3);
31613 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
31614 __pyx_t_2 = NULL((void*)0);
31615 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
31616 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
31617 if (likely(__pyx_t_2)__builtin_expect(!!(__pyx_t_2), 1)) {
31618 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
31619 __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++);
31620 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
31621 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
31622 }
31623 }
31624 if (__pyx_t_2) {
31625 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__31625; goto __pyx_L1_error;}
31626 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
31627 } else {
31628 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2182; __pyx_clineno = __LINE__31628; goto __pyx_L1_error;}
31629 }
31630 __Pyx_GOTREF(__pyx_t_1);
31631 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
31632 __Pyx_GIVEREF(__pyx_t_1);
31633 __Pyx_GOTREF(__pyx_v_self->lock);
31634 __Pyx_DECREF(__pyx_v_self->lock)do { if ( --((PyObject*)(__pyx_v_self->lock))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
lock)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->lock)))); } while (0)
;
31635 __pyx_v_self->lock = __pyx_t_1;
31636 __pyx_t_1 = 0;
31637
31638 /* "rados.pyx":2183
31639 * self.nspace = ""
31640 * self.lock = threading.Lock()
31641 * self.safe_completions = [] # <<<<<<<<<<<<<<
31642 * self.complete_completions = []
31643 *
31644 */
31645 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2183; __pyx_clineno = __LINE__31645; goto __pyx_L1_error;}
31646 __Pyx_GOTREF(__pyx_t_1);
31647 __Pyx_GIVEREF(__pyx_t_1);
31648 __Pyx_GOTREF(__pyx_v_self->safe_completions);
31649 __Pyx_DECREF(__pyx_v_self->safe_completions)do { if ( --((PyObject*)(__pyx_v_self->safe_completions))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->safe_completions)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->safe_completions)))); } while
(0)
;
31650 __pyx_v_self->safe_completions = __pyx_t_1;
31651 __pyx_t_1 = 0;
31652
31653 /* "rados.pyx":2184
31654 * self.lock = threading.Lock()
31655 * self.safe_completions = []
31656 * self.complete_completions = [] # <<<<<<<<<<<<<<
31657 *
31658 * def __enter__(self):
31659 */
31660 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2184; __pyx_clineno = __LINE__31660; goto __pyx_L1_error;}
31661 __Pyx_GOTREF(__pyx_t_1);
31662 __Pyx_GIVEREF(__pyx_t_1);
31663 __Pyx_GOTREF(__pyx_v_self->complete_completions);
31664 __Pyx_DECREF(__pyx_v_self->complete_completions)do { if ( --((PyObject*)(__pyx_v_self->complete_completions
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
__pyx_v_self->complete_completions)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_self->complete_completions
)))); } while (0)
;
31665 __pyx_v_self->complete_completions = __pyx_t_1;
31666 __pyx_t_1 = 0;
31667
31668 /* "rados.pyx":2176
31669 * # NOTE(sileht): attributes declared in .pyd
31670 *
31671 * def __init__(self, name): # <<<<<<<<<<<<<<
31672 * self.name = name
31673 * self.state = "open"
31674 */
31675
31676 /* function exit code */
31677 __pyx_r = 0;
31678 goto __pyx_L0;
31679 __pyx_L1_error:;
31680 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
31681 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
31682 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
31683 __Pyx_AddTraceback("rados.Ioctx.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31684 __pyx_r = -1;
31685 __pyx_L0:;
31686 __Pyx_RefNannyFinishContext();
31687 return __pyx_r;
31688}
31689
31690/* "rados.pyx":2186
31691 * self.complete_completions = []
31692 *
31693 * def __enter__(self): # <<<<<<<<<<<<<<
31694 * return self
31695 *
31696 */
31697
31698/* Python wrapper */
31699static PyObject *__pyx_pw_5rados_5Ioctx_3__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
31700static char __pyx_doc_5rados_5Ioctx_2__enter__[] = "Ioctx.__enter__(self)";
31701static PyObject *__pyx_pw_5rados_5Ioctx_3__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
31702 PyObject *__pyx_r = 0;
31703 __Pyx_RefNannyDeclarations
31704 __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0);
31705 __pyx_r = __pyx_pf_5rados_5Ioctx_2__enter__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
31706
31707 /* function exit code */
31708 __Pyx_RefNannyFinishContext();
31709 return __pyx_r;
31710}
31711
31712static PyObject *__pyx_pf_5rados_5Ioctx_2__enter__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
31713 PyObject *__pyx_r = NULL((void*)0);
31714 __Pyx_RefNannyDeclarations
31715 __Pyx_RefNannySetupContext("__enter__", 0);
31716
31717 /* "rados.pyx":2187
31718 *
31719 * def __enter__(self):
31720 * return self # <<<<<<<<<<<<<<
31721 *
31722 * def __exit__(self, type_, value, traceback):
31723 */
31724 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
31725 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
31726 __pyx_r = ((PyObject *)__pyx_v_self);
31727 goto __pyx_L0;
31728
31729 /* "rados.pyx":2186
31730 * self.complete_completions = []
31731 *
31732 * def __enter__(self): # <<<<<<<<<<<<<<
31733 * return self
31734 *
31735 */
31736
31737 /* function exit code */
31738 __pyx_L0:;
31739 __Pyx_XGIVEREF(__pyx_r);
31740 __Pyx_RefNannyFinishContext();
31741 return __pyx_r;
31742}
31743
31744/* "rados.pyx":2189
31745 * return self
31746 *
31747 * def __exit__(self, type_, value, traceback): # <<<<<<<<<<<<<<
31748 * self.close()
31749 * return False
31750 */
31751
31752/* Python wrapper */
31753static PyObject *__pyx_pw_5rados_5Ioctx_5__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
31754static char __pyx_doc_5rados_5Ioctx_4__exit__[] = "Ioctx.__exit__(self, type_, value, traceback)";
31755static PyObject *__pyx_pw_5rados_5Ioctx_5__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
31756 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type_ = 0;
31757 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_value = 0;
31758 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback = 0;
31759 int __pyx_lineno = 0;
31760 const char *__pyx_filename = NULL((void*)0);
31761 int __pyx_clineno = 0;
31762 PyObject *__pyx_r = 0;
31763 __Pyx_RefNannyDeclarations
31764 __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
31765 {
31766 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_type,&__pyx_n_s_value,&__pyx_n_s_traceback,0};
31767 PyObject* values[3] = {0,0,0};
31768 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
31769 Py_ssize_t kw_args;
31770 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
31771 switch (pos_args) {
31772 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
31773 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
31774 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
31775 case 0: break;
31776 default: goto __pyx_L5_argtuple_error;
31777 }
31778 kw_args = PyDict_Size(__pyx_kwds);
31779 switch (pos_args) {
31780 case 0:
31781 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type
)) != 0), 1)
) kw_args--;
31782 else goto __pyx_L5_argtuple_error;
31783 case 1:
31784 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value
)) != 0), 1)
) kw_args--;
31785 else {
31786 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2189; __pyx_clineno = __LINE__31786; goto __pyx_L3_error;}
31787 }
31788 case 2:
31789 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_traceback)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_traceback
)) != 0), 1)
) kw_args--;
31790 else {
31791 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2189; __pyx_clineno = __LINE__31791; goto __pyx_L3_error;}
31792 }
31793 }
31794 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
31795 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__exit__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2189; __pyx_clineno = __LINE__31795; goto __pyx_L3_error;}
31796 }
31797 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
31798 goto __pyx_L5_argtuple_error;
31799 } else {
31800 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
31801 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
31802 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
31803 }
31804 __pyx_v_type_ = values[0];
31805 __pyx_v_value = values[1];
31806 __pyx_v_traceback = values[2];
31807 }
31808 goto __pyx_L4_argument_unpacking_done;
31809 __pyx_L5_argtuple_error:;
31810 __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2189; __pyx_clineno = __LINE__31810; goto __pyx_L3_error;}
31811 __pyx_L3_error:;
31812 __Pyx_AddTraceback("rados.Ioctx.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31813 __Pyx_RefNannyFinishContext();
31814 return NULL((void*)0);
31815 __pyx_L4_argument_unpacking_done:;
31816 __pyx_r = __pyx_pf_5rados_5Ioctx_4__exit__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_type_, __pyx_v_value, __pyx_v_traceback);
31817
31818 /* function exit code */
31819 __Pyx_RefNannyFinishContext();
31820 return __pyx_r;
31821}
31822
31823static PyObject *__pyx_pf_5rados_5Ioctx_4__exit__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_type_, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_value, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_v_traceback) {
31824 PyObject *__pyx_r = NULL((void*)0);
31825 __Pyx_RefNannyDeclarations
31826 PyObject *__pyx_t_1 = NULL((void*)0);
31827 PyObject *__pyx_t_2 = NULL((void*)0);
31828 PyObject *__pyx_t_3 = NULL((void*)0);
31829 int __pyx_lineno = 0;
31830 const char *__pyx_filename = NULL((void*)0);
31831 int __pyx_clineno = 0;
31832 __Pyx_RefNannySetupContext("__exit__", 0);
31833
31834 /* "rados.pyx":2190
31835 *
31836 * def __exit__(self, type_, value, traceback):
31837 * self.close() # <<<<<<<<<<<<<<
31838 * return False
31839 *
31840 */
31841 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_close); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2190; __pyx_clineno = __LINE__31841; goto __pyx_L1_error;}
31842 __Pyx_GOTREF(__pyx_t_2);
31843 __pyx_t_3 = NULL((void*)0);
31844 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
31845 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
31846 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
31847 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
31848 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
31849 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
31850 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
31851 }
31852 }
31853 if (__pyx_t_3) {
31854 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2190; __pyx_clineno = __LINE__31854; goto __pyx_L1_error;}
31855 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
31856 } else {
31857 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2190; __pyx_clineno = __LINE__31857; goto __pyx_L1_error;}
31858 }
31859 __Pyx_GOTREF(__pyx_t_1);
31860 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
31861 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
31862
31863 /* "rados.pyx":2191
31864 * def __exit__(self, type_, value, traceback):
31865 * self.close()
31866 * return False # <<<<<<<<<<<<<<
31867 *
31868 * def __dealloc__(self):
31869 */
31870 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
31871 __Pyx_INCREF(Py_False)( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->ob_refcnt
++)
;
31872 __pyx_r = Py_False((PyObject *) &_Py_ZeroStruct);
31873 goto __pyx_L0;
31874
31875 /* "rados.pyx":2189
31876 * return self
31877 *
31878 * def __exit__(self, type_, value, traceback): # <<<<<<<<<<<<<<
31879 * self.close()
31880 * return False
31881 */
31882
31883 /* function exit code */
31884 __pyx_L1_error:;
31885 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
31886 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
31887 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
31888 __Pyx_AddTraceback("rados.Ioctx.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
31889 __pyx_r = NULL((void*)0);
31890 __pyx_L0:;
31891 __Pyx_XGIVEREF(__pyx_r);
31892 __Pyx_RefNannyFinishContext();
31893 return __pyx_r;
31894}
31895
31896/* "rados.pyx":2193
31897 * return False
31898 *
31899 * def __dealloc__(self): # <<<<<<<<<<<<<<
31900 * self.close()
31901 *
31902 */
31903
31904/* Python wrapper */
31905static void __pyx_pw_5rados_5Ioctx_7__dealloc__(PyObject *__pyx_v_self); /*proto*/
31906static void __pyx_pw_5rados_5Ioctx_7__dealloc__(PyObject *__pyx_v_self) {
31907 __Pyx_RefNannyDeclarations
31908 __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
31909 __pyx_pf_5rados_5Ioctx_6__dealloc__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
31910
31911 /* function exit code */
31912 __Pyx_RefNannyFinishContext();
31913}
31914
31915static void __pyx_pf_5rados_5Ioctx_6__dealloc__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
31916 __Pyx_RefNannyDeclarations
31917 PyObject *__pyx_t_1 = NULL((void*)0);
31918 PyObject *__pyx_t_2 = NULL((void*)0);
31919 PyObject *__pyx_t_3 = NULL((void*)0);
31920 int __pyx_lineno = 0;
31921 const char *__pyx_filename = NULL((void*)0);
31922 int __pyx_clineno = 0;
31923 __Pyx_RefNannySetupContext("__dealloc__", 0);
31924
31925 /* "rados.pyx":2194
31926 *
31927 * def __dealloc__(self):
31928 * self.close() # <<<<<<<<<<<<<<
31929 *
31930 * def __track_completion(self, completion_obj):
31931 */
31932 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_close); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__31932; goto __pyx_L1_error;}
31933 __Pyx_GOTREF(__pyx_t_2);
31934 __pyx_t_3 = NULL((void*)0);
31935 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
31936 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
31937 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
31938 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
31939 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
31940 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
31941 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
31942 }
31943 }
31944 if (__pyx_t_3) {
31945 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__31945; goto __pyx_L1_error;}
31946 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
31947 } else {
31948 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__31948; goto __pyx_L1_error;}
31949 }
31950 __Pyx_GOTREF(__pyx_t_1);
31951 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
31952 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
31953
31954 /* "rados.pyx":2193
31955 * return False
31956 *
31957 * def __dealloc__(self): # <<<<<<<<<<<<<<
31958 * self.close()
31959 *
31960 */
31961
31962 /* function exit code */
31963 goto __pyx_L0;
31964 __pyx_L1_error:;
31965 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
31966 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
31967 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
31968 __Pyx_WriteUnraisable("rados.Ioctx.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 0, 0);
31969 __pyx_L0:;
31970 __Pyx_RefNannyFinishContext();
31971}
31972
31973/* "rados.pyx":2196
31974 * self.close()
31975 *
31976 * def __track_completion(self, completion_obj): # <<<<<<<<<<<<<<
31977 * if completion_obj.oncomplete:
31978 * with self.lock:
31979 */
31980
31981/* Python wrapper */
31982static PyObject *__pyx_pw_5rados_5Ioctx_9__track_completion(PyObject *__pyx_v_self, PyObject *__pyx_v_completion_obj); /*proto*/
31983static char __pyx_doc_5rados_5Ioctx_8__track_completion[] = "Ioctx.__track_completion(self, completion_obj)";
31984static PyObject *__pyx_pw_5rados_5Ioctx_9__track_completion(PyObject *__pyx_v_self, PyObject *__pyx_v_completion_obj) {
31985 PyObject *__pyx_r = 0;
31986 __Pyx_RefNannyDeclarations
31987 __Pyx_RefNannySetupContext("__track_completion (wrapper)", 0);
31988 __pyx_r = __pyx_pf_5rados_5Ioctx_8__track_completion(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_completion_obj));
31989
31990 /* function exit code */
31991 __Pyx_RefNannyFinishContext();
31992 return __pyx_r;
31993}
31994
31995static PyObject *__pyx_pf_5rados_5Ioctx_8__track_completion(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_completion_obj) {
31996 PyObject *__pyx_r = NULL((void*)0);
31997 __Pyx_RefNannyDeclarations
31998 PyObject *__pyx_t_1 = NULL((void*)0);
31999 int __pyx_t_2;
32000 PyObject *__pyx_t_3 = NULL((void*)0);
32001 PyObject *__pyx_t_4 = NULL((void*)0);
32002 PyObject *__pyx_t_5 = NULL((void*)0);
32003 PyObject *__pyx_t_6 = NULL((void*)0);
32004 PyObject *__pyx_t_7 = NULL((void*)0);
32005 PyObject *__pyx_t_8 = NULL((void*)0);
32006 int __pyx_t_9;
32007 PyObject *__pyx_t_10 = NULL((void*)0);
32008 PyObject *__pyx_t_11 = NULL((void*)0);
32009 int __pyx_t_12;
32010 int __pyx_lineno = 0;
32011 const char *__pyx_filename = NULL((void*)0);
32012 int __pyx_clineno = 0;
32013 __Pyx_RefNannySetupContext("__track_completion", 0);
32014
32015 /* "rados.pyx":2197
32016 *
32017 * def __track_completion(self, completion_obj):
32018 * if completion_obj.oncomplete: # <<<<<<<<<<<<<<
32019 * with self.lock:
32020 * self.complete_completions.append(completion_obj)
32021 */
32022 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_completion_obj, __pyx_n_s_oncomplete); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2197; __pyx_clineno = __LINE__32022; goto __pyx_L1_error;}
32023 __Pyx_GOTREF(__pyx_t_1);
32024 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2197; __pyx_clineno = __LINE__32024; goto __pyx_L1_error;}
32025 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32026 if (__pyx_t_2) {
32027
32028 /* "rados.pyx":2198
32029 * def __track_completion(self, completion_obj):
32030 * if completion_obj.oncomplete:
32031 * with self.lock: # <<<<<<<<<<<<<<
32032 * self.complete_completions.append(completion_obj)
32033 * if completion_obj.onsafe:
32034 */
32035 /*with:*/ {
32036 __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32036; goto __pyx_L1_error;}
32037 __Pyx_GOTREF(__pyx_t_3);
32038 __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32038; goto __pyx_L4_error;}
32039 __Pyx_GOTREF(__pyx_t_4);
32040 __pyx_t_5 = NULL((void*)0);
32041 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 1)
) {
32042 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
32043 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
32044 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
32045 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
32046 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
32047 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
32048 }
32049 }
32050 if (__pyx_t_5) {
32051 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32051; goto __pyx_L4_error;}
32052 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32053 } else {
32054 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32054; goto __pyx_L4_error;}
32055 }
32056 __Pyx_GOTREF(__pyx_t_1);
32057 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
32058 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32059 /*try:*/ {
32060 {
32061 __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
32062 __Pyx_XGOTREF(__pyx_t_6);
32063 __Pyx_XGOTREF(__pyx_t_7);
32064 __Pyx_XGOTREF(__pyx_t_8);
32065 /*try:*/ {
32066
32067 /* "rados.pyx":2199
32068 * if completion_obj.oncomplete:
32069 * with self.lock:
32070 * self.complete_completions.append(completion_obj) # <<<<<<<<<<<<<<
32071 * if completion_obj.onsafe:
32072 * with self.lock:
32073 */
32074 __pyx_t_9 = __Pyx_PyObject_Append(__pyx_v_self->complete_completions, __pyx_v_completion_obj); if (unlikely(__pyx_t_9 == -1)__builtin_expect(!!(__pyx_t_9 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2199; __pyx_clineno = __LINE__32074; goto __pyx_L8_error;}
32075
32076 /* "rados.pyx":2198
32077 * def __track_completion(self, completion_obj):
32078 * if completion_obj.oncomplete:
32079 * with self.lock: # <<<<<<<<<<<<<<
32080 * self.complete_completions.append(completion_obj)
32081 * if completion_obj.onsafe:
32082 */
32083 }
32084 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
32085 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
32086 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
32087 goto __pyx_L15_try_end;
32088 __pyx_L8_error:;
32089 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
32090 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
32091 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
32092 /*except:*/ {
32093 __Pyx_AddTraceback("rados.Ioctx.__track_completion", __pyx_clineno, __pyx_lineno, __pyx_filename);
32094 if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_4, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32094; goto __pyx_L10_except_error;}
32095 __Pyx_GOTREF(__pyx_t_1);
32096 __Pyx_GOTREF(__pyx_t_4);
32097 __Pyx_GOTREF(__pyx_t_5);
32098 __pyx_t_10 = PyTuple_Pack(3, __pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32098; goto __pyx_L10_except_error;}
32099 __Pyx_GOTREF(__pyx_t_10);
32100 __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL((void*)0));
32101 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32102 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
32103 if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32103; goto __pyx_L10_except_error;}
32104 __Pyx_GOTREF(__pyx_t_11);
32105 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11);
32106 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
32107 if (__pyx_t_2 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32107; goto __pyx_L10_except_error;}
32108 __pyx_t_12 = ((!(__pyx_t_2 != 0)) != 0);
32109 if (__pyx_t_12) {
32110 __Pyx_GIVEREF(__pyx_t_1);
32111 __Pyx_GIVEREF(__pyx_t_4);
32112 __Pyx_XGIVEREF(__pyx_t_5);
32113 __Pyx_ErrRestore(__pyx_t_1, __pyx_t_4, __pyx_t_5);
32114 __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0;
32115 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32115; goto __pyx_L10_except_error;}
32116 }
32117 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32118 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
32119 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32120 goto __pyx_L9_exception_handled;
32121 }
32122 __pyx_L10_except_error:;
32123 __Pyx_XGIVEREF(__pyx_t_6);
32124 __Pyx_XGIVEREF(__pyx_t_7);
32125 __Pyx_XGIVEREF(__pyx_t_8);
32126 __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
32127 goto __pyx_L1_error;
32128 __pyx_L9_exception_handled:;
32129 __Pyx_XGIVEREF(__pyx_t_6);
32130 __Pyx_XGIVEREF(__pyx_t_7);
32131 __Pyx_XGIVEREF(__pyx_t_8);
32132 __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
32133 __pyx_L15_try_end:;
32134 }
32135 }
32136 /*finally:*/ {
32137 /*normal exit:*/{
32138 if (__pyx_t_3) {
32139 __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__50, NULL((void*)0));
32140 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32141 if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__32141; goto __pyx_L1_error;}
32142 __Pyx_GOTREF(__pyx_t_8);
32143 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
32144 }
32145 goto __pyx_L7;
32146 }
32147 __pyx_L7:;
32148 }
32149 goto __pyx_L19;
32150 __pyx_L4_error:;
32151 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32152 goto __pyx_L1_error;
32153 __pyx_L19:;
32154 }
32155
32156 /* "rados.pyx":2197
32157 *
32158 * def __track_completion(self, completion_obj):
32159 * if completion_obj.oncomplete: # <<<<<<<<<<<<<<
32160 * with self.lock:
32161 * self.complete_completions.append(completion_obj)
32162 */
32163 }
32164
32165 /* "rados.pyx":2200
32166 * with self.lock:
32167 * self.complete_completions.append(completion_obj)
32168 * if completion_obj.onsafe: # <<<<<<<<<<<<<<
32169 * with self.lock:
32170 * self.safe_completions.append(completion_obj)
32171 */
32172 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_completion_obj, __pyx_n_s_onsafe); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2200; __pyx_clineno = __LINE__32172; goto __pyx_L1_error;}
32173 __Pyx_GOTREF(__pyx_t_5);
32174 __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_12 < 0)__builtin_expect(!!(__pyx_t_12 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2200; __pyx_clineno = __LINE__32174; goto __pyx_L1_error;}
32175 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32176 if (__pyx_t_12) {
32177
32178 /* "rados.pyx":2201
32179 * self.complete_completions.append(completion_obj)
32180 * if completion_obj.onsafe:
32181 * with self.lock: # <<<<<<<<<<<<<<
32182 * self.safe_completions.append(completion_obj)
32183 *
32184 */
32185 /*with:*/ {
32186 __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->lock, __pyx_n_s_exit); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32186; goto __pyx_L1_error;}
32187 __Pyx_GOTREF(__pyx_t_3);
32188 __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_self->lock, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32188; goto __pyx_L21_error;}
32189 __Pyx_GOTREF(__pyx_t_4);
32190 __pyx_t_1 = NULL((void*)0);
32191 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 1)
) {
32192 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
32193 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
32194 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
32195 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
32196 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
32197 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
32198 }
32199 }
32200 if (__pyx_t_1) {
32201 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32201; goto __pyx_L21_error;}
32202 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32203 } else {
32204 __pyx_t_5 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32204; goto __pyx_L21_error;}
32205 }
32206 __Pyx_GOTREF(__pyx_t_5);
32207 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
32208 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32209 /*try:*/ {
32210 {
32211 __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6);
32212 __Pyx_XGOTREF(__pyx_t_8);
32213 __Pyx_XGOTREF(__pyx_t_7);
32214 __Pyx_XGOTREF(__pyx_t_6);
32215 /*try:*/ {
32216
32217 /* "rados.pyx":2202
32218 * if completion_obj.onsafe:
32219 * with self.lock:
32220 * self.safe_completions.append(completion_obj) # <<<<<<<<<<<<<<
32221 *
32222 * def __get_completion(self, oncomplete, onsafe):
32223 */
32224 __pyx_t_9 = __Pyx_PyObject_Append(__pyx_v_self->safe_completions, __pyx_v_completion_obj); if (unlikely(__pyx_t_9 == -1)__builtin_expect(!!(__pyx_t_9 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__32224; goto __pyx_L25_error;}
32225
32226 /* "rados.pyx":2201
32227 * self.complete_completions.append(completion_obj)
32228 * if completion_obj.onsafe:
32229 * with self.lock: # <<<<<<<<<<<<<<
32230 * self.safe_completions.append(completion_obj)
32231 *
32232 */
32233 }
32234 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
32235 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
; __pyx_t_7 = 0;
32236 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
; __pyx_t_6 = 0;
32237 goto __pyx_L32_try_end;
32238 __pyx_L25_error:;
32239 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
; __pyx_t_10 = 0;
32240 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
32241 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
32242 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
32243 /*except:*/ {
32244 __Pyx_AddTraceback("rados.Ioctx.__track_completion", __pyx_clineno, __pyx_lineno, __pyx_filename);
32245 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32245; goto __pyx_L27_except_error;}
32246 __Pyx_GOTREF(__pyx_t_5);
32247 __Pyx_GOTREF(__pyx_t_4);
32248 __Pyx_GOTREF(__pyx_t_1);
32249 __pyx_t_10 = PyTuple_Pack(3, __pyx_t_5, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32249; goto __pyx_L27_except_error;}
32250 __Pyx_GOTREF(__pyx_t_10);
32251 __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL((void*)0));
32252 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32253 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
32254 if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32254; goto __pyx_L27_except_error;}
32255 __Pyx_GOTREF(__pyx_t_11);
32256 __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_11);
32257 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
32258 if (__pyx_t_12 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32258; goto __pyx_L27_except_error;}
32259 __pyx_t_2 = ((!(__pyx_t_12 != 0)) != 0);
32260 if (__pyx_t_2) {
32261 __Pyx_GIVEREF(__pyx_t_5);
32262 __Pyx_GIVEREF(__pyx_t_4);
32263 __Pyx_XGIVEREF(__pyx_t_1);
32264 __Pyx_ErrRestore(__pyx_t_5, __pyx_t_4, __pyx_t_1);
32265 __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0;
32266 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32266; goto __pyx_L27_except_error;}
32267 }
32268 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32269 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
32270 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32271 goto __pyx_L26_exception_handled;
32272 }
32273 __pyx_L27_except_error:;
32274 __Pyx_XGIVEREF(__pyx_t_8);
32275 __Pyx_XGIVEREF(__pyx_t_7);
32276 __Pyx_XGIVEREF(__pyx_t_6);
32277 __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
32278 goto __pyx_L1_error;
32279 __pyx_L26_exception_handled:;
32280 __Pyx_XGIVEREF(__pyx_t_8);
32281 __Pyx_XGIVEREF(__pyx_t_7);
32282 __Pyx_XGIVEREF(__pyx_t_6);
32283 __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
32284 __pyx_L32_try_end:;
32285 }
32286 }
32287 /*finally:*/ {
32288 /*normal exit:*/{
32289 if (__pyx_t_3) {
32290 __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__51, NULL((void*)0));
32291 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32292 if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__32292; goto __pyx_L1_error;}
32293 __Pyx_GOTREF(__pyx_t_6);
32294 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
32295 }
32296 goto __pyx_L24;
32297 }
32298 __pyx_L24:;
32299 }
32300 goto __pyx_L36;
32301 __pyx_L21_error:;
32302 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32303 goto __pyx_L1_error;
32304 __pyx_L36:;
32305 }
32306
32307 /* "rados.pyx":2200
32308 * with self.lock:
32309 * self.complete_completions.append(completion_obj)
32310 * if completion_obj.onsafe: # <<<<<<<<<<<<<<
32311 * with self.lock:
32312 * self.safe_completions.append(completion_obj)
32313 */
32314 }
32315
32316 /* "rados.pyx":2196
32317 * self.close()
32318 *
32319 * def __track_completion(self, completion_obj): # <<<<<<<<<<<<<<
32320 * if completion_obj.oncomplete:
32321 * with self.lock:
32322 */
32323
32324 /* function exit code */
32325 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
32326 goto __pyx_L0;
32327 __pyx_L1_error:;
32328 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
32329 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
32330 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
32331 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
;
32332 __Pyx_AddTraceback("rados.Ioctx.__track_completion", __pyx_clineno, __pyx_lineno, __pyx_filename);
32333 __pyx_r = NULL((void*)0);
32334 __pyx_L0:;
32335 __Pyx_XGIVEREF(__pyx_r);
32336 __Pyx_RefNannyFinishContext();
32337 return __pyx_r;
32338}
32339
32340/* "rados.pyx":2204
32341 * self.safe_completions.append(completion_obj)
32342 *
32343 * def __get_completion(self, oncomplete, onsafe): # <<<<<<<<<<<<<<
32344 * """
32345 * Constructs a completion to use with asynchronous operations
32346 */
32347
32348/* Python wrapper */
32349static PyObject *__pyx_pw_5rados_5Ioctx_11__get_completion(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
32350static char __pyx_doc_5rados_5Ioctx_10__get_completion[] = "Ioctx.__get_completion(self, oncomplete, onsafe)\n\n Constructs a completion to use with asynchronous operations\n\n :param oncomplete: what to do when the write is safe and complete in memory\n on all replicas\n :type oncomplete: completion\n :param onsafe: what to do when the write is safe and complete on storage\n on all replicas\n :type onsafe: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
32351static PyObject *__pyx_pw_5rados_5Ioctx_11__get_completion(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
32352 PyObject *__pyx_v_oncomplete = 0;
32353 PyObject *__pyx_v_onsafe = 0;
32354 int __pyx_lineno = 0;
32355 const char *__pyx_filename = NULL((void*)0);
32356 int __pyx_clineno = 0;
32357 PyObject *__pyx_r = 0;
32358 __Pyx_RefNannyDeclarations
32359 __Pyx_RefNannySetupContext("__get_completion (wrapper)", 0);
32360 {
32361 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,0};
32362 PyObject* values[2] = {0,0};
32363 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
32364 Py_ssize_t kw_args;
32365 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
32366 switch (pos_args) {
32367 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
32368 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
32369 case 0: break;
32370 default: goto __pyx_L5_argtuple_error;
32371 }
32372 kw_args = PyDict_Size(__pyx_kwds);
32373 switch (pos_args) {
32374 case 0:
32375 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete
)) != 0), 1)
) kw_args--;
32376 else goto __pyx_L5_argtuple_error;
32377 case 1:
32378 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe
)) != 0), 1)
) kw_args--;
32379 else {
32380 __Pyx_RaiseArgtupleInvalid("__get_completion", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__32380; goto __pyx_L3_error;}
32381 }
32382 }
32383 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
32384 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__get_completion") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__get_completion") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__32384; goto __pyx_L3_error;}
32385 }
32386 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
32387 goto __pyx_L5_argtuple_error;
32388 } else {
32389 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
32390 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
32391 }
32392 __pyx_v_oncomplete = values[0];
32393 __pyx_v_onsafe = values[1];
32394 }
32395 goto __pyx_L4_argument_unpacking_done;
32396 __pyx_L5_argtuple_error:;
32397 __Pyx_RaiseArgtupleInvalid("__get_completion", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__32397; goto __pyx_L3_error;}
32398 __pyx_L3_error:;
32399 __Pyx_AddTraceback("rados.Ioctx.__get_completion", __pyx_clineno, __pyx_lineno, __pyx_filename);
32400 __Pyx_RefNannyFinishContext();
32401 return NULL((void*)0);
32402 __pyx_L4_argument_unpacking_done:;
32403 __pyx_r = __pyx_pf_5rados_5Ioctx_10__get_completion(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_oncomplete, __pyx_v_onsafe);
32404
32405 /* function exit code */
32406 __Pyx_RefNannyFinishContext();
32407 return __pyx_r;
32408}
32409
32410static PyObject *__pyx_pf_5rados_5Ioctx_10__get_completion(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe) {
32411 struct __pyx_obj_5rados_Completion *__pyx_v_completion_obj = NULL((void*)0);
32412 rados_callback_t __pyx_v_complete_cb;
32413 rados_callback_t __pyx_v_safe_cb;
32414 rados_completion_t __pyx_v_completion;
32415 PyObject *__pyx_v_p_completion_obj;
32416 int __pyx_v_ret;
32417 PyObject *__pyx_r = NULL((void*)0);
32418 __Pyx_RefNannyDeclarations
32419 PyObject *__pyx_t_1 = NULL((void*)0);
32420 PyObject *__pyx_t_2 = NULL((void*)0);
32421 int __pyx_t_3;
32422 int __pyx_lineno = 0;
32423 const char *__pyx_filename = NULL((void*)0);
32424 int __pyx_clineno = 0;
32425 __Pyx_RefNannySetupContext("__get_completion", 0);
32426
32427 /* "rados.pyx":2219
32428 * """
32429 *
32430 * completion_obj = Completion(self, oncomplete, onsafe) # <<<<<<<<<<<<<<
32431 *
32432 * cdef:
32433 */
32434 __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2219; __pyx_clineno = __LINE__32434; goto __pyx_L1_error;}
32435 __Pyx_GOTREF(__pyx_t_1);
32436 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
32437 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
32438 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
32439 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
32440 __Pyx_GIVEREF(__pyx_v_oncomplete);
32441 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_oncomplete)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_v_oncomplete
)
;
32442 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
32443 __Pyx_GIVEREF(__pyx_v_onsafe);
32444 PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_onsafe)(((PyTupleObject *)(__pyx_t_1))->ob_item[2] = __pyx_v_onsafe
)
;
32445 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_Completion), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2219; __pyx_clineno = __LINE__32445; goto __pyx_L1_error;}
32446 __Pyx_GOTREF(__pyx_t_2);
32447 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32448 __pyx_v_completion_obj = ((struct __pyx_obj_5rados_Completion *)__pyx_t_2);
32449 __pyx_t_2 = 0;
32450
32451 /* "rados.pyx":2222
32452 *
32453 * cdef:
32454 * rados_callback_t complete_cb = NULL # <<<<<<<<<<<<<<
32455 * rados_callback_t safe_cb = NULL
32456 * rados_completion_t completion
32457 */
32458 __pyx_v_complete_cb = NULL((void*)0);
32459
32460 /* "rados.pyx":2223
32461 * cdef:
32462 * rados_callback_t complete_cb = NULL
32463 * rados_callback_t safe_cb = NULL # <<<<<<<<<<<<<<
32464 * rados_completion_t completion
32465 * PyObject* p_completion_obj= <PyObject*>completion_obj
32466 */
32467 __pyx_v_safe_cb = NULL((void*)0);
32468
32469 /* "rados.pyx":2225
32470 * rados_callback_t safe_cb = NULL
32471 * rados_completion_t completion
32472 * PyObject* p_completion_obj= <PyObject*>completion_obj # <<<<<<<<<<<<<<
32473 *
32474 * if oncomplete:
32475 */
32476 __pyx_v_p_completion_obj = ((PyObject *)__pyx_v_completion_obj);
32477
32478 /* "rados.pyx":2227
32479 * PyObject* p_completion_obj= <PyObject*>completion_obj
32480 *
32481 * if oncomplete: # <<<<<<<<<<<<<<
32482 * complete_cb = <rados_callback_t>&__aio_complete_cb
32483 * if onsafe:
32484 */
32485 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_oncomplete); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2227; __pyx_clineno = __LINE__32485; goto __pyx_L1_error;}
32486 if (__pyx_t_3) {
32487
32488 /* "rados.pyx":2228
32489 *
32490 * if oncomplete:
32491 * complete_cb = <rados_callback_t>&__aio_complete_cb # <<<<<<<<<<<<<<
32492 * if onsafe:
32493 * safe_cb = <rados_callback_t>&__aio_safe_cb
32494 */
32495 __pyx_v_complete_cb = ((rados_callback_t)(&__pyx_f_5rados___aio_complete_cb));
32496
32497 /* "rados.pyx":2227
32498 * PyObject* p_completion_obj= <PyObject*>completion_obj
32499 *
32500 * if oncomplete: # <<<<<<<<<<<<<<
32501 * complete_cb = <rados_callback_t>&__aio_complete_cb
32502 * if onsafe:
32503 */
32504 }
32505
32506 /* "rados.pyx":2229
32507 * if oncomplete:
32508 * complete_cb = <rados_callback_t>&__aio_complete_cb
32509 * if onsafe: # <<<<<<<<<<<<<<
32510 * safe_cb = <rados_callback_t>&__aio_safe_cb
32511 *
32512 */
32513 __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_onsafe); if (unlikely(__pyx_t_3 < 0)__builtin_expect(!!(__pyx_t_3 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__32513; goto __pyx_L1_error;}
32514 if (__pyx_t_3) {
32515
32516 /* "rados.pyx":2230
32517 * complete_cb = <rados_callback_t>&__aio_complete_cb
32518 * if onsafe:
32519 * safe_cb = <rados_callback_t>&__aio_safe_cb # <<<<<<<<<<<<<<
32520 *
32521 * with nogil:
32522 */
32523 __pyx_v_safe_cb = ((rados_callback_t)(&__pyx_f_5rados___aio_safe_cb));
32524
32525 /* "rados.pyx":2229
32526 * if oncomplete:
32527 * complete_cb = <rados_callback_t>&__aio_complete_cb
32528 * if onsafe: # <<<<<<<<<<<<<<
32529 * safe_cb = <rados_callback_t>&__aio_safe_cb
32530 *
32531 */
32532 }
32533
32534 /* "rados.pyx":2232
32535 * safe_cb = <rados_callback_t>&__aio_safe_cb
32536 *
32537 * with nogil: # <<<<<<<<<<<<<<
32538 * ret = rados_aio_create_completion(p_completion_obj, complete_cb, safe_cb,
32539 * &completion)
32540 */
32541 {
32542 #ifdef WITH_THREAD1
32543 PyThreadState *_save;
32544 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
32545 #endif
32546 /*try:*/ {
32547
32548 /* "rados.pyx":2233
32549 *
32550 * with nogil:
32551 * ret = rados_aio_create_completion(p_completion_obj, complete_cb, safe_cb, # <<<<<<<<<<<<<<
32552 * &completion)
32553 * if ret < 0:
32554 */
32555 __pyx_v_ret = rados_aio_create_completion(__pyx_v_p_completion_obj, __pyx_v_complete_cb, __pyx_v_safe_cb, (&__pyx_v_completion));
32556 }
32557
32558 /* "rados.pyx":2232
32559 * safe_cb = <rados_callback_t>&__aio_safe_cb
32560 *
32561 * with nogil: # <<<<<<<<<<<<<<
32562 * ret = rados_aio_create_completion(p_completion_obj, complete_cb, safe_cb,
32563 * &completion)
32564 */
32565 /*finally:*/ {
32566 /*normal exit:*/{
32567 #ifdef WITH_THREAD1
32568 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
32569 #endif
32570 goto __pyx_L7;
32571 }
32572 __pyx_L7:;
32573 }
32574 }
32575
32576 /* "rados.pyx":2235
32577 * ret = rados_aio_create_completion(p_completion_obj, complete_cb, safe_cb,
32578 * &completion)
32579 * if ret < 0: # <<<<<<<<<<<<<<
32580 * raise make_ex(ret, "error getting a completion")
32581 *
32582 */
32583 __pyx_t_3 = ((__pyx_v_ret < 0) != 0);
32584 if (__pyx_t_3) {
32585
32586 /* "rados.pyx":2236
32587 * &completion)
32588 * if ret < 0:
32589 * raise make_ex(ret, "error getting a completion") # <<<<<<<<<<<<<<
32590 *
32591 * completion_obj.rados_comp = completion
32592 */
32593 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__32593; goto __pyx_L1_error;}
32594 __Pyx_GOTREF(__pyx_t_2);
32595 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_getting_a_completion); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__32595; goto __pyx_L1_error;}
32596 __Pyx_GOTREF(__pyx_t_1);
32597 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
32598 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
32599 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32600 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__32600; goto __pyx_L1_error;}
32601
32602 /* "rados.pyx":2235
32603 * ret = rados_aio_create_completion(p_completion_obj, complete_cb, safe_cb,
32604 * &completion)
32605 * if ret < 0: # <<<<<<<<<<<<<<
32606 * raise make_ex(ret, "error getting a completion")
32607 *
32608 */
32609 }
32610
32611 /* "rados.pyx":2238
32612 * raise make_ex(ret, "error getting a completion")
32613 *
32614 * completion_obj.rados_comp = completion # <<<<<<<<<<<<<<
32615 * return completion_obj
32616 *
32617 */
32618 __pyx_v_completion_obj->rados_comp = __pyx_v_completion;
32619
32620 /* "rados.pyx":2239
32621 *
32622 * completion_obj.rados_comp = completion
32623 * return completion_obj # <<<<<<<<<<<<<<
32624 *
32625 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)))
32626 */
32627 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
32628 __Pyx_INCREF(((PyObject *)__pyx_v_completion_obj))( ((PyObject*)(((PyObject *)__pyx_v_completion_obj)))->ob_refcnt
++)
;
32629 __pyx_r = ((PyObject *)__pyx_v_completion_obj);
32630 goto __pyx_L0;
32631
32632 /* "rados.pyx":2204
32633 * self.safe_completions.append(completion_obj)
32634 *
32635 * def __get_completion(self, oncomplete, onsafe): # <<<<<<<<<<<<<<
32636 * """
32637 * Constructs a completion to use with asynchronous operations
32638 */
32639
32640 /* function exit code */
32641 __pyx_L1_error:;
32642 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
32643 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
32644 __Pyx_AddTraceback("rados.Ioctx.__get_completion", __pyx_clineno, __pyx_lineno, __pyx_filename);
32645 __pyx_r = NULL((void*)0);
32646 __pyx_L0:;
32647 __Pyx_XDECREF((PyObject *)__pyx_v_completion_obj)do { if (((PyObject *)__pyx_v_completion_obj) == ((void*)0)) ;
else do { if ( --((PyObject*)((PyObject *)__pyx_v_completion_obj
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
(PyObject *)__pyx_v_completion_obj)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)((PyObject *)__pyx_v_completion_obj
)))); } while (0); } while (0)
;
32648 __Pyx_XGIVEREF(__pyx_r);
32649 __Pyx_RefNannyFinishContext();
32650 return __pyx_r;
32651}
32652
32653/* "rados.pyx":2242
32654 *
32655 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)))
32656 * def aio_stat(self, object_name, oncomplete): # <<<<<<<<<<<<<<
32657 * """
32658 * Asynchronously get object stats (size/mtime)
32659 */
32660
32661/* Python wrapper */
32662static PyObject *__pyx_pw_5rados_5Ioctx_13aio_stat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
32663static char __pyx_doc_5rados_5Ioctx_12aio_stat[] = "Ioctx.aio_stat(self, object_name, oncomplete)\n\n Asynchronously get object stats (size/mtime)\n\n oncomplete will be called with the returned size and mtime\n as well as the completion:\n\n oncomplete(completion, size, mtime)\n\n :param object_name: the name of the object to get stats from\n :type object_name: str\n :param oncomplete: what to do when the stat is complete\n :type oncomplete: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
32664static PyObject *__pyx_pw_5rados_5Ioctx_13aio_stat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
32665 PyObject *__pyx_v_object_name = 0;
32666 PyObject *__pyx_v_oncomplete = 0;
32667 int __pyx_lineno = 0;
32668 const char *__pyx_filename = NULL((void*)0);
32669 int __pyx_clineno = 0;
32670 PyObject *__pyx_r = 0;
32671 __Pyx_RefNannyDeclarations
32672 __Pyx_RefNannySetupContext("aio_stat (wrapper)", 0);
32673 {
32674 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object_name,&__pyx_n_s_oncomplete,0};
32675 PyObject* values[2] = {0,0};
32676 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
32677 Py_ssize_t kw_args;
32678 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
32679 switch (pos_args) {
32680 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
32681 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
32682 case 0: break;
32683 default: goto __pyx_L5_argtuple_error;
32684 }
32685 kw_args = PyDict_Size(__pyx_kwds);
32686 switch (pos_args) {
32687 case 0:
32688 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name
)) != 0), 1)
) kw_args--;
32689 else goto __pyx_L5_argtuple_error;
32690 case 1:
32691 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete
)) != 0), 1)
) kw_args--;
32692 else {
32693 __Pyx_RaiseArgtupleInvalid("aio_stat", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__32693; goto __pyx_L3_error;}
32694 }
32695 }
32696 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
32697 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aio_stat") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "aio_stat") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__32697; goto __pyx_L3_error;}
32698 }
32699 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
32700 goto __pyx_L5_argtuple_error;
32701 } else {
32702 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
32703 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
32704 }
32705 __pyx_v_object_name = values[0];
32706 __pyx_v_oncomplete = values[1];
32707 }
32708 goto __pyx_L4_argument_unpacking_done;
32709 __pyx_L5_argtuple_error:;
32710 __Pyx_RaiseArgtupleInvalid("aio_stat", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__32710; goto __pyx_L3_error;}
32711 __pyx_L3_error:;
32712 __Pyx_AddTraceback("rados.Ioctx.aio_stat", __pyx_clineno, __pyx_lineno, __pyx_filename);
32713 __Pyx_RefNannyFinishContext();
32714 return NULL((void*)0);
32715 __pyx_L4_argument_unpacking_done:;
32716 __pyx_r = __pyx_pf_5rados_5Ioctx_12aio_stat(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_oncomplete);
32717
32718 /* function exit code */
32719 __Pyx_RefNannyFinishContext();
32720 return __pyx_r;
32721}
32722
32723/* "rados.pyx":2268
32724 * time_t pmtime
32725 *
32726 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
32727 * cdef Completion _completion_v = completion_v
32728 * return_value = _completion_v.get_return_value()
32729 */
32730
32731/* Python wrapper */
32732static PyObject *__pyx_pw_5rados_5Ioctx_8aio_stat_1oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /*proto*/
32733static PyMethodDef __pyx_mdef_5rados_5Ioctx_8aio_stat_1oncomplete_ = {"oncomplete_", (PyCFunction)__pyx_pw_5rados_5Ioctx_8aio_stat_1oncomplete_, METH_O0x0008, 0};
32734static PyObject *__pyx_pw_5rados_5Ioctx_8aio_stat_1oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
32735 PyObject *__pyx_r = 0;
32736 __Pyx_RefNannyDeclarations
32737 __Pyx_RefNannySetupContext("oncomplete_ (wrapper)", 0);
32738 __pyx_r = __pyx_pf_5rados_5Ioctx_8aio_stat_oncomplete_(__pyx_self, ((PyObject *)__pyx_v_completion_v));
32739
32740 /* function exit code */
32741 __Pyx_RefNannyFinishContext();
32742 return __pyx_r;
32743}
32744
32745static PyObject *__pyx_pf_5rados_5Ioctx_8aio_stat_oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
32746 struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *__pyx_cur_scope;
32747 struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *__pyx_outer_scope;
32748 struct __pyx_obj_5rados_Completion *__pyx_v__completion_v = 0;
32749 PyObject *__pyx_v_return_value = NULL((void*)0);
32750 PyObject *__pyx_r = NULL((void*)0);
32751 __Pyx_RefNannyDeclarations
32752 PyObject *__pyx_t_1 = NULL((void*)0);
32753 PyObject *__pyx_t_2 = NULL((void*)0);
32754 PyObject *__pyx_t_3 = NULL((void*)0);
32755 int __pyx_t_4;
32756 PyObject *__pyx_t_5 = NULL((void*)0);
32757 PyObject *__pyx_t_6 = NULL((void*)0);
32758 PyObject *__pyx_t_7 = NULL((void*)0);
32759 PyObject *__pyx_t_8 = NULL((void*)0);
32760 Py_ssize_t __pyx_t_9;
32761 int __pyx_lineno = 0;
32762 const char *__pyx_filename = NULL((void*)0);
32763 int __pyx_clineno = 0;
32764 __Pyx_RefNannySetupContext("oncomplete_", 0);
32765 __pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
32766 __pyx_cur_scope = __pyx_outer_scope;
32767
32768 /* "rados.pyx":2269
32769 *
32770 * def oncomplete_(completion_v):
32771 * cdef Completion _completion_v = completion_v # <<<<<<<<<<<<<<
32772 * return_value = _completion_v.get_return_value()
32773 * if return_value >= 0:
32774 */
32775 if (!(likely(((__pyx_v_completion_v) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_completion_v, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_v_completion_v) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_completion_v
, __pyx_ptype_5rados_Completion)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2269; __pyx_clineno = __LINE__32775; goto __pyx_L1_error;}
32776 __pyx_t_1 = __pyx_v_completion_v;
32777 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
32778 __pyx_v__completion_v = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
32779 __pyx_t_1 = 0;
32780
32781 /* "rados.pyx":2270
32782 * def oncomplete_(completion_v):
32783 * cdef Completion _completion_v = completion_v
32784 * return_value = _completion_v.get_return_value() # <<<<<<<<<<<<<<
32785 * if return_value >= 0:
32786 * return oncomplete(_completion_v, psize, time.localtime(pmtime))
32787 */
32788 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v__completion_v), __pyx_n_s_get_return_value); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__32788; goto __pyx_L1_error;}
32789 __Pyx_GOTREF(__pyx_t_2);
32790 __pyx_t_3 = NULL((void*)0);
32791 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
32792 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
32793 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
32794 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
32795 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
32796 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
32797 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
32798 }
32799 }
32800 if (__pyx_t_3) {
32801 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__32801; goto __pyx_L1_error;}
32802 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32803 } else {
32804 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__32804; goto __pyx_L1_error;}
32805 }
32806 __Pyx_GOTREF(__pyx_t_1);
32807 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
32808 __pyx_v_return_value = __pyx_t_1;
32809 __pyx_t_1 = 0;
32810
32811 /* "rados.pyx":2271
32812 * cdef Completion _completion_v = completion_v
32813 * return_value = _completion_v.get_return_value()
32814 * if return_value >= 0: # <<<<<<<<<<<<<<
32815 * return oncomplete(_completion_v, psize, time.localtime(pmtime))
32816 * else:
32817 */
32818 __pyx_t_1 = PyObject_RichCompare(__pyx_v_return_value, __pyx_int_0, Py_GE5); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2271; __pyx_clineno = __LINE__32818; goto __pyx_L1_error;}
32819 __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)__builtin_expect(!!(__pyx_t_4 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2271; __pyx_clineno = __LINE__32819; goto __pyx_L1_error;}
32820 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
32821 if (__pyx_t_4) {
32822
32823 /* "rados.pyx":2272
32824 * return_value = _completion_v.get_return_value()
32825 * if return_value >= 0:
32826 * return oncomplete(_completion_v, psize, time.localtime(pmtime)) # <<<<<<<<<<<<<<
32827 * else:
32828 * return oncomplete(_completion_v, None, None)
32829 */
32830 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
32831 if (unlikely(!__pyx_cur_scope->__pyx_v_oncomplete)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_oncomplete),
0)
) { __Pyx_RaiseClosureNameError("oncomplete"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32831; goto __pyx_L1_error;} }
32832 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_cur_scope->__pyx_v_psize); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32832; goto __pyx_L1_error;}
32833 __Pyx_GOTREF(__pyx_t_2);
32834 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_time); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32834; goto __pyx_L1_error;}
32835 __Pyx_GOTREF(__pyx_t_5);
32836 __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_localtime); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32836; goto __pyx_L1_error;}
32837 __Pyx_GOTREF(__pyx_t_6);
32838 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32839 __pyx_t_5 = __Pyx_PyInt_From_time_t(__pyx_cur_scope->__pyx_v_pmtime); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32839; goto __pyx_L1_error;}
32840 __Pyx_GOTREF(__pyx_t_5);
32841 __pyx_t_7 = NULL((void*)0);
32842 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_6))__builtin_expect(!!(((__pyx_t_6)->ob_type == &PyMethod_Type
)), 0)
) {
32843 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_self);
32844 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
32845 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_func);
32846 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
32847 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
32848 __Pyx_DECREF_SET(__pyx_t_6, function)do { PyObject *tmp = (PyObject *) __pyx_t_6; __pyx_t_6 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
32849 }
32850 }
32851 if (!__pyx_t_7) {
32852 __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32852; goto __pyx_L1_error;}
32853 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32854 __Pyx_GOTREF(__pyx_t_3);
32855 } else {
32856 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32856; goto __pyx_L1_error;}
32857 __Pyx_GOTREF(__pyx_t_8);
32858 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
32859 __Pyx_GIVEREF(__pyx_t_5);
32860 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_5);
32861 __pyx_t_5 = 0;
32862 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32862; goto __pyx_L1_error;}
32863 __Pyx_GOTREF(__pyx_t_3);
32864 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
32865 }
32866 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
32867 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_oncomplete)( ((PyObject*)(__pyx_cur_scope->__pyx_v_oncomplete))->ob_refcnt
++)
;
32868 __pyx_t_6 = __pyx_cur_scope->__pyx_v_oncomplete; __pyx_t_8 = NULL((void*)0);
32869 __pyx_t_9 = 0;
32870 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_6))__builtin_expect(!!(((__pyx_t_6)->ob_type == &PyMethod_Type
)), 0)
) {
32871 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_self);
32872 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
32873 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_func);
32874 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
32875 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
32876 __Pyx_DECREF_SET(__pyx_t_6, function)do { PyObject *tmp = (PyObject *) __pyx_t_6; __pyx_t_6 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
32877 __pyx_t_9 = 1;
32878 }
32879 }
32880 __pyx_t_5 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32880; goto __pyx_L1_error;}
32881 __Pyx_GOTREF(__pyx_t_5);
32882 if (__pyx_t_8) {
32883 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
32884 }
32885 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v))( ((PyObject*)(((PyObject *)__pyx_v__completion_v)))->ob_refcnt
++)
;
32886 __Pyx_GIVEREF(((PyObject *)__pyx_v__completion_v));
32887 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, ((PyObject *)__pyx_v__completion_v))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_9] = ((
PyObject *)__pyx_v__completion_v))
;
32888 __Pyx_GIVEREF(__pyx_t_2);
32889 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_t_2)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_9] = __pyx_t_2
)
;
32890 __Pyx_GIVEREF(__pyx_t_3);
32891 PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_9, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[2+__pyx_t_9] = __pyx_t_3
)
;
32892 __pyx_t_2 = 0;
32893 __pyx_t_3 = 0;
32894 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2272; __pyx_clineno = __LINE__32894; goto __pyx_L1_error;}
32895 __Pyx_GOTREF(__pyx_t_1);
32896 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
32897 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
32898 __pyx_r = __pyx_t_1;
32899 __pyx_t_1 = 0;
32900 goto __pyx_L0;
32901
32902 /* "rados.pyx":2271
32903 * cdef Completion _completion_v = completion_v
32904 * return_value = _completion_v.get_return_value()
32905 * if return_value >= 0: # <<<<<<<<<<<<<<
32906 * return oncomplete(_completion_v, psize, time.localtime(pmtime))
32907 * else:
32908 */
32909 }
32910
32911 /* "rados.pyx":2274
32912 * return oncomplete(_completion_v, psize, time.localtime(pmtime))
32913 * else:
32914 * return oncomplete(_completion_v, None, None) # <<<<<<<<<<<<<<
32915 *
32916 * completion = self.__get_completion(oncomplete_, None)
32917 */
32918 /*else*/ {
32919 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
32920 if (unlikely(!__pyx_cur_scope->__pyx_v_oncomplete)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_oncomplete),
0)
) { __Pyx_RaiseClosureNameError("oncomplete"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2274; __pyx_clineno = __LINE__32920; goto __pyx_L1_error;} }
32921 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_oncomplete)( ((PyObject*)(__pyx_cur_scope->__pyx_v_oncomplete))->ob_refcnt
++)
;
32922 __pyx_t_6 = __pyx_cur_scope->__pyx_v_oncomplete; __pyx_t_5 = NULL((void*)0);
32923 __pyx_t_9 = 0;
32924 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_6))__builtin_expect(!!(((__pyx_t_6)->ob_type == &PyMethod_Type
)), 0)
) {
32925 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_self);
32926 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
32927 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6)(((PyMethodObject *)__pyx_t_6) -> im_func);
32928 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
32929 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
32930 __Pyx_DECREF_SET(__pyx_t_6, function)do { PyObject *tmp = (PyObject *) __pyx_t_6; __pyx_t_6 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
32931 __pyx_t_9 = 1;
32932 }
32933 }
32934 __pyx_t_3 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2274; __pyx_clineno = __LINE__32934; goto __pyx_L1_error;}
32935 __Pyx_GOTREF(__pyx_t_3);
32936 if (__pyx_t_5) {
32937 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
32938 }
32939 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v))( ((PyObject*)(((PyObject *)__pyx_v__completion_v)))->ob_refcnt
++)
;
32940 __Pyx_GIVEREF(((PyObject *)__pyx_v__completion_v));
32941 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_9, ((PyObject *)__pyx_v__completion_v))(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_9] = ((
PyObject *)__pyx_v__completion_v))
;
32942 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
32943 __Pyx_GIVEREF(Py_None);
32944 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_9, Py_None)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_9] = (&
_Py_NoneStruct))
;
32945 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
32946 __Pyx_GIVEREF(Py_None);
32947 PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_9, Py_None)(((PyTupleObject *)(__pyx_t_3))->ob_item[2+__pyx_t_9] = (&
_Py_NoneStruct))
;
32948 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2274; __pyx_clineno = __LINE__32948; goto __pyx_L1_error;}
32949 __Pyx_GOTREF(__pyx_t_1);
32950 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
32951 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
32952 __pyx_r = __pyx_t_1;
32953 __pyx_t_1 = 0;
32954 goto __pyx_L0;
32955 }
32956
32957 /* "rados.pyx":2268
32958 * time_t pmtime
32959 *
32960 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
32961 * cdef Completion _completion_v = completion_v
32962 * return_value = _completion_v.get_return_value()
32963 */
32964
32965 /* function exit code */
32966 __pyx_L1_error:;
32967 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
32968 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
32969 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
32970 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
32971 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
32972 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
32973 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
32974 __Pyx_AddTraceback("rados.Ioctx.aio_stat.oncomplete_", __pyx_clineno, __pyx_lineno, __pyx_filename);
32975 __pyx_r = NULL((void*)0);
32976 __pyx_L0:;
32977 __Pyx_XDECREF((PyObject *)__pyx_v__completion_v)do { if (((PyObject *)__pyx_v__completion_v) == ((void*)0)) ;
else do { if ( --((PyObject*)((PyObject *)__pyx_v__completion_v
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
(PyObject *)__pyx_v__completion_v)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)((PyObject *)__pyx_v__completion_v
)))); } while (0); } while (0)
;
32978 __Pyx_XDECREF(__pyx_v_return_value)do { if ((__pyx_v_return_value) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_return_value))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_return_value)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_return_value
)))); } while (0); } while (0)
;
32979 __Pyx_XGIVEREF(__pyx_r);
32980 __Pyx_RefNannyFinishContext();
32981 return __pyx_r;
32982}
32983
32984/* "rados.pyx":2242
32985 *
32986 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)))
32987 * def aio_stat(self, object_name, oncomplete): # <<<<<<<<<<<<<<
32988 * """
32989 * Asynchronously get object stats (size/mtime)
32990 */
32991
32992static PyObject *__pyx_pf_5rados_5Ioctx_12aio_stat(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_oncomplete) {
32993 struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *__pyx_cur_scope;
32994 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
32995 char *__pyx_v__object_name;
32996 PyObject *__pyx_v_oncomplete_ = 0;
32997 int __pyx_v_ret;
32998 PyObject *__pyx_r = NULL((void*)0);
32999 __Pyx_RefNannyDeclarations
33000 PyObject *__pyx_t_1 = NULL((void*)0);
33001 PyObject *__pyx_t_2 = NULL((void*)0);
33002 PyObject *__pyx_t_3 = NULL((void*)0);
33003 Py_ssize_t __pyx_t_4;
33004 PyObject *__pyx_t_5 = NULL((void*)0);
33005 char *__pyx_t_6;
33006 int __pyx_t_7;
33007 int __pyx_lineno = 0;
33008 const char *__pyx_filename = NULL((void*)0);
33009 int __pyx_clineno = 0;
33010 __Pyx_RefNannySetupContext("aio_stat", 0);
33011 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *)__pyx_tp_new_5rados___pyx_scope_struct_9_aio_stat(__pyx_ptype_5rados___pyx_scope_struct_9_aio_stat, __pyx_empty_tuple, NULL((void*)0));
33012 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
33013 __Pyx_RefNannyFinishContext();
33014 return NULL((void*)0);
33015 }
33016 __Pyx_GOTREF(__pyx_cur_scope);
33017 __pyx_cur_scope->__pyx_v_oncomplete = __pyx_v_oncomplete;
33018 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_oncomplete)( ((PyObject*)(__pyx_cur_scope->__pyx_v_oncomplete))->ob_refcnt
++)
;
33019 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_oncomplete);
33020 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
33021
33022 /* "rados.pyx":2260
33023 * """
33024 *
33025 * object_name = cstr(object_name, 'object_name') # <<<<<<<<<<<<<<
33026 *
33027 * cdef:
33028 */
33029 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2260; __pyx_clineno = __LINE__33029; goto __pyx_L1_error;}
33030 __Pyx_GOTREF(__pyx_t_2);
33031 __pyx_t_3 = NULL((void*)0);
33032 __pyx_t_4 = 0;
33033 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
33034 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33035 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
33036 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33037 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
33038 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33039 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33040 __pyx_t_4 = 1;
33041 }
33042 }
33043 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2260; __pyx_clineno = __LINE__33043; goto __pyx_L1_error;}
33044 __Pyx_GOTREF(__pyx_t_5);
33045 if (__pyx_t_3) {
33046 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
33047 }
33048 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
33049 __Pyx_GIVEREF(__pyx_v_object_name);
33050 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_object_name
)
;
33051 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
33052 __Pyx_GIVEREF(__pyx_n_s_object_name);
33053 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_object_name
)
;
33054 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2260; __pyx_clineno = __LINE__33054; goto __pyx_L1_error;}
33055 __Pyx_GOTREF(__pyx_t_1);
33056 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33057 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33058 __Pyx_DECREF_SET(__pyx_v_object_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_object_name; __pyx_v_object_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
33059 __pyx_t_1 = 0;
33060
33061 /* "rados.pyx":2264
33062 * cdef:
33063 * Completion completion
33064 * char *_object_name = object_name # <<<<<<<<<<<<<<
33065 * uint64_t psize
33066 * time_t pmtime
33067 */
33068 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_object_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2264; __pyx_clineno = __LINE__33068; goto __pyx_L1_error;}
33069 __pyx_v__object_name = __pyx_t_6;
33070
33071 /* "rados.pyx":2268
33072 * time_t pmtime
33073 *
33074 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
33075 * cdef Completion _completion_v = completion_v
33076 * return_value = _completion_v.get_return_value()
33077 */
33078 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5Ioctx_8aio_stat_1oncomplete_, 0, __pyx_n_s_aio_stat_locals_oncomplete, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__53))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5Ioctx_8aio_stat_1oncomplete_
, 0, __pyx_n_s_aio_stat_locals_oncomplete, ((PyObject*)__pyx_cur_scope
), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__53))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2268; __pyx_clineno = __LINE__33078; goto __pyx_L1_error;}
33079 __Pyx_GOTREF(__pyx_t_1);
33080 __pyx_v_oncomplete_ = __pyx_t_1;
33081 __pyx_t_1 = 0;
33082
33083 /* "rados.pyx":2276
33084 * return oncomplete(_completion_v, None, None)
33085 *
33086 * completion = self.__get_completion(oncomplete_, None) # <<<<<<<<<<<<<<
33087 * self.__track_completion(completion)
33088 * with nogil:
33089 */
33090 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__33090; goto __pyx_L1_error;}
33091 __Pyx_GOTREF(__pyx_t_2);
33092 __pyx_t_5 = NULL((void*)0);
33093 __pyx_t_4 = 0;
33094 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33095 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33096 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
33097 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33098 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
33099 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33100 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33101 __pyx_t_4 = 1;
33102 }
33103 }
33104 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__33104; goto __pyx_L1_error;}
33105 __Pyx_GOTREF(__pyx_t_3);
33106 if (__pyx_t_5) {
33107 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
33108 }
33109 __Pyx_INCREF(__pyx_v_oncomplete_)( ((PyObject*)(__pyx_v_oncomplete_))->ob_refcnt++);
33110 __Pyx_GIVEREF(__pyx_v_oncomplete_);
33111 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete_)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete_
)
;
33112 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
33113 __Pyx_GIVEREF(Py_None);
33114 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, Py_None)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = (&
_Py_NoneStruct))
;
33115 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__33115; goto __pyx_L1_error;}
33116 __Pyx_GOTREF(__pyx_t_1);
33117 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
33118 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33119 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__33119; goto __pyx_L1_error;}
33120 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
33121 __pyx_t_1 = 0;
33122
33123 /* "rados.pyx":2277
33124 *
33125 * completion = self.__get_completion(oncomplete_, None)
33126 * self.__track_completion(completion) # <<<<<<<<<<<<<<
33127 * with nogil:
33128 * ret = rados_aio_stat(self.io, _object_name, completion.rados_comp,
33129 */
33130 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2277; __pyx_clineno = __LINE__33130; goto __pyx_L1_error;}
33131 __Pyx_GOTREF(__pyx_t_2);
33132 __pyx_t_3 = NULL((void*)0);
33133 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33134 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33135 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
33136 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33137 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
33138 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33139 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33140 }
33141 }
33142 if (!__pyx_t_3) {
33143 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2277; __pyx_clineno = __LINE__33143; goto __pyx_L1_error;}
33144 __Pyx_GOTREF(__pyx_t_1);
33145 } else {
33146 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2277; __pyx_clineno = __LINE__33146; goto __pyx_L1_error;}
33147 __Pyx_GOTREF(__pyx_t_5);
33148 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
33149 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
33150 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
33151 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
33152 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2277; __pyx_clineno = __LINE__33152; goto __pyx_L1_error;}
33153 __Pyx_GOTREF(__pyx_t_1);
33154 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33155 }
33156 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33157 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
33158
33159 /* "rados.pyx":2278
33160 * completion = self.__get_completion(oncomplete_, None)
33161 * self.__track_completion(completion)
33162 * with nogil: # <<<<<<<<<<<<<<
33163 * ret = rados_aio_stat(self.io, _object_name, completion.rados_comp,
33164 * &psize, &pmtime)
33165 */
33166 {
33167 #ifdef WITH_THREAD1
33168 PyThreadState *_save;
33169 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
33170 #endif
33171 /*try:*/ {
33172
33173 /* "rados.pyx":2279
33174 * self.__track_completion(completion)
33175 * with nogil:
33176 * ret = rados_aio_stat(self.io, _object_name, completion.rados_comp, # <<<<<<<<<<<<<<
33177 * &psize, &pmtime)
33178 *
33179 */
33180 __pyx_v_ret = rados_aio_stat(__pyx_v_self->io, __pyx_v__object_name, __pyx_v_completion->rados_comp, (&__pyx_cur_scope->__pyx_v_psize), (&__pyx_cur_scope->__pyx_v_pmtime));
33181 }
33182
33183 /* "rados.pyx":2278
33184 * completion = self.__get_completion(oncomplete_, None)
33185 * self.__track_completion(completion)
33186 * with nogil: # <<<<<<<<<<<<<<
33187 * ret = rados_aio_stat(self.io, _object_name, completion.rados_comp,
33188 * &psize, &pmtime)
33189 */
33190 /*finally:*/ {
33191 /*normal exit:*/{
33192 #ifdef WITH_THREAD1
33193 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
33194 #endif
33195 goto __pyx_L5;
33196 }
33197 __pyx_L5:;
33198 }
33199 }
33200
33201 /* "rados.pyx":2282
33202 * &psize, &pmtime)
33203 *
33204 * if ret < 0: # <<<<<<<<<<<<<<
33205 * completion._cleanup()
33206 * raise make_ex(ret, "error stating %s" % object_name)
33207 */
33208 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
33209 if (__pyx_t_7) {
33210
33211 /* "rados.pyx":2283
33212 *
33213 * if ret < 0:
33214 * completion._cleanup() # <<<<<<<<<<<<<<
33215 * raise make_ex(ret, "error stating %s" % object_name)
33216 * return completion
33217 */
33218 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__33218; goto __pyx_L1_error;}
33219 __Pyx_GOTREF(__pyx_t_2);
33220 __pyx_t_5 = NULL((void*)0);
33221 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33222 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33223 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
33224 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33225 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
33226 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33227 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33228 }
33229 }
33230 if (__pyx_t_5) {
33231 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__33231; goto __pyx_L1_error;}
33232 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33233 } else {
33234 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2283; __pyx_clineno = __LINE__33234; goto __pyx_L1_error;}
33235 }
33236 __Pyx_GOTREF(__pyx_t_1);
33237 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33238 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
33239
33240 /* "rados.pyx":2284
33241 * if ret < 0:
33242 * completion._cleanup()
33243 * raise make_ex(ret, "error stating %s" % object_name) # <<<<<<<<<<<<<<
33244 * return completion
33245 *
33246 */
33247 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2284; __pyx_clineno = __LINE__33247; goto __pyx_L1_error;}
33248 __Pyx_GOTREF(__pyx_t_1);
33249 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_error_stating_s, __pyx_v_object_name)PyString_Format(__pyx_kp_s_error_stating_s, __pyx_v_object_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2284; __pyx_clineno = __LINE__33249; goto __pyx_L1_error;}
33250 __Pyx_GOTREF(__pyx_t_2);
33251 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2284; __pyx_clineno = __LINE__33251; goto __pyx_L1_error;}
33252 __Pyx_GOTREF(__pyx_t_5);
33253 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
33254 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33255 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
33256 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33257 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2284; __pyx_clineno = __LINE__33257; goto __pyx_L1_error;}
33258
33259 /* "rados.pyx":2282
33260 * &psize, &pmtime)
33261 *
33262 * if ret < 0: # <<<<<<<<<<<<<<
33263 * completion._cleanup()
33264 * raise make_ex(ret, "error stating %s" % object_name)
33265 */
33266 }
33267
33268 /* "rados.pyx":2285
33269 * completion._cleanup()
33270 * raise make_ex(ret, "error stating %s" % object_name)
33271 * return completion # <<<<<<<<<<<<<<
33272 *
33273 * @requires(('object_name', str_type), ('to_write', bytes), ('offset', int),
33274 */
33275 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
33276 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
33277 __pyx_r = ((PyObject *)__pyx_v_completion);
33278 goto __pyx_L0;
33279
33280 /* "rados.pyx":2242
33281 *
33282 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)))
33283 * def aio_stat(self, object_name, oncomplete): # <<<<<<<<<<<<<<
33284 * """
33285 * Asynchronously get object stats (size/mtime)
33286 */
33287
33288 /* function exit code */
33289 __pyx_L1_error:;
33290 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
33291 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
33292 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
33293 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
33294 __Pyx_AddTraceback("rados.Ioctx.aio_stat", __pyx_clineno, __pyx_lineno, __pyx_filename);
33295 __pyx_r = NULL((void*)0);
33296 __pyx_L0:;
33297 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
33298 __Pyx_XDECREF(__pyx_v_oncomplete_)do { if ((__pyx_v_oncomplete_) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_oncomplete_))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_oncomplete_)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_oncomplete_
)))); } while (0); } while (0)
;
33299 __Pyx_XDECREF(__pyx_v_object_name)do { if ((__pyx_v_object_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_object_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_object_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_object_name
)))); } while (0); } while (0)
;
33300 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
33301 __Pyx_XGIVEREF(__pyx_r);
33302 __Pyx_RefNannyFinishContext();
33303 return __pyx_r;
33304}
33305
33306/* "rados.pyx":2289
33307 * @requires(('object_name', str_type), ('to_write', bytes), ('offset', int),
33308 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
33309 * def aio_write(self, object_name, to_write, offset=0, # <<<<<<<<<<<<<<
33310 * oncomplete=None, onsafe=None):
33311 * """
33312 */
33313
33314/* Python wrapper */
33315static PyObject *__pyx_pw_5rados_5Ioctx_15aio_write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33316static char __pyx_doc_5rados_5Ioctx_14aio_write[] = "Ioctx.aio_write(self, object_name, to_write, offset=0, oncomplete=None, onsafe=None)\n\n Write data to an object asynchronously\n\n Queues the write and returns.\n\n :param object_name: name of the object\n :type object_name: str\n :param to_write: data to write\n :type to_write: bytes\n :param offset: byte offset in the object to begin writing at\n :type offset: int\n :param oncomplete: what to do when the write is safe and complete in memory\n on all replicas\n :type oncomplete: completion\n :param onsafe: what to do when the write is safe and complete on storage\n on all replicas\n :type onsafe: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
33317static PyObject *__pyx_pw_5rados_5Ioctx_15aio_write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33318 PyObject *__pyx_v_object_name = 0;
33319 PyObject *__pyx_v_to_write = 0;
33320 PyObject *__pyx_v_offset = 0;
33321 PyObject *__pyx_v_oncomplete = 0;
33322 PyObject *__pyx_v_onsafe = 0;
33323 int __pyx_lineno = 0;
33324 const char *__pyx_filename = NULL((void*)0);
33325 int __pyx_clineno = 0;
33326 PyObject *__pyx_r = 0;
33327 __Pyx_RefNannyDeclarations
33328 __Pyx_RefNannySetupContext("aio_write (wrapper)", 0);
33329 {
33330 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object_name,&__pyx_n_s_to_write,&__pyx_n_s_offset,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,0};
33331 PyObject* values[5] = {0,0,0,0,0};
33332 values[2] = ((PyObject *)__pyx_int_0);
33333
33334 /* "rados.pyx":2290
33335 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
33336 * def aio_write(self, object_name, to_write, offset=0,
33337 * oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
33338 * """
33339 * Write data to an object asynchronously
33340 */
33341 values[3] = ((PyObject *)Py_None(&_Py_NoneStruct));
33342 values[4] = ((PyObject *)Py_None(&_Py_NoneStruct));
33343 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
33344 Py_ssize_t kw_args;
33345 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
33346 switch (pos_args) {
33347 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
33348 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
33349 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
33350 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
33351 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
33352 case 0: break;
33353 default: goto __pyx_L5_argtuple_error;
33354 }
33355 kw_args = PyDict_Size(__pyx_kwds);
33356 switch (pos_args) {
33357 case 0:
33358 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name
)) != 0), 1)
) kw_args--;
33359 else goto __pyx_L5_argtuple_error;
33360 case 1:
33361 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_write)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_write
)) != 0), 1)
) kw_args--;
33362 else {
33363 __Pyx_RaiseArgtupleInvalid("aio_write", 0, 2, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__33363; goto __pyx_L3_error;}
33364 }
33365 case 2:
33366 if (kw_args > 0) {
33367 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset);
33368 if (value) { values[2] = value; kw_args--; }
33369 }
33370 case 3:
33371 if (kw_args > 0) {
33372 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete);
33373 if (value) { values[3] = value; kw_args--; }
33374 }
33375 case 4:
33376 if (kw_args > 0) {
33377 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe);
33378 if (value) { values[4] = value; kw_args--; }
33379 }
33380 }
33381 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
33382 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aio_write") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "aio_write") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__33382; goto __pyx_L3_error;}
33383 }
33384 } else {
33385 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
33386 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
33387 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
33388 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
33389 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
33390 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
33391 break;
33392 default: goto __pyx_L5_argtuple_error;
33393 }
33394 }
33395 __pyx_v_object_name = values[0];
33396 __pyx_v_to_write = values[1];
33397 __pyx_v_offset = values[2];
33398 __pyx_v_oncomplete = values[3];
33399 __pyx_v_onsafe = values[4];
33400 }
33401 goto __pyx_L4_argument_unpacking_done;
33402 __pyx_L5_argtuple_error:;
33403 __Pyx_RaiseArgtupleInvalid("aio_write", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__33403; goto __pyx_L3_error;}
33404 __pyx_L3_error:;
33405 __Pyx_AddTraceback("rados.Ioctx.aio_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
33406 __Pyx_RefNannyFinishContext();
33407 return NULL((void*)0);
33408 __pyx_L4_argument_unpacking_done:;
33409 __pyx_r = __pyx_pf_5rados_5Ioctx_14aio_write(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_to_write, __pyx_v_offset, __pyx_v_oncomplete, __pyx_v_onsafe);
33410
33411 /* "rados.pyx":2289
33412 * @requires(('object_name', str_type), ('to_write', bytes), ('offset', int),
33413 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
33414 * def aio_write(self, object_name, to_write, offset=0, # <<<<<<<<<<<<<<
33415 * oncomplete=None, onsafe=None):
33416 * """
33417 */
33418
33419 /* function exit code */
33420 __Pyx_RefNannyFinishContext();
33421 return __pyx_r;
33422}
33423
33424static PyObject *__pyx_pf_5rados_5Ioctx_14aio_write(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_to_write, PyObject *__pyx_v_offset, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe) {
33425 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
33426 char *__pyx_v__object_name;
33427 char *__pyx_v__to_write;
33428 size_t __pyx_v_size;
33429 uint64_t __pyx_v__offset;
33430 int __pyx_v_ret;
33431 PyObject *__pyx_r = NULL((void*)0);
33432 __Pyx_RefNannyDeclarations
33433 PyObject *__pyx_t_1 = NULL((void*)0);
33434 PyObject *__pyx_t_2 = NULL((void*)0);
33435 PyObject *__pyx_t_3 = NULL((void*)0);
33436 Py_ssize_t __pyx_t_4;
33437 PyObject *__pyx_t_5 = NULL((void*)0);
33438 char *__pyx_t_6;
33439 uint64_t __pyx_t_7;
33440 int __pyx_t_8;
33441 int __pyx_lineno = 0;
33442 const char *__pyx_filename = NULL((void*)0);
33443 int __pyx_clineno = 0;
33444 __Pyx_RefNannySetupContext("aio_write", 0);
33445 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
33446
33447 /* "rados.pyx":2313
33448 * """
33449 *
33450 * object_name = cstr(object_name, 'object_name') # <<<<<<<<<<<<<<
33451 *
33452 * cdef:
33453 */
33454 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__33454; goto __pyx_L1_error;}
33455 __Pyx_GOTREF(__pyx_t_2);
33456 __pyx_t_3 = NULL((void*)0);
33457 __pyx_t_4 = 0;
33458 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
33459 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33460 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
33461 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33462 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
33463 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33464 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33465 __pyx_t_4 = 1;
33466 }
33467 }
33468 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__33468; goto __pyx_L1_error;}
33469 __Pyx_GOTREF(__pyx_t_5);
33470 if (__pyx_t_3) {
33471 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
33472 }
33473 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
33474 __Pyx_GIVEREF(__pyx_v_object_name);
33475 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_object_name
)
;
33476 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
33477 __Pyx_GIVEREF(__pyx_n_s_object_name);
33478 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_object_name
)
;
33479 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__33479; goto __pyx_L1_error;}
33480 __Pyx_GOTREF(__pyx_t_1);
33481 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33482 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33483 __Pyx_DECREF_SET(__pyx_v_object_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_object_name; __pyx_v_object_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
33484 __pyx_t_1 = 0;
33485
33486 /* "rados.pyx":2317
33487 * cdef:
33488 * Completion completion
33489 * char* _object_name = object_name # <<<<<<<<<<<<<<
33490 * char* _to_write = to_write
33491 * size_t size = len(to_write)
33492 */
33493 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_object_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2317; __pyx_clineno = __LINE__33493; goto __pyx_L1_error;}
33494 __pyx_v__object_name = __pyx_t_6;
33495
33496 /* "rados.pyx":2318
33497 * Completion completion
33498 * char* _object_name = object_name
33499 * char* _to_write = to_write # <<<<<<<<<<<<<<
33500 * size_t size = len(to_write)
33501 * uint64_t _offset = offset
33502 */
33503 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_to_write); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2318; __pyx_clineno = __LINE__33503; goto __pyx_L1_error;}
33504 __pyx_v__to_write = __pyx_t_6;
33505
33506 /* "rados.pyx":2319
33507 * char* _object_name = object_name
33508 * char* _to_write = to_write
33509 * size_t size = len(to_write) # <<<<<<<<<<<<<<
33510 * uint64_t _offset = offset
33511 *
33512 */
33513 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_to_write); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2319; __pyx_clineno = __LINE__33513; goto __pyx_L1_error;}
33514 __pyx_v_size = __pyx_t_4;
33515
33516 /* "rados.pyx":2320
33517 * char* _to_write = to_write
33518 * size_t size = len(to_write)
33519 * uint64_t _offset = offset # <<<<<<<<<<<<<<
33520 *
33521 * completion = self.__get_completion(oncomplete, onsafe)
33522 */
33523 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_offset); if (unlikely((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2320; __pyx_clineno = __LINE__33523; goto __pyx_L1_error;}
33524 __pyx_v__offset = __pyx_t_7;
33525
33526 /* "rados.pyx":2322
33527 * uint64_t _offset = offset
33528 *
33529 * completion = self.__get_completion(oncomplete, onsafe) # <<<<<<<<<<<<<<
33530 * self.__track_completion(completion)
33531 * with nogil:
33532 */
33533 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2322; __pyx_clineno = __LINE__33533; goto __pyx_L1_error;}
33534 __Pyx_GOTREF(__pyx_t_2);
33535 __pyx_t_5 = NULL((void*)0);
33536 __pyx_t_4 = 0;
33537 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33538 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33539 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
33540 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33541 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
33542 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33543 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33544 __pyx_t_4 = 1;
33545 }
33546 }
33547 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2322; __pyx_clineno = __LINE__33547; goto __pyx_L1_error;}
33548 __Pyx_GOTREF(__pyx_t_3);
33549 if (__pyx_t_5) {
33550 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
33551 }
33552 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
33553 __Pyx_GIVEREF(__pyx_v_oncomplete);
33554 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete
)
;
33555 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
33556 __Pyx_GIVEREF(__pyx_v_onsafe);
33557 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_onsafe)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_v_onsafe
)
;
33558 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2322; __pyx_clineno = __LINE__33558; goto __pyx_L1_error;}
33559 __Pyx_GOTREF(__pyx_t_1);
33560 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
33561 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33562 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2322; __pyx_clineno = __LINE__33562; goto __pyx_L1_error;}
33563 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
33564 __pyx_t_1 = 0;
33565
33566 /* "rados.pyx":2323
33567 *
33568 * completion = self.__get_completion(oncomplete, onsafe)
33569 * self.__track_completion(completion) # <<<<<<<<<<<<<<
33570 * with nogil:
33571 * ret = rados_aio_write(self.io, _object_name, completion.rados_comp,
33572 */
33573 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2323; __pyx_clineno = __LINE__33573; goto __pyx_L1_error;}
33574 __Pyx_GOTREF(__pyx_t_2);
33575 __pyx_t_3 = NULL((void*)0);
33576 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33577 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33578 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
33579 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33580 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
33581 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33582 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33583 }
33584 }
33585 if (!__pyx_t_3) {
33586 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2323; __pyx_clineno = __LINE__33586; goto __pyx_L1_error;}
33587 __Pyx_GOTREF(__pyx_t_1);
33588 } else {
33589 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2323; __pyx_clineno = __LINE__33589; goto __pyx_L1_error;}
33590 __Pyx_GOTREF(__pyx_t_5);
33591 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
33592 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
33593 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
33594 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
33595 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2323; __pyx_clineno = __LINE__33595; goto __pyx_L1_error;}
33596 __Pyx_GOTREF(__pyx_t_1);
33597 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33598 }
33599 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33600 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
33601
33602 /* "rados.pyx":2324
33603 * completion = self.__get_completion(oncomplete, onsafe)
33604 * self.__track_completion(completion)
33605 * with nogil: # <<<<<<<<<<<<<<
33606 * ret = rados_aio_write(self.io, _object_name, completion.rados_comp,
33607 * _to_write, size, _offset)
33608 */
33609 {
33610 #ifdef WITH_THREAD1
33611 PyThreadState *_save;
33612 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
33613 #endif
33614 /*try:*/ {
33615
33616 /* "rados.pyx":2325
33617 * self.__track_completion(completion)
33618 * with nogil:
33619 * ret = rados_aio_write(self.io, _object_name, completion.rados_comp, # <<<<<<<<<<<<<<
33620 * _to_write, size, _offset)
33621 * if ret < 0:
33622 */
33623 __pyx_v_ret = rados_aio_write(__pyx_v_self->io, __pyx_v__object_name, __pyx_v_completion->rados_comp, __pyx_v__to_write, __pyx_v_size, __pyx_v__offset);
33624 }
33625
33626 /* "rados.pyx":2324
33627 * completion = self.__get_completion(oncomplete, onsafe)
33628 * self.__track_completion(completion)
33629 * with nogil: # <<<<<<<<<<<<<<
33630 * ret = rados_aio_write(self.io, _object_name, completion.rados_comp,
33631 * _to_write, size, _offset)
33632 */
33633 /*finally:*/ {
33634 /*normal exit:*/{
33635 #ifdef WITH_THREAD1
33636 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
33637 #endif
33638 goto __pyx_L5;
33639 }
33640 __pyx_L5:;
33641 }
33642 }
33643
33644 /* "rados.pyx":2327
33645 * ret = rados_aio_write(self.io, _object_name, completion.rados_comp,
33646 * _to_write, size, _offset)
33647 * if ret < 0: # <<<<<<<<<<<<<<
33648 * completion._cleanup()
33649 * raise make_ex(ret, "error writing object %s" % object_name)
33650 */
33651 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
33652 if (__pyx_t_8) {
33653
33654 /* "rados.pyx":2328
33655 * _to_write, size, _offset)
33656 * if ret < 0:
33657 * completion._cleanup() # <<<<<<<<<<<<<<
33658 * raise make_ex(ret, "error writing object %s" % object_name)
33659 * return completion
33660 */
33661 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__33661; goto __pyx_L1_error;}
33662 __Pyx_GOTREF(__pyx_t_2);
33663 __pyx_t_5 = NULL((void*)0);
33664 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33665 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33666 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
33667 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33668 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
33669 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33670 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33671 }
33672 }
33673 if (__pyx_t_5) {
33674 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__33674; goto __pyx_L1_error;}
33675 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33676 } else {
33677 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__33677; goto __pyx_L1_error;}
33678 }
33679 __Pyx_GOTREF(__pyx_t_1);
33680 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33681 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
33682
33683 /* "rados.pyx":2329
33684 * if ret < 0:
33685 * completion._cleanup()
33686 * raise make_ex(ret, "error writing object %s" % object_name) # <<<<<<<<<<<<<<
33687 * return completion
33688 *
33689 */
33690 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2329; __pyx_clineno = __LINE__33690; goto __pyx_L1_error;}
33691 __Pyx_GOTREF(__pyx_t_1);
33692 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_error_writing_object_s, __pyx_v_object_name)PyString_Format(__pyx_kp_s_error_writing_object_s, __pyx_v_object_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2329; __pyx_clineno = __LINE__33692; goto __pyx_L1_error;}
33693 __Pyx_GOTREF(__pyx_t_2);
33694 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2329; __pyx_clineno = __LINE__33694; goto __pyx_L1_error;}
33695 __Pyx_GOTREF(__pyx_t_5);
33696 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
33697 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33698 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
33699 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33700 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2329; __pyx_clineno = __LINE__33700; goto __pyx_L1_error;}
33701
33702 /* "rados.pyx":2327
33703 * ret = rados_aio_write(self.io, _object_name, completion.rados_comp,
33704 * _to_write, size, _offset)
33705 * if ret < 0: # <<<<<<<<<<<<<<
33706 * completion._cleanup()
33707 * raise make_ex(ret, "error writing object %s" % object_name)
33708 */
33709 }
33710
33711 /* "rados.pyx":2330
33712 * completion._cleanup()
33713 * raise make_ex(ret, "error writing object %s" % object_name)
33714 * return completion # <<<<<<<<<<<<<<
33715 *
33716 * @requires(('object_name', str_type), ('to_write', bytes), ('oncomplete', opt(Callable)),
33717 */
33718 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
33719 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
33720 __pyx_r = ((PyObject *)__pyx_v_completion);
33721 goto __pyx_L0;
33722
33723 /* "rados.pyx":2289
33724 * @requires(('object_name', str_type), ('to_write', bytes), ('offset', int),
33725 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
33726 * def aio_write(self, object_name, to_write, offset=0, # <<<<<<<<<<<<<<
33727 * oncomplete=None, onsafe=None):
33728 * """
33729 */
33730
33731 /* function exit code */
33732 __pyx_L1_error:;
33733 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
33734 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
33735 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
33736 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
33737 __Pyx_AddTraceback("rados.Ioctx.aio_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
33738 __pyx_r = NULL((void*)0);
33739 __pyx_L0:;
33740 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
33741 __Pyx_XDECREF(__pyx_v_object_name)do { if ((__pyx_v_object_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_object_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_object_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_object_name
)))); } while (0); } while (0)
;
33742 __Pyx_XGIVEREF(__pyx_r);
33743 __Pyx_RefNannyFinishContext();
33744 return __pyx_r;
33745}
33746
33747/* "rados.pyx":2334
33748 * @requires(('object_name', str_type), ('to_write', bytes), ('oncomplete', opt(Callable)),
33749 * ('onsafe', opt(Callable)))
33750 * def aio_write_full(self, object_name, to_write, # <<<<<<<<<<<<<<
33751 * oncomplete=None, onsafe=None):
33752 * """
33753 */
33754
33755/* Python wrapper */
33756static PyObject *__pyx_pw_5rados_5Ioctx_17aio_write_full(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
33757static char __pyx_doc_5rados_5Ioctx_16aio_write_full[] = "Ioctx.aio_write_full(self, object_name, to_write, oncomplete=None, onsafe=None)\n\n Asynchronously write an entire object\n\n The object is filled with the provided data. If the object exists,\n it is atomically truncated and then written.\n Queues the write and returns.\n\n :param object_name: name of the object\n :type object_name: str\n :param to_write: data to write\n :type to_write: str\n :param oncomplete: what to do when the write is safe and complete in memory\n on all replicas\n :type oncomplete: completion\n :param onsafe: what to do when the write is safe and complete on storage\n on all replicas\n :type onsafe: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
33758static PyObject *__pyx_pw_5rados_5Ioctx_17aio_write_full(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
33759 PyObject *__pyx_v_object_name = 0;
33760 PyObject *__pyx_v_to_write = 0;
33761 PyObject *__pyx_v_oncomplete = 0;
33762 PyObject *__pyx_v_onsafe = 0;
33763 int __pyx_lineno = 0;
33764 const char *__pyx_filename = NULL((void*)0);
33765 int __pyx_clineno = 0;
33766 PyObject *__pyx_r = 0;
33767 __Pyx_RefNannyDeclarations
33768 __Pyx_RefNannySetupContext("aio_write_full (wrapper)", 0);
33769 {
33770 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object_name,&__pyx_n_s_to_write,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,0};
33771 PyObject* values[4] = {0,0,0,0};
33772
33773 /* "rados.pyx":2335
33774 * ('onsafe', opt(Callable)))
33775 * def aio_write_full(self, object_name, to_write,
33776 * oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
33777 * """
33778 * Asynchronously write an entire object
33779 */
33780 values[2] = ((PyObject *)Py_None(&_Py_NoneStruct));
33781 values[3] = ((PyObject *)Py_None(&_Py_NoneStruct));
33782 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
33783 Py_ssize_t kw_args;
33784 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
33785 switch (pos_args) {
33786 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
33787 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
33788 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
33789 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
33790 case 0: break;
33791 default: goto __pyx_L5_argtuple_error;
33792 }
33793 kw_args = PyDict_Size(__pyx_kwds);
33794 switch (pos_args) {
33795 case 0:
33796 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name
)) != 0), 1)
) kw_args--;
33797 else goto __pyx_L5_argtuple_error;
33798 case 1:
33799 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_write)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_write
)) != 0), 1)
) kw_args--;
33800 else {
33801 __Pyx_RaiseArgtupleInvalid("aio_write_full", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__33801; goto __pyx_L3_error;}
33802 }
33803 case 2:
33804 if (kw_args > 0) {
33805 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete);
33806 if (value) { values[2] = value; kw_args--; }
33807 }
33808 case 3:
33809 if (kw_args > 0) {
33810 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe);
33811 if (value) { values[3] = value; kw_args--; }
33812 }
33813 }
33814 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
33815 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aio_write_full") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "aio_write_full") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__33815; goto __pyx_L3_error;}
33816 }
33817 } else {
33818 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
33819 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
33820 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
33821 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
33822 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
33823 break;
33824 default: goto __pyx_L5_argtuple_error;
33825 }
33826 }
33827 __pyx_v_object_name = values[0];
33828 __pyx_v_to_write = values[1];
33829 __pyx_v_oncomplete = values[2];
33830 __pyx_v_onsafe = values[3];
33831 }
33832 goto __pyx_L4_argument_unpacking_done;
33833 __pyx_L5_argtuple_error:;
33834 __Pyx_RaiseArgtupleInvalid("aio_write_full", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__33834; goto __pyx_L3_error;}
33835 __pyx_L3_error:;
33836 __Pyx_AddTraceback("rados.Ioctx.aio_write_full", __pyx_clineno, __pyx_lineno, __pyx_filename);
33837 __Pyx_RefNannyFinishContext();
33838 return NULL((void*)0);
33839 __pyx_L4_argument_unpacking_done:;
33840 __pyx_r = __pyx_pf_5rados_5Ioctx_16aio_write_full(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_to_write, __pyx_v_oncomplete, __pyx_v_onsafe);
33841
33842 /* "rados.pyx":2334
33843 * @requires(('object_name', str_type), ('to_write', bytes), ('oncomplete', opt(Callable)),
33844 * ('onsafe', opt(Callable)))
33845 * def aio_write_full(self, object_name, to_write, # <<<<<<<<<<<<<<
33846 * oncomplete=None, onsafe=None):
33847 * """
33848 */
33849
33850 /* function exit code */
33851 __Pyx_RefNannyFinishContext();
33852 return __pyx_r;
33853}
33854
33855static PyObject *__pyx_pf_5rados_5Ioctx_16aio_write_full(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_to_write, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe) {
33856 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
33857 char *__pyx_v__object_name;
33858 char *__pyx_v__to_write;
33859 size_t __pyx_v_size;
33860 int __pyx_v_ret;
33861 PyObject *__pyx_r = NULL((void*)0);
33862 __Pyx_RefNannyDeclarations
33863 PyObject *__pyx_t_1 = NULL((void*)0);
33864 PyObject *__pyx_t_2 = NULL((void*)0);
33865 PyObject *__pyx_t_3 = NULL((void*)0);
33866 Py_ssize_t __pyx_t_4;
33867 PyObject *__pyx_t_5 = NULL((void*)0);
33868 char *__pyx_t_6;
33869 int __pyx_t_7;
33870 int __pyx_lineno = 0;
33871 const char *__pyx_filename = NULL((void*)0);
33872 int __pyx_clineno = 0;
33873 __Pyx_RefNannySetupContext("aio_write_full", 0);
33874 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
33875
33876 /* "rados.pyx":2358
33877 * """
33878 *
33879 * object_name = cstr(object_name, 'object_name') # <<<<<<<<<<<<<<
33880 *
33881 * cdef:
33882 */
33883 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2358; __pyx_clineno = __LINE__33883; goto __pyx_L1_error;}
33884 __Pyx_GOTREF(__pyx_t_2);
33885 __pyx_t_3 = NULL((void*)0);
33886 __pyx_t_4 = 0;
33887 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
33888 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33889 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
33890 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33891 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
33892 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33893 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33894 __pyx_t_4 = 1;
33895 }
33896 }
33897 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2358; __pyx_clineno = __LINE__33897; goto __pyx_L1_error;}
33898 __Pyx_GOTREF(__pyx_t_5);
33899 if (__pyx_t_3) {
33900 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
33901 }
33902 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
33903 __Pyx_GIVEREF(__pyx_v_object_name);
33904 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_object_name
)
;
33905 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
33906 __Pyx_GIVEREF(__pyx_n_s_object_name);
33907 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_object_name
)
;
33908 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2358; __pyx_clineno = __LINE__33908; goto __pyx_L1_error;}
33909 __Pyx_GOTREF(__pyx_t_1);
33910 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
33911 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33912 __Pyx_DECREF_SET(__pyx_v_object_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_object_name; __pyx_v_object_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
33913 __pyx_t_1 = 0;
33914
33915 /* "rados.pyx":2362
33916 * cdef:
33917 * Completion completion
33918 * char* _object_name = object_name # <<<<<<<<<<<<<<
33919 * char* _to_write = to_write
33920 * size_t size = len(to_write)
33921 */
33922 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_object_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2362; __pyx_clineno = __LINE__33922; goto __pyx_L1_error;}
33923 __pyx_v__object_name = __pyx_t_6;
33924
33925 /* "rados.pyx":2363
33926 * Completion completion
33927 * char* _object_name = object_name
33928 * char* _to_write = to_write # <<<<<<<<<<<<<<
33929 * size_t size = len(to_write)
33930 *
33931 */
33932 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_to_write); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2363; __pyx_clineno = __LINE__33932; goto __pyx_L1_error;}
33933 __pyx_v__to_write = __pyx_t_6;
33934
33935 /* "rados.pyx":2364
33936 * char* _object_name = object_name
33937 * char* _to_write = to_write
33938 * size_t size = len(to_write) # <<<<<<<<<<<<<<
33939 *
33940 * completion = self.__get_completion(oncomplete, onsafe)
33941 */
33942 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_to_write); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2364; __pyx_clineno = __LINE__33942; goto __pyx_L1_error;}
33943 __pyx_v_size = __pyx_t_4;
33944
33945 /* "rados.pyx":2366
33946 * size_t size = len(to_write)
33947 *
33948 * completion = self.__get_completion(oncomplete, onsafe) # <<<<<<<<<<<<<<
33949 * self.__track_completion(completion)
33950 * with nogil:
33951 */
33952 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2366; __pyx_clineno = __LINE__33952; goto __pyx_L1_error;}
33953 __Pyx_GOTREF(__pyx_t_2);
33954 __pyx_t_5 = NULL((void*)0);
33955 __pyx_t_4 = 0;
33956 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33957 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33958 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
33959 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33960 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
33961 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
33962 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
33963 __pyx_t_4 = 1;
33964 }
33965 }
33966 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2366; __pyx_clineno = __LINE__33966; goto __pyx_L1_error;}
33967 __Pyx_GOTREF(__pyx_t_3);
33968 if (__pyx_t_5) {
33969 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
33970 }
33971 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
33972 __Pyx_GIVEREF(__pyx_v_oncomplete);
33973 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete
)
;
33974 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
33975 __Pyx_GIVEREF(__pyx_v_onsafe);
33976 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_onsafe)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_v_onsafe
)
;
33977 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2366; __pyx_clineno = __LINE__33977; goto __pyx_L1_error;}
33978 __Pyx_GOTREF(__pyx_t_1);
33979 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
33980 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
33981 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2366; __pyx_clineno = __LINE__33981; goto __pyx_L1_error;}
33982 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
33983 __pyx_t_1 = 0;
33984
33985 /* "rados.pyx":2367
33986 *
33987 * completion = self.__get_completion(oncomplete, onsafe)
33988 * self.__track_completion(completion) # <<<<<<<<<<<<<<
33989 * with nogil:
33990 * ret = rados_aio_write_full(self.io, _object_name,
33991 */
33992 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2367; __pyx_clineno = __LINE__33992; goto __pyx_L1_error;}
33993 __Pyx_GOTREF(__pyx_t_2);
33994 __pyx_t_3 = NULL((void*)0);
33995 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
33996 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
33997 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
33998 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
33999 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
34000 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34001 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34002 }
34003 }
34004 if (!__pyx_t_3) {
34005 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2367; __pyx_clineno = __LINE__34005; goto __pyx_L1_error;}
34006 __Pyx_GOTREF(__pyx_t_1);
34007 } else {
34008 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2367; __pyx_clineno = __LINE__34008; goto __pyx_L1_error;}
34009 __Pyx_GOTREF(__pyx_t_5);
34010 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
34011 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
34012 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
34013 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
34014 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2367; __pyx_clineno = __LINE__34014; goto __pyx_L1_error;}
34015 __Pyx_GOTREF(__pyx_t_1);
34016 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
34017 }
34018 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34019 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34020
34021 /* "rados.pyx":2368
34022 * completion = self.__get_completion(oncomplete, onsafe)
34023 * self.__track_completion(completion)
34024 * with nogil: # <<<<<<<<<<<<<<
34025 * ret = rados_aio_write_full(self.io, _object_name,
34026 * completion.rados_comp,
34027 */
34028 {
34029 #ifdef WITH_THREAD1
34030 PyThreadState *_save;
34031 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
34032 #endif
34033 /*try:*/ {
34034
34035 /* "rados.pyx":2369
34036 * self.__track_completion(completion)
34037 * with nogil:
34038 * ret = rados_aio_write_full(self.io, _object_name, # <<<<<<<<<<<<<<
34039 * completion.rados_comp,
34040 * _to_write, size)
34041 */
34042 __pyx_v_ret = rados_aio_write_full(__pyx_v_self->io, __pyx_v__object_name, __pyx_v_completion->rados_comp, __pyx_v__to_write, __pyx_v_size);
34043 }
34044
34045 /* "rados.pyx":2368
34046 * completion = self.__get_completion(oncomplete, onsafe)
34047 * self.__track_completion(completion)
34048 * with nogil: # <<<<<<<<<<<<<<
34049 * ret = rados_aio_write_full(self.io, _object_name,
34050 * completion.rados_comp,
34051 */
34052 /*finally:*/ {
34053 /*normal exit:*/{
34054 #ifdef WITH_THREAD1
34055 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
34056 #endif
34057 goto __pyx_L5;
34058 }
34059 __pyx_L5:;
34060 }
34061 }
34062
34063 /* "rados.pyx":2372
34064 * completion.rados_comp,
34065 * _to_write, size)
34066 * if ret < 0: # <<<<<<<<<<<<<<
34067 * completion._cleanup()
34068 * raise make_ex(ret, "error writing object %s" % object_name)
34069 */
34070 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
34071 if (__pyx_t_7) {
34072
34073 /* "rados.pyx":2373
34074 * _to_write, size)
34075 * if ret < 0:
34076 * completion._cleanup() # <<<<<<<<<<<<<<
34077 * raise make_ex(ret, "error writing object %s" % object_name)
34078 * return completion
34079 */
34080 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__34080; goto __pyx_L1_error;}
34081 __Pyx_GOTREF(__pyx_t_2);
34082 __pyx_t_5 = NULL((void*)0);
34083 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
34084 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
34085 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
34086 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
34087 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
34088 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34089 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34090 }
34091 }
34092 if (__pyx_t_5) {
34093 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__34093; goto __pyx_L1_error;}
34094 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
34095 } else {
34096 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2373; __pyx_clineno = __LINE__34096; goto __pyx_L1_error;}
34097 }
34098 __Pyx_GOTREF(__pyx_t_1);
34099 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34100 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34101
34102 /* "rados.pyx":2374
34103 * if ret < 0:
34104 * completion._cleanup()
34105 * raise make_ex(ret, "error writing object %s" % object_name) # <<<<<<<<<<<<<<
34106 * return completion
34107 *
34108 */
34109 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__34109; goto __pyx_L1_error;}
34110 __Pyx_GOTREF(__pyx_t_1);
34111 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_error_writing_object_s, __pyx_v_object_name)PyString_Format(__pyx_kp_s_error_writing_object_s, __pyx_v_object_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__34111; goto __pyx_L1_error;}
34112 __Pyx_GOTREF(__pyx_t_2);
34113 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__34113; goto __pyx_L1_error;}
34114 __Pyx_GOTREF(__pyx_t_5);
34115 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34116 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34117 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
34118 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
34119 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__34119; goto __pyx_L1_error;}
34120
34121 /* "rados.pyx":2372
34122 * completion.rados_comp,
34123 * _to_write, size)
34124 * if ret < 0: # <<<<<<<<<<<<<<
34125 * completion._cleanup()
34126 * raise make_ex(ret, "error writing object %s" % object_name)
34127 */
34128 }
34129
34130 /* "rados.pyx":2375
34131 * completion._cleanup()
34132 * raise make_ex(ret, "error writing object %s" % object_name)
34133 * return completion # <<<<<<<<<<<<<<
34134 *
34135 * @requires(('object_name', str_type), ('to_append', bytes), ('oncomplete', opt(Callable)),
34136 */
34137 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
34138 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
34139 __pyx_r = ((PyObject *)__pyx_v_completion);
34140 goto __pyx_L0;
34141
34142 /* "rados.pyx":2334
34143 * @requires(('object_name', str_type), ('to_write', bytes), ('oncomplete', opt(Callable)),
34144 * ('onsafe', opt(Callable)))
34145 * def aio_write_full(self, object_name, to_write, # <<<<<<<<<<<<<<
34146 * oncomplete=None, onsafe=None):
34147 * """
34148 */
34149
34150 /* function exit code */
34151 __pyx_L1_error:;
34152 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
34153 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
34154 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
34155 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
34156 __Pyx_AddTraceback("rados.Ioctx.aio_write_full", __pyx_clineno, __pyx_lineno, __pyx_filename);
34157 __pyx_r = NULL((void*)0);
34158 __pyx_L0:;
34159 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
34160 __Pyx_XDECREF(__pyx_v_object_name)do { if ((__pyx_v_object_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_object_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_object_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_object_name
)))); } while (0); } while (0)
;
34161 __Pyx_XGIVEREF(__pyx_r);
34162 __Pyx_RefNannyFinishContext();
34163 return __pyx_r;
34164}
34165
34166/* "rados.pyx":2379
34167 * @requires(('object_name', str_type), ('to_append', bytes), ('oncomplete', opt(Callable)),
34168 * ('onsafe', opt(Callable)))
34169 * def aio_append(self, object_name, to_append, oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
34170 * """
34171 * Asynchronously append data to an object
34172 */
34173
34174/* Python wrapper */
34175static PyObject *__pyx_pw_5rados_5Ioctx_19aio_append(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34176static char __pyx_doc_5rados_5Ioctx_18aio_append[] = "Ioctx.aio_append(self, object_name, to_append, oncomplete=None, onsafe=None)\n\n Asynchronously append data to an object\n\n Queues the write and returns.\n\n :param object_name: name of the object\n :type object_name: str\n :param to_append: data to append\n :type to_append: str\n :param offset: byte offset in the object to begin writing at\n :type offset: int\n :param oncomplete: what to do when the write is safe and complete in memory\n on all replicas\n :type oncomplete: completion\n :param onsafe: what to do when the write is safe and complete on storage\n on all replicas\n :type onsafe: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
34177static PyObject *__pyx_pw_5rados_5Ioctx_19aio_append(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34178 PyObject *__pyx_v_object_name = 0;
34179 PyObject *__pyx_v_to_append = 0;
34180 PyObject *__pyx_v_oncomplete = 0;
34181 PyObject *__pyx_v_onsafe = 0;
34182 int __pyx_lineno = 0;
34183 const char *__pyx_filename = NULL((void*)0);
34184 int __pyx_clineno = 0;
34185 PyObject *__pyx_r = 0;
34186 __Pyx_RefNannyDeclarations
34187 __Pyx_RefNannySetupContext("aio_append (wrapper)", 0);
34188 {
34189 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object_name,&__pyx_n_s_to_append,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,0};
34190 PyObject* values[4] = {0,0,0,0};
34191 values[2] = ((PyObject *)Py_None(&_Py_NoneStruct));
34192 values[3] = ((PyObject *)Py_None(&_Py_NoneStruct));
34193 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
34194 Py_ssize_t kw_args;
34195 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
34196 switch (pos_args) {
34197 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
34198 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
34199 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
34200 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
34201 case 0: break;
34202 default: goto __pyx_L5_argtuple_error;
34203 }
34204 kw_args = PyDict_Size(__pyx_kwds);
34205 switch (pos_args) {
34206 case 0:
34207 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name
)) != 0), 1)
) kw_args--;
34208 else goto __pyx_L5_argtuple_error;
34209 case 1:
34210 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_append)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_to_append
)) != 0), 1)
) kw_args--;
34211 else {
34212 __Pyx_RaiseArgtupleInvalid("aio_append", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2379; __pyx_clineno = __LINE__34212; goto __pyx_L3_error;}
34213 }
34214 case 2:
34215 if (kw_args > 0) {
34216 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete);
34217 if (value) { values[2] = value; kw_args--; }
34218 }
34219 case 3:
34220 if (kw_args > 0) {
34221 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe);
34222 if (value) { values[3] = value; kw_args--; }
34223 }
34224 }
34225 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
34226 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aio_append") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "aio_append") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2379; __pyx_clineno = __LINE__34226; goto __pyx_L3_error;}
34227 }
34228 } else {
34229 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
34230 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
34231 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
34232 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
34233 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
34234 break;
34235 default: goto __pyx_L5_argtuple_error;
34236 }
34237 }
34238 __pyx_v_object_name = values[0];
34239 __pyx_v_to_append = values[1];
34240 __pyx_v_oncomplete = values[2];
34241 __pyx_v_onsafe = values[3];
34242 }
34243 goto __pyx_L4_argument_unpacking_done;
34244 __pyx_L5_argtuple_error:;
34245 __Pyx_RaiseArgtupleInvalid("aio_append", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2379; __pyx_clineno = __LINE__34245; goto __pyx_L3_error;}
34246 __pyx_L3_error:;
34247 __Pyx_AddTraceback("rados.Ioctx.aio_append", __pyx_clineno, __pyx_lineno, __pyx_filename);
34248 __Pyx_RefNannyFinishContext();
34249 return NULL((void*)0);
34250 __pyx_L4_argument_unpacking_done:;
34251 __pyx_r = __pyx_pf_5rados_5Ioctx_18aio_append(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_to_append, __pyx_v_oncomplete, __pyx_v_onsafe);
34252
34253 /* function exit code */
34254 __Pyx_RefNannyFinishContext();
34255 return __pyx_r;
34256}
34257
34258static PyObject *__pyx_pf_5rados_5Ioctx_18aio_append(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_to_append, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe) {
34259 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
34260 char *__pyx_v__object_name;
34261 char *__pyx_v__to_append;
34262 size_t __pyx_v_size;
34263 int __pyx_v_ret;
34264 PyObject *__pyx_r = NULL((void*)0);
34265 __Pyx_RefNannyDeclarations
34266 PyObject *__pyx_t_1 = NULL((void*)0);
34267 PyObject *__pyx_t_2 = NULL((void*)0);
34268 PyObject *__pyx_t_3 = NULL((void*)0);
34269 Py_ssize_t __pyx_t_4;
34270 PyObject *__pyx_t_5 = NULL((void*)0);
34271 char *__pyx_t_6;
34272 int __pyx_t_7;
34273 int __pyx_lineno = 0;
34274 const char *__pyx_filename = NULL((void*)0);
34275 int __pyx_clineno = 0;
34276 __Pyx_RefNannySetupContext("aio_append", 0);
34277 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
34278
34279 /* "rados.pyx":2401
34280 * :returns: completion object
34281 * """
34282 * object_name = cstr(object_name, 'object_name') # <<<<<<<<<<<<<<
34283 *
34284 * cdef:
34285 */
34286 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2401; __pyx_clineno = __LINE__34286; goto __pyx_L1_error;}
34287 __Pyx_GOTREF(__pyx_t_2);
34288 __pyx_t_3 = NULL((void*)0);
34289 __pyx_t_4 = 0;
34290 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
34291 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
34292 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
34293 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
34294 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
34295 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34296 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34297 __pyx_t_4 = 1;
34298 }
34299 }
34300 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2401; __pyx_clineno = __LINE__34300; goto __pyx_L1_error;}
34301 __Pyx_GOTREF(__pyx_t_5);
34302 if (__pyx_t_3) {
34303 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
34304 }
34305 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
34306 __Pyx_GIVEREF(__pyx_v_object_name);
34307 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_object_name
)
;
34308 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
34309 __Pyx_GIVEREF(__pyx_n_s_object_name);
34310 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_object_name
)
;
34311 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2401; __pyx_clineno = __LINE__34311; goto __pyx_L1_error;}
34312 __Pyx_GOTREF(__pyx_t_1);
34313 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
34314 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34315 __Pyx_DECREF_SET(__pyx_v_object_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_object_name; __pyx_v_object_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
34316 __pyx_t_1 = 0;
34317
34318 /* "rados.pyx":2405
34319 * cdef:
34320 * Completion completion
34321 * char* _object_name = object_name # <<<<<<<<<<<<<<
34322 * char* _to_append = to_append
34323 * size_t size = len(to_append)
34324 */
34325 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_object_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2405; __pyx_clineno = __LINE__34325; goto __pyx_L1_error;}
34326 __pyx_v__object_name = __pyx_t_6;
34327
34328 /* "rados.pyx":2406
34329 * Completion completion
34330 * char* _object_name = object_name
34331 * char* _to_append = to_append # <<<<<<<<<<<<<<
34332 * size_t size = len(to_append)
34333 *
34334 */
34335 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_to_append); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2406; __pyx_clineno = __LINE__34335; goto __pyx_L1_error;}
34336 __pyx_v__to_append = __pyx_t_6;
34337
34338 /* "rados.pyx":2407
34339 * char* _object_name = object_name
34340 * char* _to_append = to_append
34341 * size_t size = len(to_append) # <<<<<<<<<<<<<<
34342 *
34343 * completion = self.__get_completion(oncomplete, onsafe)
34344 */
34345 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_to_append); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2407; __pyx_clineno = __LINE__34345; goto __pyx_L1_error;}
34346 __pyx_v_size = __pyx_t_4;
34347
34348 /* "rados.pyx":2409
34349 * size_t size = len(to_append)
34350 *
34351 * completion = self.__get_completion(oncomplete, onsafe) # <<<<<<<<<<<<<<
34352 * self.__track_completion(completion)
34353 * with nogil:
34354 */
34355 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__34355; goto __pyx_L1_error;}
34356 __Pyx_GOTREF(__pyx_t_2);
34357 __pyx_t_5 = NULL((void*)0);
34358 __pyx_t_4 = 0;
34359 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
34360 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
34361 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
34362 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
34363 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
34364 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34365 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34366 __pyx_t_4 = 1;
34367 }
34368 }
34369 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__34369; goto __pyx_L1_error;}
34370 __Pyx_GOTREF(__pyx_t_3);
34371 if (__pyx_t_5) {
34372 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
34373 }
34374 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
34375 __Pyx_GIVEREF(__pyx_v_oncomplete);
34376 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete
)
;
34377 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
34378 __Pyx_GIVEREF(__pyx_v_onsafe);
34379 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_onsafe)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_v_onsafe
)
;
34380 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__34380; goto __pyx_L1_error;}
34381 __Pyx_GOTREF(__pyx_t_1);
34382 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
34383 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34384 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__34384; goto __pyx_L1_error;}
34385 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
34386 __pyx_t_1 = 0;
34387
34388 /* "rados.pyx":2410
34389 *
34390 * completion = self.__get_completion(oncomplete, onsafe)
34391 * self.__track_completion(completion) # <<<<<<<<<<<<<<
34392 * with nogil:
34393 * ret = rados_aio_append(self.io, _object_name,
34394 */
34395 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__34395; goto __pyx_L1_error;}
34396 __Pyx_GOTREF(__pyx_t_2);
34397 __pyx_t_3 = NULL((void*)0);
34398 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
34399 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
34400 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
34401 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
34402 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
34403 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34404 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34405 }
34406 }
34407 if (!__pyx_t_3) {
34408 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__34408; goto __pyx_L1_error;}
34409 __Pyx_GOTREF(__pyx_t_1);
34410 } else {
34411 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__34411; goto __pyx_L1_error;}
34412 __Pyx_GOTREF(__pyx_t_5);
34413 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
34414 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
34415 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
34416 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
34417 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__34417; goto __pyx_L1_error;}
34418 __Pyx_GOTREF(__pyx_t_1);
34419 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
34420 }
34421 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34422 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34423
34424 /* "rados.pyx":2411
34425 * completion = self.__get_completion(oncomplete, onsafe)
34426 * self.__track_completion(completion)
34427 * with nogil: # <<<<<<<<<<<<<<
34428 * ret = rados_aio_append(self.io, _object_name,
34429 * completion.rados_comp,
34430 */
34431 {
34432 #ifdef WITH_THREAD1
34433 PyThreadState *_save;
34434 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
34435 #endif
34436 /*try:*/ {
34437
34438 /* "rados.pyx":2412
34439 * self.__track_completion(completion)
34440 * with nogil:
34441 * ret = rados_aio_append(self.io, _object_name, # <<<<<<<<<<<<<<
34442 * completion.rados_comp,
34443 * _to_append, size)
34444 */
34445 __pyx_v_ret = rados_aio_append(__pyx_v_self->io, __pyx_v__object_name, __pyx_v_completion->rados_comp, __pyx_v__to_append, __pyx_v_size);
34446 }
34447
34448 /* "rados.pyx":2411
34449 * completion = self.__get_completion(oncomplete, onsafe)
34450 * self.__track_completion(completion)
34451 * with nogil: # <<<<<<<<<<<<<<
34452 * ret = rados_aio_append(self.io, _object_name,
34453 * completion.rados_comp,
34454 */
34455 /*finally:*/ {
34456 /*normal exit:*/{
34457 #ifdef WITH_THREAD1
34458 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
34459 #endif
34460 goto __pyx_L5;
34461 }
34462 __pyx_L5:;
34463 }
34464 }
34465
34466 /* "rados.pyx":2415
34467 * completion.rados_comp,
34468 * _to_append, size)
34469 * if ret < 0: # <<<<<<<<<<<<<<
34470 * completion._cleanup()
34471 * raise make_ex(ret, "error appending object %s" % object_name)
34472 */
34473 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
34474 if (__pyx_t_7) {
34475
34476 /* "rados.pyx":2416
34477 * _to_append, size)
34478 * if ret < 0:
34479 * completion._cleanup() # <<<<<<<<<<<<<<
34480 * raise make_ex(ret, "error appending object %s" % object_name)
34481 * return completion
34482 */
34483 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__34483; goto __pyx_L1_error;}
34484 __Pyx_GOTREF(__pyx_t_2);
34485 __pyx_t_5 = NULL((void*)0);
34486 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
34487 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
34488 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
34489 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
34490 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
34491 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34492 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34493 }
34494 }
34495 if (__pyx_t_5) {
34496 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__34496; goto __pyx_L1_error;}
34497 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
34498 } else {
34499 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__34499; goto __pyx_L1_error;}
34500 }
34501 __Pyx_GOTREF(__pyx_t_1);
34502 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34503 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34504
34505 /* "rados.pyx":2417
34506 * if ret < 0:
34507 * completion._cleanup()
34508 * raise make_ex(ret, "error appending object %s" % object_name) # <<<<<<<<<<<<<<
34509 * return completion
34510 *
34511 */
34512 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__34512; goto __pyx_L1_error;}
34513 __Pyx_GOTREF(__pyx_t_1);
34514 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_error_appending_object_s, __pyx_v_object_name)PyString_Format(__pyx_kp_s_error_appending_object_s, __pyx_v_object_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__34514; goto __pyx_L1_error;}
34515 __Pyx_GOTREF(__pyx_t_2);
34516 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__34516; goto __pyx_L1_error;}
34517 __Pyx_GOTREF(__pyx_t_5);
34518 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34519 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34520 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
34521 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
34522 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__34522; goto __pyx_L1_error;}
34523
34524 /* "rados.pyx":2415
34525 * completion.rados_comp,
34526 * _to_append, size)
34527 * if ret < 0: # <<<<<<<<<<<<<<
34528 * completion._cleanup()
34529 * raise make_ex(ret, "error appending object %s" % object_name)
34530 */
34531 }
34532
34533 /* "rados.pyx":2418
34534 * completion._cleanup()
34535 * raise make_ex(ret, "error appending object %s" % object_name)
34536 * return completion # <<<<<<<<<<<<<<
34537 *
34538 * def aio_flush(self):
34539 */
34540 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
34541 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
34542 __pyx_r = ((PyObject *)__pyx_v_completion);
34543 goto __pyx_L0;
34544
34545 /* "rados.pyx":2379
34546 * @requires(('object_name', str_type), ('to_append', bytes), ('oncomplete', opt(Callable)),
34547 * ('onsafe', opt(Callable)))
34548 * def aio_append(self, object_name, to_append, oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
34549 * """
34550 * Asynchronously append data to an object
34551 */
34552
34553 /* function exit code */
34554 __pyx_L1_error:;
34555 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
34556 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
34557 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
34558 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
34559 __Pyx_AddTraceback("rados.Ioctx.aio_append", __pyx_clineno, __pyx_lineno, __pyx_filename);
34560 __pyx_r = NULL((void*)0);
34561 __pyx_L0:;
34562 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
34563 __Pyx_XDECREF(__pyx_v_object_name)do { if ((__pyx_v_object_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_object_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_object_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_object_name
)))); } while (0); } while (0)
;
34564 __Pyx_XGIVEREF(__pyx_r);
34565 __Pyx_RefNannyFinishContext();
34566 return __pyx_r;
34567}
34568
34569/* "rados.pyx":2420
34570 * return completion
34571 *
34572 * def aio_flush(self): # <<<<<<<<<<<<<<
34573 * """
34574 * Block until all pending writes in an io context are safe
34575 */
34576
34577/* Python wrapper */
34578static PyObject *__pyx_pw_5rados_5Ioctx_21aio_flush(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
34579static char __pyx_doc_5rados_5Ioctx_20aio_flush[] = "Ioctx.aio_flush(self)\n\n Block until all pending writes in an io context are safe\n\n :raises: :class:`Error`\n ";
34580static PyObject *__pyx_pw_5rados_5Ioctx_21aio_flush(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
34581 PyObject *__pyx_r = 0;
34582 __Pyx_RefNannyDeclarations
34583 __Pyx_RefNannySetupContext("aio_flush (wrapper)", 0);
34584 __pyx_r = __pyx_pf_5rados_5Ioctx_20aio_flush(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
34585
34586 /* function exit code */
34587 __Pyx_RefNannyFinishContext();
34588 return __pyx_r;
34589}
34590
34591static PyObject *__pyx_pf_5rados_5Ioctx_20aio_flush(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
34592 int __pyx_v_ret;
34593 PyObject *__pyx_r = NULL((void*)0);
34594 __Pyx_RefNannyDeclarations
34595 int __pyx_t_1;
34596 PyObject *__pyx_t_2 = NULL((void*)0);
34597 PyObject *__pyx_t_3 = NULL((void*)0);
34598 int __pyx_lineno = 0;
34599 const char *__pyx_filename = NULL((void*)0);
34600 int __pyx_clineno = 0;
34601 __Pyx_RefNannySetupContext("aio_flush", 0);
34602
34603 /* "rados.pyx":2426
34604 * :raises: :class:`Error`
34605 * """
34606 * with nogil: # <<<<<<<<<<<<<<
34607 * ret = rados_aio_flush(self.io)
34608 * if ret < 0:
34609 */
34610 {
34611 #ifdef WITH_THREAD1
34612 PyThreadState *_save;
34613 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
34614 #endif
34615 /*try:*/ {
34616
34617 /* "rados.pyx":2427
34618 * """
34619 * with nogil:
34620 * ret = rados_aio_flush(self.io) # <<<<<<<<<<<<<<
34621 * if ret < 0:
34622 * raise make_ex(ret, "error flushing")
34623 */
34624 __pyx_v_ret = rados_aio_flush(__pyx_v_self->io);
34625 }
34626
34627 /* "rados.pyx":2426
34628 * :raises: :class:`Error`
34629 * """
34630 * with nogil: # <<<<<<<<<<<<<<
34631 * ret = rados_aio_flush(self.io)
34632 * if ret < 0:
34633 */
34634 /*finally:*/ {
34635 /*normal exit:*/{
34636 #ifdef WITH_THREAD1
34637 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
34638 #endif
34639 goto __pyx_L5;
34640 }
34641 __pyx_L5:;
34642 }
34643 }
34644
34645 /* "rados.pyx":2428
34646 * with nogil:
34647 * ret = rados_aio_flush(self.io)
34648 * if ret < 0: # <<<<<<<<<<<<<<
34649 * raise make_ex(ret, "error flushing")
34650 *
34651 */
34652 __pyx_t_1 = ((__pyx_v_ret < 0) != 0);
34653 if (__pyx_t_1) {
34654
34655 /* "rados.pyx":2429
34656 * ret = rados_aio_flush(self.io)
34657 * if ret < 0:
34658 * raise make_ex(ret, "error flushing") # <<<<<<<<<<<<<<
34659 *
34660 * @requires(('object_name', str_type), ('length', int), ('offset', int),
34661 */
34662 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2429; __pyx_clineno = __LINE__34662; goto __pyx_L1_error;}
34663 __Pyx_GOTREF(__pyx_t_2);
34664 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_flushing); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2429; __pyx_clineno = __LINE__34664; goto __pyx_L1_error;}
34665 __Pyx_GOTREF(__pyx_t_3);
34666 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34667 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
34668 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
34669 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2429; __pyx_clineno = __LINE__34669; goto __pyx_L1_error;}
34670
34671 /* "rados.pyx":2428
34672 * with nogil:
34673 * ret = rados_aio_flush(self.io)
34674 * if ret < 0: # <<<<<<<<<<<<<<
34675 * raise make_ex(ret, "error flushing")
34676 *
34677 */
34678 }
34679
34680 /* "rados.pyx":2420
34681 * return completion
34682 *
34683 * def aio_flush(self): # <<<<<<<<<<<<<<
34684 * """
34685 * Block until all pending writes in an io context are safe
34686 */
34687
34688 /* function exit code */
34689 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
34690 goto __pyx_L0;
34691 __pyx_L1_error:;
34692 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
34693 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
34694 __Pyx_AddTraceback("rados.Ioctx.aio_flush", __pyx_clineno, __pyx_lineno, __pyx_filename);
34695 __pyx_r = NULL((void*)0);
34696 __pyx_L0:;
34697 __Pyx_XGIVEREF(__pyx_r);
34698 __Pyx_RefNannyFinishContext();
34699 return __pyx_r;
34700}
34701
34702/* "rados.pyx":2433
34703 * @requires(('object_name', str_type), ('length', int), ('offset', int),
34704 * ('oncomplete', opt(Callable)))
34705 * def aio_read(self, object_name, length, offset, oncomplete): # <<<<<<<<<<<<<<
34706 * """
34707 * Asynchronously read data from an object
34708 */
34709
34710/* Python wrapper */
34711static PyObject *__pyx_pw_5rados_5Ioctx_23aio_read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
34712static char __pyx_doc_5rados_5Ioctx_22aio_read[] = "Ioctx.aio_read(self, object_name, length, offset, oncomplete)\n\n Asynchronously read data from an object\n\n oncomplete will be called with the returned read value as\n well as the completion:\n\n oncomplete(completion, data_read)\n\n :param object_name: name of the object to read from\n :type object_name: str\n :param length: the number of bytes to read\n :type length: int\n :param offset: byte offset in the object to begin reading from\n :type offset: int\n :param oncomplete: what to do when the read is complete\n :type oncomplete: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
34713static PyObject *__pyx_pw_5rados_5Ioctx_23aio_read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
34714 PyObject *__pyx_v_object_name = 0;
34715 PyObject *__pyx_v_length = 0;
34716 PyObject *__pyx_v_offset = 0;
34717 PyObject *__pyx_v_oncomplete = 0;
34718 int __pyx_lineno = 0;
34719 const char *__pyx_filename = NULL((void*)0);
34720 int __pyx_clineno = 0;
34721 PyObject *__pyx_r = 0;
34722 __Pyx_RefNannyDeclarations
34723 __Pyx_RefNannySetupContext("aio_read (wrapper)", 0);
34724 {
34725 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object_name,&__pyx_n_s_length,&__pyx_n_s_offset,&__pyx_n_s_oncomplete,0};
34726 PyObject* values[4] = {0,0,0,0};
34727 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
34728 Py_ssize_t kw_args;
34729 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
34730 switch (pos_args) {
34731 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
34732 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
34733 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
34734 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
34735 case 0: break;
34736 default: goto __pyx_L5_argtuple_error;
34737 }
34738 kw_args = PyDict_Size(__pyx_kwds);
34739 switch (pos_args) {
34740 case 0:
34741 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name
)) != 0), 1)
) kw_args--;
34742 else goto __pyx_L5_argtuple_error;
34743 case 1:
34744 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length
)) != 0), 1)
) kw_args--;
34745 else {
34746 __Pyx_RaiseArgtupleInvalid("aio_read", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__34746; goto __pyx_L3_error;}
34747 }
34748 case 2:
34749 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset
)) != 0), 1)
) kw_args--;
34750 else {
34751 __Pyx_RaiseArgtupleInvalid("aio_read", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__34751; goto __pyx_L3_error;}
34752 }
34753 case 3:
34754 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete
)) != 0), 1)
) kw_args--;
34755 else {
34756 __Pyx_RaiseArgtupleInvalid("aio_read", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__34756; goto __pyx_L3_error;}
34757 }
34758 }
34759 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
34760 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aio_read") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "aio_read") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__34760; goto __pyx_L3_error;}
34761 }
34762 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 4) {
34763 goto __pyx_L5_argtuple_error;
34764 } else {
34765 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
34766 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
34767 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
34768 values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
34769 }
34770 __pyx_v_object_name = values[0];
34771 __pyx_v_length = values[1];
34772 __pyx_v_offset = values[2];
34773 __pyx_v_oncomplete = values[3];
34774 }
34775 goto __pyx_L4_argument_unpacking_done;
34776 __pyx_L5_argtuple_error:;
34777 __Pyx_RaiseArgtupleInvalid("aio_read", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__34777; goto __pyx_L3_error;}
34778 __pyx_L3_error:;
34779 __Pyx_AddTraceback("rados.Ioctx.aio_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
34780 __Pyx_RefNannyFinishContext();
34781 return NULL((void*)0);
34782 __pyx_L4_argument_unpacking_done:;
34783 __pyx_r = __pyx_pf_5rados_5Ioctx_22aio_read(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_length, __pyx_v_offset, __pyx_v_oncomplete);
34784
34785 /* function exit code */
34786 __Pyx_RefNannyFinishContext();
34787 return __pyx_r;
34788}
34789
34790/* "rados.pyx":2465
34791 * size_t _length = length
34792 *
34793 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
34794 * cdef Completion _completion_v = completion_v
34795 * return_value = _completion_v.get_return_value()
34796 */
34797
34798/* Python wrapper */
34799static PyObject *__pyx_pw_5rados_5Ioctx_8aio_read_1oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /*proto*/
34800static PyMethodDef __pyx_mdef_5rados_5Ioctx_8aio_read_1oncomplete_ = {"oncomplete_", (PyCFunction)__pyx_pw_5rados_5Ioctx_8aio_read_1oncomplete_, METH_O0x0008, 0};
34801static PyObject *__pyx_pw_5rados_5Ioctx_8aio_read_1oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
34802 PyObject *__pyx_r = 0;
34803 __Pyx_RefNannyDeclarations
34804 __Pyx_RefNannySetupContext("oncomplete_ (wrapper)", 0);
34805 __pyx_r = __pyx_pf_5rados_5Ioctx_8aio_read_oncomplete_(__pyx_self, ((PyObject *)__pyx_v_completion_v));
34806
34807 /* function exit code */
34808 __Pyx_RefNannyFinishContext();
34809 return __pyx_r;
34810}
34811
34812static PyObject *__pyx_pf_5rados_5Ioctx_8aio_read_oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
34813 struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *__pyx_cur_scope;
34814 struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *__pyx_outer_scope;
34815 struct __pyx_obj_5rados_Completion *__pyx_v__completion_v = 0;
34816 PyObject *__pyx_v_return_value = NULL((void*)0);
34817 PyObject *__pyx_r = NULL((void*)0);
34818 __Pyx_RefNannyDeclarations
34819 PyObject *__pyx_t_1 = NULL((void*)0);
34820 PyObject *__pyx_t_2 = NULL((void*)0);
34821 PyObject *__pyx_t_3 = NULL((void*)0);
34822 int __pyx_t_4;
34823 int __pyx_t_5;
34824 Py_ssize_t __pyx_t_6;
34825 int __pyx_t_7;
34826 PyObject *__pyx_t_8 = NULL((void*)0);
34827 PyObject *__pyx_t_9 = NULL((void*)0);
34828 int __pyx_lineno = 0;
34829 const char *__pyx_filename = NULL((void*)0);
34830 int __pyx_clineno = 0;
34831 __Pyx_RefNannySetupContext("oncomplete_", 0);
34832 __pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
34833 __pyx_cur_scope = __pyx_outer_scope;
34834
34835 /* "rados.pyx":2466
34836 *
34837 * def oncomplete_(completion_v):
34838 * cdef Completion _completion_v = completion_v # <<<<<<<<<<<<<<
34839 * return_value = _completion_v.get_return_value()
34840 * if return_value > 0 and return_value != length:
34841 */
34842 if (!(likely(((__pyx_v_completion_v) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_completion_v, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_v_completion_v) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_completion_v
, __pyx_ptype_5rados_Completion)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2466; __pyx_clineno = __LINE__34842; goto __pyx_L1_error;}
34843 __pyx_t_1 = __pyx_v_completion_v;
34844 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
34845 __pyx_v__completion_v = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
34846 __pyx_t_1 = 0;
34847
34848 /* "rados.pyx":2467
34849 * def oncomplete_(completion_v):
34850 * cdef Completion _completion_v = completion_v
34851 * return_value = _completion_v.get_return_value() # <<<<<<<<<<<<<<
34852 * if return_value > 0 and return_value != length:
34853 * _PyBytes_Resize(&_completion_v.buf, return_value)
34854 */
34855 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v__completion_v), __pyx_n_s_get_return_value); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2467; __pyx_clineno = __LINE__34855; goto __pyx_L1_error;}
34856 __Pyx_GOTREF(__pyx_t_2);
34857 __pyx_t_3 = NULL((void*)0);
34858 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
34859 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
34860 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
34861 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
34862 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
34863 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34864 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34865 }
34866 }
34867 if (__pyx_t_3) {
34868 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2467; __pyx_clineno = __LINE__34868; goto __pyx_L1_error;}
34869 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
34870 } else {
34871 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2467; __pyx_clineno = __LINE__34871; goto __pyx_L1_error;}
34872 }
34873 __Pyx_GOTREF(__pyx_t_1);
34874 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
34875 __pyx_v_return_value = __pyx_t_1;
34876 __pyx_t_1 = 0;
34877
34878 /* "rados.pyx":2468
34879 * cdef Completion _completion_v = completion_v
34880 * return_value = _completion_v.get_return_value()
34881 * if return_value > 0 and return_value != length: # <<<<<<<<<<<<<<
34882 * _PyBytes_Resize(&_completion_v.buf, return_value)
34883 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
34884 */
34885 __pyx_t_1 = PyObject_RichCompare(__pyx_v_return_value, __pyx_int_0, Py_GT4); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__34885; goto __pyx_L1_error;}
34886 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)__builtin_expect(!!(__pyx_t_5 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__34886; goto __pyx_L1_error;}
34887 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34888 if (__pyx_t_5) {
34889 } else {
34890 __pyx_t_4 = __pyx_t_5;
34891 goto __pyx_L4_bool_binop_done;
34892 }
34893 if (unlikely(!__pyx_cur_scope->__pyx_v_length)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_length), 0)) { __Pyx_RaiseClosureNameError("length"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__34893; goto __pyx_L1_error;} }
34894 __pyx_t_1 = PyObject_RichCompare(__pyx_v_return_value, __pyx_cur_scope->__pyx_v_length, Py_NE3); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__34894; goto __pyx_L1_error;}
34895 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)__builtin_expect(!!(__pyx_t_5 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2468; __pyx_clineno = __LINE__34895; goto __pyx_L1_error;}
34896 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
34897 __pyx_t_4 = __pyx_t_5;
34898 __pyx_L4_bool_binop_done:;
34899 if (__pyx_t_4) {
34900
34901 /* "rados.pyx":2469
34902 * return_value = _completion_v.get_return_value()
34903 * if return_value > 0 and return_value != length:
34904 * _PyBytes_Resize(&_completion_v.buf, return_value) # <<<<<<<<<<<<<<
34905 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
34906 *
34907 */
34908 __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_return_value); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2469; __pyx_clineno = __LINE__34908; goto __pyx_L1_error;}
34909 __pyx_t_7 = _PyBytes_Resize_PyString_Resize((&__pyx_v__completion_v->buf), __pyx_t_6); if (unlikely(__pyx_t_7 == -1)__builtin_expect(!!(__pyx_t_7 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2469; __pyx_clineno = __LINE__34909; goto __pyx_L1_error;}
34910
34911 /* "rados.pyx":2468
34912 * cdef Completion _completion_v = completion_v
34913 * return_value = _completion_v.get_return_value()
34914 * if return_value > 0 and return_value != length: # <<<<<<<<<<<<<<
34915 * _PyBytes_Resize(&_completion_v.buf, return_value)
34916 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
34917 */
34918 }
34919
34920 /* "rados.pyx":2470
34921 * if return_value > 0 and return_value != length:
34922 * _PyBytes_Resize(&_completion_v.buf, return_value)
34923 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None) # <<<<<<<<<<<<<<
34924 *
34925 * completion = self.__get_completion(oncomplete_, None)
34926 */
34927 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
34928 if (unlikely(!__pyx_cur_scope->__pyx_v_oncomplete)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_oncomplete),
0)
) { __Pyx_RaiseClosureNameError("oncomplete"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2470; __pyx_clineno = __LINE__34928; goto __pyx_L1_error;} }
34929 __pyx_t_3 = PyObject_RichCompare(__pyx_v_return_value, __pyx_int_0, Py_GE5); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2470; __pyx_clineno = __LINE__34929; goto __pyx_L1_error;}
34930 __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)__builtin_expect(!!(__pyx_t_4 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2470; __pyx_clineno = __LINE__34930; goto __pyx_L1_error;}
34931 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
34932 if (__pyx_t_4) {
34933 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v->buf))( ((PyObject*)(((PyObject *)__pyx_v__completion_v->buf)))->
ob_refcnt++)
;
34934 __pyx_t_2 = ((PyObject *)__pyx_v__completion_v->buf);
34935 } else {
34936 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
34937 __pyx_t_2 = Py_None(&_Py_NoneStruct);
34938 }
34939 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_oncomplete)( ((PyObject*)(__pyx_cur_scope->__pyx_v_oncomplete))->ob_refcnt
++)
;
34940 __pyx_t_3 = __pyx_cur_scope->__pyx_v_oncomplete; __pyx_t_8 = NULL((void*)0);
34941 __pyx_t_6 = 0;
34942 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
34943 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
34944 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
34945 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
34946 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
34947 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
34948 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
34949 __pyx_t_6 = 1;
34950 }
34951 }
34952 __pyx_t_9 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2470; __pyx_clineno = __LINE__34952; goto __pyx_L1_error;}
34953 __Pyx_GOTREF(__pyx_t_9);
34954 if (__pyx_t_8) {
34955 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
34956 }
34957 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v))( ((PyObject*)(((PyObject *)__pyx_v__completion_v)))->ob_refcnt
++)
;
34958 __Pyx_GIVEREF(((PyObject *)__pyx_v__completion_v));
34959 PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_6, ((PyObject *)__pyx_v__completion_v))(((PyTupleObject *)(__pyx_t_9))->ob_item[0+__pyx_t_6] = ((
PyObject *)__pyx_v__completion_v))
;
34960 __Pyx_GIVEREF(__pyx_t_2);
34961 PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_6, __pyx_t_2)(((PyTupleObject *)(__pyx_t_9))->ob_item[1+__pyx_t_6] = __pyx_t_2
)
;
34962 __pyx_t_2 = 0;
34963 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2470; __pyx_clineno = __LINE__34963; goto __pyx_L1_error;}
34964 __Pyx_GOTREF(__pyx_t_1);
34965 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
34966 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
34967 __pyx_r = __pyx_t_1;
34968 __pyx_t_1 = 0;
34969 goto __pyx_L0;
34970
34971 /* "rados.pyx":2465
34972 * size_t _length = length
34973 *
34974 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
34975 * cdef Completion _completion_v = completion_v
34976 * return_value = _completion_v.get_return_value()
34977 */
34978
34979 /* function exit code */
34980 __pyx_L1_error:;
34981 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
34982 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
34983 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
34984 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
34985 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
34986 __Pyx_AddTraceback("rados.Ioctx.aio_read.oncomplete_", __pyx_clineno, __pyx_lineno, __pyx_filename);
34987 __pyx_r = NULL((void*)0);
34988 __pyx_L0:;
34989 __Pyx_XDECREF((PyObject *)__pyx_v__completion_v)do { if (((PyObject *)__pyx_v__completion_v) == ((void*)0)) ;
else do { if ( --((PyObject*)((PyObject *)__pyx_v__completion_v
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
(PyObject *)__pyx_v__completion_v)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)((PyObject *)__pyx_v__completion_v
)))); } while (0); } while (0)
;
34990 __Pyx_XDECREF(__pyx_v_return_value)do { if ((__pyx_v_return_value) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_return_value))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_return_value)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_return_value
)))); } while (0); } while (0)
;
34991 __Pyx_XGIVEREF(__pyx_r);
34992 __Pyx_RefNannyFinishContext();
34993 return __pyx_r;
34994}
34995
34996/* "rados.pyx":2433
34997 * @requires(('object_name', str_type), ('length', int), ('offset', int),
34998 * ('oncomplete', opt(Callable)))
34999 * def aio_read(self, object_name, length, offset, oncomplete): # <<<<<<<<<<<<<<
35000 * """
35001 * Asynchronously read data from an object
35002 */
35003
35004static PyObject *__pyx_pf_5rados_5Ioctx_22aio_read(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_length, PyObject *__pyx_v_offset, PyObject *__pyx_v_oncomplete) {
35005 struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *__pyx_cur_scope;
35006 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
35007 char *__pyx_v__object_name;
35008 uint64_t __pyx_v__offset;
35009 size_t __pyx_v__length;
35010 PyObject *__pyx_v_oncomplete_ = 0;
35011 char *__pyx_v_ret_buf;
35012 int __pyx_v_ret;
35013 PyObject *__pyx_r = NULL((void*)0);
35014 __Pyx_RefNannyDeclarations
35015 PyObject *__pyx_t_1 = NULL((void*)0);
35016 PyObject *__pyx_t_2 = NULL((void*)0);
35017 PyObject *__pyx_t_3 = NULL((void*)0);
35018 Py_ssize_t __pyx_t_4;
35019 PyObject *__pyx_t_5 = NULL((void*)0);
35020 char *__pyx_t_6;
35021 uint64_t __pyx_t_7;
35022 size_t __pyx_t_8;
35023 PyObject *__pyx_t_9;
35024 int __pyx_t_10;
35025 int __pyx_lineno = 0;
35026 const char *__pyx_filename = NULL((void*)0);
35027 int __pyx_clineno = 0;
35028 __Pyx_RefNannySetupContext("aio_read", 0);
35029 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *)__pyx_tp_new_5rados___pyx_scope_struct_10_aio_read(__pyx_ptype_5rados___pyx_scope_struct_10_aio_read, __pyx_empty_tuple, NULL((void*)0));
35030 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
35031 __Pyx_RefNannyFinishContext();
35032 return NULL((void*)0);
35033 }
35034 __Pyx_GOTREF(__pyx_cur_scope);
35035 __pyx_cur_scope->__pyx_v_length = __pyx_v_length;
35036 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_length)( ((PyObject*)(__pyx_cur_scope->__pyx_v_length))->ob_refcnt
++)
;
35037 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_length);
35038 __pyx_cur_scope->__pyx_v_oncomplete = __pyx_v_oncomplete;
35039 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_oncomplete)( ((PyObject*)(__pyx_cur_scope->__pyx_v_oncomplete))->ob_refcnt
++)
;
35040 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_oncomplete);
35041 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
35042
35043 /* "rados.pyx":2455
35044 * """
35045 *
35046 * object_name = cstr(object_name, 'object_name') # <<<<<<<<<<<<<<
35047 *
35048 * cdef:
35049 */
35050 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2455; __pyx_clineno = __LINE__35050; goto __pyx_L1_error;}
35051 __Pyx_GOTREF(__pyx_t_2);
35052 __pyx_t_3 = NULL((void*)0);
35053 __pyx_t_4 = 0;
35054 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
35055 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35056 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
35057 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35058 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
35059 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35060 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35061 __pyx_t_4 = 1;
35062 }
35063 }
35064 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2455; __pyx_clineno = __LINE__35064; goto __pyx_L1_error;}
35065 __Pyx_GOTREF(__pyx_t_5);
35066 if (__pyx_t_3) {
35067 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
35068 }
35069 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
35070 __Pyx_GIVEREF(__pyx_v_object_name);
35071 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_object_name
)
;
35072 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
35073 __Pyx_GIVEREF(__pyx_n_s_object_name);
35074 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_object_name
)
;
35075 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2455; __pyx_clineno = __LINE__35075; goto __pyx_L1_error;}
35076 __Pyx_GOTREF(__pyx_t_1);
35077 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
35078 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35079 __Pyx_DECREF_SET(__pyx_v_object_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_object_name; __pyx_v_object_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
35080 __pyx_t_1 = 0;
35081
35082 /* "rados.pyx":2459
35083 * cdef:
35084 * Completion completion
35085 * char* _object_name = object_name # <<<<<<<<<<<<<<
35086 * uint64_t _offset = offset
35087 *
35088 */
35089 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_object_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2459; __pyx_clineno = __LINE__35089; goto __pyx_L1_error;}
35090 __pyx_v__object_name = __pyx_t_6;
35091
35092 /* "rados.pyx":2460
35093 * Completion completion
35094 * char* _object_name = object_name
35095 * uint64_t _offset = offset # <<<<<<<<<<<<<<
35096 *
35097 * char *ref_buf
35098 */
35099 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_offset); if (unlikely((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2460; __pyx_clineno = __LINE__35099; goto __pyx_L1_error;}
35100 __pyx_v__offset = __pyx_t_7;
35101
35102 /* "rados.pyx":2463
35103 *
35104 * char *ref_buf
35105 * size_t _length = length # <<<<<<<<<<<<<<
35106 *
35107 * def oncomplete_(completion_v):
35108 */
35109 __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_length); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_8 == (size_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2463; __pyx_clineno = __LINE__35109; goto __pyx_L1_error;}
35110 __pyx_v__length = __pyx_t_8;
35111
35112 /* "rados.pyx":2465
35113 * size_t _length = length
35114 *
35115 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
35116 * cdef Completion _completion_v = completion_v
35117 * return_value = _completion_v.get_return_value()
35118 */
35119 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5Ioctx_8aio_read_1oncomplete_, 0, __pyx_n_s_aio_read_locals_oncomplete, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__55))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5Ioctx_8aio_read_1oncomplete_
, 0, __pyx_n_s_aio_read_locals_oncomplete, ((PyObject*)__pyx_cur_scope
), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__55))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2465; __pyx_clineno = __LINE__35119; goto __pyx_L1_error;}
35120 __Pyx_GOTREF(__pyx_t_1);
35121 __pyx_v_oncomplete_ = __pyx_t_1;
35122 __pyx_t_1 = 0;
35123
35124 /* "rados.pyx":2472
35125 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35126 *
35127 * completion = self.__get_completion(oncomplete_, None) # <<<<<<<<<<<<<<
35128 * completion.buf = PyBytes_FromStringAndSize(NULL, length)
35129 * ret_buf = PyBytes_AsString(completion.buf)
35130 */
35131 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2472; __pyx_clineno = __LINE__35131; goto __pyx_L1_error;}
35132 __Pyx_GOTREF(__pyx_t_2);
35133 __pyx_t_5 = NULL((void*)0);
35134 __pyx_t_4 = 0;
35135 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
35136 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35137 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
35138 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35139 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
35140 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35141 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35142 __pyx_t_4 = 1;
35143 }
35144 }
35145 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2472; __pyx_clineno = __LINE__35145; goto __pyx_L1_error;}
35146 __Pyx_GOTREF(__pyx_t_3);
35147 if (__pyx_t_5) {
35148 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
35149 }
35150 __Pyx_INCREF(__pyx_v_oncomplete_)( ((PyObject*)(__pyx_v_oncomplete_))->ob_refcnt++);
35151 __Pyx_GIVEREF(__pyx_v_oncomplete_);
35152 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete_)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete_
)
;
35153 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
35154 __Pyx_GIVEREF(Py_None);
35155 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, Py_None)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = (&
_Py_NoneStruct))
;
35156 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2472; __pyx_clineno = __LINE__35156; goto __pyx_L1_error;}
35157 __Pyx_GOTREF(__pyx_t_1);
35158 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
35159 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35160 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2472; __pyx_clineno = __LINE__35160; goto __pyx_L1_error;}
35161 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
35162 __pyx_t_1 = 0;
35163
35164 /* "rados.pyx":2473
35165 *
35166 * completion = self.__get_completion(oncomplete_, None)
35167 * completion.buf = PyBytes_FromStringAndSize(NULL, length) # <<<<<<<<<<<<<<
35168 * ret_buf = PyBytes_AsString(completion.buf)
35169 * self.__track_completion(completion)
35170 */
35171 __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_cur_scope->__pyx_v_length); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2473; __pyx_clineno = __LINE__35171; goto __pyx_L1_error;}
35172 __pyx_t_9 = PyBytes_FromStringAndSizePyString_FromStringAndSize(NULL((void*)0), __pyx_t_4); if (unlikely(__pyx_t_9 == NULL)__builtin_expect(!!(__pyx_t_9 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2473; __pyx_clineno = __LINE__35172; goto __pyx_L1_error;}
35173 __pyx_v_completion->buf = __pyx_t_9;
35174
35175 /* "rados.pyx":2474
35176 * completion = self.__get_completion(oncomplete_, None)
35177 * completion.buf = PyBytes_FromStringAndSize(NULL, length)
35178 * ret_buf = PyBytes_AsString(completion.buf) # <<<<<<<<<<<<<<
35179 * self.__track_completion(completion)
35180 * with nogil:
35181 */
35182 __pyx_t_6 = PyBytes_AsStringPyString_AsString(__pyx_v_completion->buf); if (unlikely(__pyx_t_6 == NULL)__builtin_expect(!!(__pyx_t_6 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2474; __pyx_clineno = __LINE__35182; goto __pyx_L1_error;}
35183 __pyx_v_ret_buf = __pyx_t_6;
35184
35185 /* "rados.pyx":2475
35186 * completion.buf = PyBytes_FromStringAndSize(NULL, length)
35187 * ret_buf = PyBytes_AsString(completion.buf)
35188 * self.__track_completion(completion) # <<<<<<<<<<<<<<
35189 * with nogil:
35190 * ret = rados_aio_read(self.io, _object_name, completion.rados_comp,
35191 */
35192 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__35192; goto __pyx_L1_error;}
35193 __Pyx_GOTREF(__pyx_t_2);
35194 __pyx_t_3 = NULL((void*)0);
35195 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
35196 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35197 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
35198 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35199 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
35200 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35201 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35202 }
35203 }
35204 if (!__pyx_t_3) {
35205 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__35205; goto __pyx_L1_error;}
35206 __Pyx_GOTREF(__pyx_t_1);
35207 } else {
35208 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__35208; goto __pyx_L1_error;}
35209 __Pyx_GOTREF(__pyx_t_5);
35210 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
35211 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
35212 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
35213 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
35214 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__35214; goto __pyx_L1_error;}
35215 __Pyx_GOTREF(__pyx_t_1);
35216 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
35217 }
35218 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35219 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
35220
35221 /* "rados.pyx":2476
35222 * ret_buf = PyBytes_AsString(completion.buf)
35223 * self.__track_completion(completion)
35224 * with nogil: # <<<<<<<<<<<<<<
35225 * ret = rados_aio_read(self.io, _object_name, completion.rados_comp,
35226 * ret_buf, _length, _offset)
35227 */
35228 {
35229 #ifdef WITH_THREAD1
35230 PyThreadState *_save;
35231 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
35232 #endif
35233 /*try:*/ {
35234
35235 /* "rados.pyx":2477
35236 * self.__track_completion(completion)
35237 * with nogil:
35238 * ret = rados_aio_read(self.io, _object_name, completion.rados_comp, # <<<<<<<<<<<<<<
35239 * ret_buf, _length, _offset)
35240 * if ret < 0:
35241 */
35242 __pyx_v_ret = rados_aio_read(__pyx_v_self->io, __pyx_v__object_name, __pyx_v_completion->rados_comp, __pyx_v_ret_buf, __pyx_v__length, __pyx_v__offset);
35243 }
35244
35245 /* "rados.pyx":2476
35246 * ret_buf = PyBytes_AsString(completion.buf)
35247 * self.__track_completion(completion)
35248 * with nogil: # <<<<<<<<<<<<<<
35249 * ret = rados_aio_read(self.io, _object_name, completion.rados_comp,
35250 * ret_buf, _length, _offset)
35251 */
35252 /*finally:*/ {
35253 /*normal exit:*/{
35254 #ifdef WITH_THREAD1
35255 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
35256 #endif
35257 goto __pyx_L5;
35258 }
35259 __pyx_L5:;
35260 }
35261 }
35262
35263 /* "rados.pyx":2479
35264 * ret = rados_aio_read(self.io, _object_name, completion.rados_comp,
35265 * ret_buf, _length, _offset)
35266 * if ret < 0: # <<<<<<<<<<<<<<
35267 * completion._cleanup()
35268 * raise make_ex(ret, "error reading %s" % object_name)
35269 */
35270 __pyx_t_10 = ((__pyx_v_ret < 0) != 0);
35271 if (__pyx_t_10) {
35272
35273 /* "rados.pyx":2480
35274 * ret_buf, _length, _offset)
35275 * if ret < 0:
35276 * completion._cleanup() # <<<<<<<<<<<<<<
35277 * raise make_ex(ret, "error reading %s" % object_name)
35278 * return completion
35279 */
35280 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__35280; goto __pyx_L1_error;}
35281 __Pyx_GOTREF(__pyx_t_2);
35282 __pyx_t_5 = NULL((void*)0);
35283 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
35284 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35285 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
35286 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35287 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
35288 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35289 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35290 }
35291 }
35292 if (__pyx_t_5) {
35293 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__35293; goto __pyx_L1_error;}
35294 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
35295 } else {
35296 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__35296; goto __pyx_L1_error;}
35297 }
35298 __Pyx_GOTREF(__pyx_t_1);
35299 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35300 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
35301
35302 /* "rados.pyx":2481
35303 * if ret < 0:
35304 * completion._cleanup()
35305 * raise make_ex(ret, "error reading %s" % object_name) # <<<<<<<<<<<<<<
35306 * return completion
35307 *
35308 */
35309 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2481; __pyx_clineno = __LINE__35309; goto __pyx_L1_error;}
35310 __Pyx_GOTREF(__pyx_t_1);
35311 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_error_reading_s, __pyx_v_object_name)PyString_Format(__pyx_kp_s_error_reading_s, __pyx_v_object_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2481; __pyx_clineno = __LINE__35311; goto __pyx_L1_error;}
35312 __Pyx_GOTREF(__pyx_t_2);
35313 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2481; __pyx_clineno = __LINE__35313; goto __pyx_L1_error;}
35314 __Pyx_GOTREF(__pyx_t_5);
35315 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
35316 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35317 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
35318 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
35319 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2481; __pyx_clineno = __LINE__35319; goto __pyx_L1_error;}
35320
35321 /* "rados.pyx":2479
35322 * ret = rados_aio_read(self.io, _object_name, completion.rados_comp,
35323 * ret_buf, _length, _offset)
35324 * if ret < 0: # <<<<<<<<<<<<<<
35325 * completion._cleanup()
35326 * raise make_ex(ret, "error reading %s" % object_name)
35327 */
35328 }
35329
35330 /* "rados.pyx":2482
35331 * completion._cleanup()
35332 * raise make_ex(ret, "error reading %s" % object_name)
35333 * return completion # <<<<<<<<<<<<<<
35334 *
35335 * @requires(('object_name', str_type), ('cls', str_type), ('method', str_type),
35336 */
35337 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
35338 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
35339 __pyx_r = ((PyObject *)__pyx_v_completion);
35340 goto __pyx_L0;
35341
35342 /* "rados.pyx":2433
35343 * @requires(('object_name', str_type), ('length', int), ('offset', int),
35344 * ('oncomplete', opt(Callable)))
35345 * def aio_read(self, object_name, length, offset, oncomplete): # <<<<<<<<<<<<<<
35346 * """
35347 * Asynchronously read data from an object
35348 */
35349
35350 /* function exit code */
35351 __pyx_L1_error:;
35352 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
35353 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
35354 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
35355 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
35356 __Pyx_AddTraceback("rados.Ioctx.aio_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
35357 __pyx_r = NULL((void*)0);
35358 __pyx_L0:;
35359 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
35360 __Pyx_XDECREF(__pyx_v_oncomplete_)do { if ((__pyx_v_oncomplete_) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_oncomplete_))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_oncomplete_)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_oncomplete_
)))); } while (0); } while (0)
;
35361 __Pyx_XDECREF(__pyx_v_object_name)do { if ((__pyx_v_object_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_object_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_object_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_object_name
)))); } while (0); } while (0)
;
35362 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
35363 __Pyx_XGIVEREF(__pyx_r);
35364 __Pyx_RefNannyFinishContext();
35365 return __pyx_r;
35366}
35367
35368/* "rados.pyx":2487
35369 * ('data', bytes), ('length', int),
35370 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
35371 * def aio_execute(self, object_name, cls, method, data, # <<<<<<<<<<<<<<
35372 * length=8192, oncomplete=None, onsafe=None):
35373 * """
35374 */
35375
35376/* Python wrapper */
35377static PyObject *__pyx_pw_5rados_5Ioctx_25aio_execute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
35378static char __pyx_doc_5rados_5Ioctx_24aio_execute[] = "Ioctx.aio_execute(self, object_name, cls, method, data, length=8192, oncomplete=None, onsafe=None)\n\n Asynchronously execute an OSD class method on an object.\n\n oncomplete and onsafe will be called with the data returned from\n the plugin as well as the completion:\n\n oncomplete(completion, data)\n onsafe(completion, data)\n\n :param object_name: name of the object\n :type object_name: str\n :param cls: name of the object class\n :type cls: str\n :param method: name of the method\n :type method: str\n :param data: input data\n :type data: bytes\n :param length: size of output buffer in bytes (default=8192)\n :type length: int\n :param oncomplete: what to do when the execution is complete\n :type oncomplete: completion\n :param onsafe: what to do when the execution is safe and complete\n :type onsafe: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
35379static PyObject *__pyx_pw_5rados_5Ioctx_25aio_execute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
35380 PyObject *__pyx_v_object_name = 0;
35381 PyObject *__pyx_v_cls = 0;
35382 PyObject *__pyx_v_method = 0;
35383 PyObject *__pyx_v_data = 0;
35384 PyObject *__pyx_v_length = 0;
35385 PyObject *__pyx_v_oncomplete = 0;
35386 PyObject *__pyx_v_onsafe = 0;
35387 int __pyx_lineno = 0;
35388 const char *__pyx_filename = NULL((void*)0);
35389 int __pyx_clineno = 0;
35390 PyObject *__pyx_r = 0;
35391 __Pyx_RefNannyDeclarations
35392 __Pyx_RefNannySetupContext("aio_execute (wrapper)", 0);
35393 {
35394 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object_name,&__pyx_n_s_cls,&__pyx_n_s_method,&__pyx_n_s_data,&__pyx_n_s_length,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,0};
35395 PyObject* values[7] = {0,0,0,0,0,0,0};
35396 values[4] = ((PyObject *)__pyx_int_8192);
35397
35398 /* "rados.pyx":2488
35399 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
35400 * def aio_execute(self, object_name, cls, method, data,
35401 * length=8192, oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
35402 * """
35403 * Asynchronously execute an OSD class method on an object.
35404 */
35405 values[5] = ((PyObject *)Py_None(&_Py_NoneStruct));
35406 values[6] = ((PyObject *)Py_None(&_Py_NoneStruct));
35407 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
35408 Py_ssize_t kw_args;
35409 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
35410 switch (pos_args) {
35411 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6)(((PyTupleObject *)(__pyx_args))->ob_item[6]);
35412 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
35413 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
35414 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
35415 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
35416 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
35417 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
35418 case 0: break;
35419 default: goto __pyx_L5_argtuple_error;
35420 }
35421 kw_args = PyDict_Size(__pyx_kwds);
35422 switch (pos_args) {
35423 case 0:
35424 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name
)) != 0), 1)
) kw_args--;
35425 else goto __pyx_L5_argtuple_error;
35426 case 1:
35427 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cls)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cls
)) != 0), 1)
) kw_args--;
35428 else {
35429 __Pyx_RaiseArgtupleInvalid("aio_execute", 0, 4, 7, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__35429; goto __pyx_L3_error;}
35430 }
35431 case 2:
35432 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method
)) != 0), 1)
) kw_args--;
35433 else {
35434 __Pyx_RaiseArgtupleInvalid("aio_execute", 0, 4, 7, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__35434; goto __pyx_L3_error;}
35435 }
35436 case 3:
35437 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data
)) != 0), 1)
) kw_args--;
35438 else {
35439 __Pyx_RaiseArgtupleInvalid("aio_execute", 0, 4, 7, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__35439; goto __pyx_L3_error;}
35440 }
35441 case 4:
35442 if (kw_args > 0) {
35443 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length);
35444 if (value) { values[4] = value; kw_args--; }
35445 }
35446 case 5:
35447 if (kw_args > 0) {
35448 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete);
35449 if (value) { values[5] = value; kw_args--; }
35450 }
35451 case 6:
35452 if (kw_args > 0) {
35453 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe);
35454 if (value) { values[6] = value; kw_args--; }
35455 }
35456 }
35457 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
35458 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aio_execute") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "aio_execute") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__35458; goto __pyx_L3_error;}
35459 }
35460 } else {
35461 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
35462 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6)(((PyTupleObject *)(__pyx_args))->ob_item[6]);
35463 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
35464 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
35465 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
35466 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
35467 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
35468 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
35469 break;
35470 default: goto __pyx_L5_argtuple_error;
35471 }
35472 }
35473 __pyx_v_object_name = values[0];
35474 __pyx_v_cls = values[1];
35475 __pyx_v_method = values[2];
35476 __pyx_v_data = values[3];
35477 __pyx_v_length = values[4];
35478 __pyx_v_oncomplete = values[5];
35479 __pyx_v_onsafe = values[6];
35480 }
35481 goto __pyx_L4_argument_unpacking_done;
35482 __pyx_L5_argtuple_error:;
35483 __Pyx_RaiseArgtupleInvalid("aio_execute", 0, 4, 7, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__35483; goto __pyx_L3_error;}
35484 __pyx_L3_error:;
35485 __Pyx_AddTraceback("rados.Ioctx.aio_execute", __pyx_clineno, __pyx_lineno, __pyx_filename);
35486 __Pyx_RefNannyFinishContext();
35487 return NULL((void*)0);
35488 __pyx_L4_argument_unpacking_done:;
35489 __pyx_r = __pyx_pf_5rados_5Ioctx_24aio_execute(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_cls, __pyx_v_method, __pyx_v_data, __pyx_v_length, __pyx_v_oncomplete, __pyx_v_onsafe);
35490
35491 /* "rados.pyx":2487
35492 * ('data', bytes), ('length', int),
35493 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
35494 * def aio_execute(self, object_name, cls, method, data, # <<<<<<<<<<<<<<
35495 * length=8192, oncomplete=None, onsafe=None):
35496 * """
35497 */
35498
35499 /* function exit code */
35500 __Pyx_RefNannyFinishContext();
35501 return __pyx_r;
35502}
35503
35504/* "rados.pyx":2531
35505 * size_t _length = length
35506 *
35507 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
35508 * cdef Completion _completion_v = completion_v
35509 * return_value = _completion_v.get_return_value()
35510 */
35511
35512/* Python wrapper */
35513static PyObject *__pyx_pw_5rados_5Ioctx_11aio_execute_1oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /*proto*/
35514static PyMethodDef __pyx_mdef_5rados_5Ioctx_11aio_execute_1oncomplete_ = {"oncomplete_", (PyCFunction)__pyx_pw_5rados_5Ioctx_11aio_execute_1oncomplete_, METH_O0x0008, 0};
35515static PyObject *__pyx_pw_5rados_5Ioctx_11aio_execute_1oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
35516 PyObject *__pyx_r = 0;
35517 __Pyx_RefNannyDeclarations
35518 __Pyx_RefNannySetupContext("oncomplete_ (wrapper)", 0);
35519 __pyx_r = __pyx_pf_5rados_5Ioctx_11aio_execute_oncomplete_(__pyx_self, ((PyObject *)__pyx_v_completion_v));
35520
35521 /* function exit code */
35522 __Pyx_RefNannyFinishContext();
35523 return __pyx_r;
35524}
35525
35526static PyObject *__pyx_pf_5rados_5Ioctx_11aio_execute_oncomplete_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
35527 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *__pyx_cur_scope;
35528 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *__pyx_outer_scope;
35529 struct __pyx_obj_5rados_Completion *__pyx_v__completion_v = 0;
35530 PyObject *__pyx_v_return_value = NULL((void*)0);
35531 PyObject *__pyx_r = NULL((void*)0);
35532 __Pyx_RefNannyDeclarations
35533 PyObject *__pyx_t_1 = NULL((void*)0);
35534 PyObject *__pyx_t_2 = NULL((void*)0);
35535 PyObject *__pyx_t_3 = NULL((void*)0);
35536 int __pyx_t_4;
35537 int __pyx_t_5;
35538 Py_ssize_t __pyx_t_6;
35539 int __pyx_t_7;
35540 PyObject *__pyx_t_8 = NULL((void*)0);
35541 PyObject *__pyx_t_9 = NULL((void*)0);
35542 int __pyx_lineno = 0;
35543 const char *__pyx_filename = NULL((void*)0);
35544 int __pyx_clineno = 0;
35545 __Pyx_RefNannySetupContext("oncomplete_", 0);
35546 __pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
35547 __pyx_cur_scope = __pyx_outer_scope;
35548
35549 /* "rados.pyx":2532
35550 *
35551 * def oncomplete_(completion_v):
35552 * cdef Completion _completion_v = completion_v # <<<<<<<<<<<<<<
35553 * return_value = _completion_v.get_return_value()
35554 * if return_value > 0 and return_value != length:
35555 */
35556 if (!(likely(((__pyx_v_completion_v) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_completion_v, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_v_completion_v) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_completion_v
, __pyx_ptype_5rados_Completion)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2532; __pyx_clineno = __LINE__35556; goto __pyx_L1_error;}
35557 __pyx_t_1 = __pyx_v_completion_v;
35558 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
35559 __pyx_v__completion_v = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
35560 __pyx_t_1 = 0;
35561
35562 /* "rados.pyx":2533
35563 * def oncomplete_(completion_v):
35564 * cdef Completion _completion_v = completion_v
35565 * return_value = _completion_v.get_return_value() # <<<<<<<<<<<<<<
35566 * if return_value > 0 and return_value != length:
35567 * _PyBytes_Resize(&_completion_v.buf, return_value)
35568 */
35569 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v__completion_v), __pyx_n_s_get_return_value); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2533; __pyx_clineno = __LINE__35569; goto __pyx_L1_error;}
35570 __Pyx_GOTREF(__pyx_t_2);
35571 __pyx_t_3 = NULL((void*)0);
35572 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
35573 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35574 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
35575 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35576 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
35577 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35578 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35579 }
35580 }
35581 if (__pyx_t_3) {
35582 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2533; __pyx_clineno = __LINE__35582; goto __pyx_L1_error;}
35583 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
35584 } else {
35585 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2533; __pyx_clineno = __LINE__35585; goto __pyx_L1_error;}
35586 }
35587 __Pyx_GOTREF(__pyx_t_1);
35588 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35589 __pyx_v_return_value = __pyx_t_1;
35590 __pyx_t_1 = 0;
35591
35592 /* "rados.pyx":2534
35593 * cdef Completion _completion_v = completion_v
35594 * return_value = _completion_v.get_return_value()
35595 * if return_value > 0 and return_value != length: # <<<<<<<<<<<<<<
35596 * _PyBytes_Resize(&_completion_v.buf, return_value)
35597 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35598 */
35599 __pyx_t_1 = PyObject_RichCompare(__pyx_v_return_value, __pyx_int_0, Py_GT4); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__35599; goto __pyx_L1_error;}
35600 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)__builtin_expect(!!(__pyx_t_5 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__35600; goto __pyx_L1_error;}
35601 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
35602 if (__pyx_t_5) {
35603 } else {
35604 __pyx_t_4 = __pyx_t_5;
35605 goto __pyx_L4_bool_binop_done;
35606 }
35607 if (unlikely(!__pyx_cur_scope->__pyx_v_length)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_length), 0)) { __Pyx_RaiseClosureNameError("length"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__35607; goto __pyx_L1_error;} }
35608 __pyx_t_1 = PyObject_RichCompare(__pyx_v_return_value, __pyx_cur_scope->__pyx_v_length, Py_NE3); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__35608; goto __pyx_L1_error;}
35609 __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)__builtin_expect(!!(__pyx_t_5 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__35609; goto __pyx_L1_error;}
35610 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
35611 __pyx_t_4 = __pyx_t_5;
35612 __pyx_L4_bool_binop_done:;
35613 if (__pyx_t_4) {
35614
35615 /* "rados.pyx":2535
35616 * return_value = _completion_v.get_return_value()
35617 * if return_value > 0 and return_value != length:
35618 * _PyBytes_Resize(&_completion_v.buf, return_value) # <<<<<<<<<<<<<<
35619 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35620 *
35621 */
35622 __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_return_value); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__35622; goto __pyx_L1_error;}
35623 __pyx_t_7 = _PyBytes_Resize_PyString_Resize((&__pyx_v__completion_v->buf), __pyx_t_6); if (unlikely(__pyx_t_7 == -1)__builtin_expect(!!(__pyx_t_7 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__35623; goto __pyx_L1_error;}
35624
35625 /* "rados.pyx":2534
35626 * cdef Completion _completion_v = completion_v
35627 * return_value = _completion_v.get_return_value()
35628 * if return_value > 0 and return_value != length: # <<<<<<<<<<<<<<
35629 * _PyBytes_Resize(&_completion_v.buf, return_value)
35630 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35631 */
35632 }
35633
35634 /* "rados.pyx":2536
35635 * if return_value > 0 and return_value != length:
35636 * _PyBytes_Resize(&_completion_v.buf, return_value)
35637 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None) # <<<<<<<<<<<<<<
35638 *
35639 * def onsafe_(completion_v):
35640 */
35641 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
35642 if (unlikely(!__pyx_cur_scope->__pyx_v_oncomplete)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_oncomplete),
0)
) { __Pyx_RaiseClosureNameError("oncomplete"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2536; __pyx_clineno = __LINE__35642; goto __pyx_L1_error;} }
35643 __pyx_t_3 = PyObject_RichCompare(__pyx_v_return_value, __pyx_int_0, Py_GE5); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2536; __pyx_clineno = __LINE__35643; goto __pyx_L1_error;}
35644 __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)__builtin_expect(!!(__pyx_t_4 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2536; __pyx_clineno = __LINE__35644; goto __pyx_L1_error;}
35645 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
35646 if (__pyx_t_4) {
35647 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v->buf))( ((PyObject*)(((PyObject *)__pyx_v__completion_v->buf)))->
ob_refcnt++)
;
35648 __pyx_t_2 = ((PyObject *)__pyx_v__completion_v->buf);
35649 } else {
35650 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
35651 __pyx_t_2 = Py_None(&_Py_NoneStruct);
35652 }
35653 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_oncomplete)( ((PyObject*)(__pyx_cur_scope->__pyx_v_oncomplete))->ob_refcnt
++)
;
35654 __pyx_t_3 = __pyx_cur_scope->__pyx_v_oncomplete; __pyx_t_8 = NULL((void*)0);
35655 __pyx_t_6 = 0;
35656 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
35657 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
35658 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
35659 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
35660 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
35661 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35662 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35663 __pyx_t_6 = 1;
35664 }
35665 }
35666 __pyx_t_9 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2536; __pyx_clineno = __LINE__35666; goto __pyx_L1_error;}
35667 __Pyx_GOTREF(__pyx_t_9);
35668 if (__pyx_t_8) {
35669 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
35670 }
35671 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v))( ((PyObject*)(((PyObject *)__pyx_v__completion_v)))->ob_refcnt
++)
;
35672 __Pyx_GIVEREF(((PyObject *)__pyx_v__completion_v));
35673 PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_6, ((PyObject *)__pyx_v__completion_v))(((PyTupleObject *)(__pyx_t_9))->ob_item[0+__pyx_t_6] = ((
PyObject *)__pyx_v__completion_v))
;
35674 __Pyx_GIVEREF(__pyx_t_2);
35675 PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_6, __pyx_t_2)(((PyTupleObject *)(__pyx_t_9))->ob_item[1+__pyx_t_6] = __pyx_t_2
)
;
35676 __pyx_t_2 = 0;
35677 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2536; __pyx_clineno = __LINE__35677; goto __pyx_L1_error;}
35678 __Pyx_GOTREF(__pyx_t_1);
35679 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
35680 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
35681 __pyx_r = __pyx_t_1;
35682 __pyx_t_1 = 0;
35683 goto __pyx_L0;
35684
35685 /* "rados.pyx":2531
35686 * size_t _length = length
35687 *
35688 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
35689 * cdef Completion _completion_v = completion_v
35690 * return_value = _completion_v.get_return_value()
35691 */
35692
35693 /* function exit code */
35694 __pyx_L1_error:;
35695 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
35696 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
35697 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
35698 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
35699 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
35700 __Pyx_AddTraceback("rados.Ioctx.aio_execute.oncomplete_", __pyx_clineno, __pyx_lineno, __pyx_filename);
35701 __pyx_r = NULL((void*)0);
35702 __pyx_L0:;
35703 __Pyx_XDECREF((PyObject *)__pyx_v__completion_v)do { if (((PyObject *)__pyx_v__completion_v) == ((void*)0)) ;
else do { if ( --((PyObject*)((PyObject *)__pyx_v__completion_v
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
(PyObject *)__pyx_v__completion_v)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)((PyObject *)__pyx_v__completion_v
)))); } while (0); } while (0)
;
35704 __Pyx_XDECREF(__pyx_v_return_value)do { if ((__pyx_v_return_value) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_return_value))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_return_value)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_return_value
)))); } while (0); } while (0)
;
35705 __Pyx_XGIVEREF(__pyx_r);
35706 __Pyx_RefNannyFinishContext();
35707 return __pyx_r;
35708}
35709
35710/* "rados.pyx":2538
35711 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35712 *
35713 * def onsafe_(completion_v): # <<<<<<<<<<<<<<
35714 * cdef Completion _completion_v = completion_v
35715 * return_value = _completion_v.get_return_value()
35716 */
35717
35718/* Python wrapper */
35719static PyObject *__pyx_pw_5rados_5Ioctx_11aio_execute_3onsafe_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v); /*proto*/
35720static PyMethodDef __pyx_mdef_5rados_5Ioctx_11aio_execute_3onsafe_ = {"onsafe_", (PyCFunction)__pyx_pw_5rados_5Ioctx_11aio_execute_3onsafe_, METH_O0x0008, 0};
35721static PyObject *__pyx_pw_5rados_5Ioctx_11aio_execute_3onsafe_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
35722 PyObject *__pyx_r = 0;
35723 __Pyx_RefNannyDeclarations
35724 __Pyx_RefNannySetupContext("onsafe_ (wrapper)", 0);
35725 __pyx_r = __pyx_pf_5rados_5Ioctx_11aio_execute_2onsafe_(__pyx_self, ((PyObject *)__pyx_v_completion_v));
35726
35727 /* function exit code */
35728 __Pyx_RefNannyFinishContext();
35729 return __pyx_r;
35730}
35731
35732static PyObject *__pyx_pf_5rados_5Ioctx_11aio_execute_2onsafe_(PyObject *__pyx_self, PyObject *__pyx_v_completion_v) {
35733 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *__pyx_cur_scope;
35734 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *__pyx_outer_scope;
35735 struct __pyx_obj_5rados_Completion *__pyx_v__completion_v = 0;
35736 PyObject *__pyx_v_return_value = NULL((void*)0);
35737 PyObject *__pyx_r = NULL((void*)0);
35738 __Pyx_RefNannyDeclarations
35739 PyObject *__pyx_t_1 = NULL((void*)0);
35740 PyObject *__pyx_t_2 = NULL((void*)0);
35741 PyObject *__pyx_t_3 = NULL((void*)0);
35742 int __pyx_t_4;
35743 PyObject *__pyx_t_5 = NULL((void*)0);
35744 Py_ssize_t __pyx_t_6;
35745 PyObject *__pyx_t_7 = NULL((void*)0);
35746 int __pyx_lineno = 0;
35747 const char *__pyx_filename = NULL((void*)0);
35748 int __pyx_clineno = 0;
35749 __Pyx_RefNannySetupContext("onsafe_", 0);
35750 __pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
35751 __pyx_cur_scope = __pyx_outer_scope;
35752
35753 /* "rados.pyx":2539
35754 *
35755 * def onsafe_(completion_v):
35756 * cdef Completion _completion_v = completion_v # <<<<<<<<<<<<<<
35757 * return_value = _completion_v.get_return_value()
35758 * return onsafe(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35759 */
35760 if (!(likely(((__pyx_v_completion_v) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_completion_v, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_v_completion_v) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_completion_v
, __pyx_ptype_5rados_Completion)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2539; __pyx_clineno = __LINE__35760; goto __pyx_L1_error;}
35761 __pyx_t_1 = __pyx_v_completion_v;
35762 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
35763 __pyx_v__completion_v = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
35764 __pyx_t_1 = 0;
35765
35766 /* "rados.pyx":2540
35767 * def onsafe_(completion_v):
35768 * cdef Completion _completion_v = completion_v
35769 * return_value = _completion_v.get_return_value() # <<<<<<<<<<<<<<
35770 * return onsafe(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35771 *
35772 */
35773 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v__completion_v), __pyx_n_s_get_return_value); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2540; __pyx_clineno = __LINE__35773; goto __pyx_L1_error;}
35774 __Pyx_GOTREF(__pyx_t_2);
35775 __pyx_t_3 = NULL((void*)0);
35776 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
35777 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35778 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
35779 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35780 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
35781 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35782 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35783 }
35784 }
35785 if (__pyx_t_3) {
35786 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2540; __pyx_clineno = __LINE__35786; goto __pyx_L1_error;}
35787 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
35788 } else {
35789 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2540; __pyx_clineno = __LINE__35789; goto __pyx_L1_error;}
35790 }
35791 __Pyx_GOTREF(__pyx_t_1);
35792 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35793 __pyx_v_return_value = __pyx_t_1;
35794 __pyx_t_1 = 0;
35795
35796 /* "rados.pyx":2541
35797 * cdef Completion _completion_v = completion_v
35798 * return_value = _completion_v.get_return_value()
35799 * return onsafe(_completion_v, <object>_completion_v.buf if return_value >= 0 else None) # <<<<<<<<<<<<<<
35800 *
35801 * completion = self.__get_completion(oncomplete_ if oncomplete else None, onsafe_ if onsafe else None)
35802 */
35803 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
35804 if (unlikely(!__pyx_cur_scope->__pyx_v_onsafe)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_onsafe), 0)) { __Pyx_RaiseClosureNameError("onsafe"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__35804; goto __pyx_L1_error;} }
35805 __pyx_t_3 = PyObject_RichCompare(__pyx_v_return_value, __pyx_int_0, Py_GE5); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__35805; goto __pyx_L1_error;}
35806 __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)__builtin_expect(!!(__pyx_t_4 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__35806; goto __pyx_L1_error;}
35807 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
35808 if (__pyx_t_4) {
35809 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v->buf))( ((PyObject*)(((PyObject *)__pyx_v__completion_v->buf)))->
ob_refcnt++)
;
35810 __pyx_t_2 = ((PyObject *)__pyx_v__completion_v->buf);
35811 } else {
35812 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
35813 __pyx_t_2 = Py_None(&_Py_NoneStruct);
35814 }
35815 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_onsafe)( ((PyObject*)(__pyx_cur_scope->__pyx_v_onsafe))->ob_refcnt
++)
;
35816 __pyx_t_3 = __pyx_cur_scope->__pyx_v_onsafe; __pyx_t_5 = NULL((void*)0);
35817 __pyx_t_6 = 0;
35818 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
35819 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
35820 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
35821 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
35822 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
35823 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35824 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35825 __pyx_t_6 = 1;
35826 }
35827 }
35828 __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__35828; goto __pyx_L1_error;}
35829 __Pyx_GOTREF(__pyx_t_7);
35830 if (__pyx_t_5) {
35831 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
35832 }
35833 __Pyx_INCREF(((PyObject *)__pyx_v__completion_v))( ((PyObject*)(((PyObject *)__pyx_v__completion_v)))->ob_refcnt
++)
;
35834 __Pyx_GIVEREF(((PyObject *)__pyx_v__completion_v));
35835 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, ((PyObject *)__pyx_v__completion_v))(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = ((
PyObject *)__pyx_v__completion_v))
;
35836 __Pyx_GIVEREF(__pyx_t_2);
35837 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_2)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_t_2
)
;
35838 __pyx_t_2 = 0;
35839 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2541; __pyx_clineno = __LINE__35839; goto __pyx_L1_error;}
35840 __Pyx_GOTREF(__pyx_t_1);
35841 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
35842 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
35843 __pyx_r = __pyx_t_1;
35844 __pyx_t_1 = 0;
35845 goto __pyx_L0;
35846
35847 /* "rados.pyx":2538
35848 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
35849 *
35850 * def onsafe_(completion_v): # <<<<<<<<<<<<<<
35851 * cdef Completion _completion_v = completion_v
35852 * return_value = _completion_v.get_return_value()
35853 */
35854
35855 /* function exit code */
35856 __pyx_L1_error:;
35857 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
35858 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
35859 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
35860 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
35861 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
35862 __Pyx_AddTraceback("rados.Ioctx.aio_execute.onsafe_", __pyx_clineno, __pyx_lineno, __pyx_filename);
35863 __pyx_r = NULL((void*)0);
35864 __pyx_L0:;
35865 __Pyx_XDECREF((PyObject *)__pyx_v__completion_v)do { if (((PyObject *)__pyx_v__completion_v) == ((void*)0)) ;
else do { if ( --((PyObject*)((PyObject *)__pyx_v__completion_v
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
(PyObject *)__pyx_v__completion_v)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)((PyObject *)__pyx_v__completion_v
)))); } while (0); } while (0)
;
35866 __Pyx_XDECREF(__pyx_v_return_value)do { if ((__pyx_v_return_value) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_return_value))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_return_value)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_return_value
)))); } while (0); } while (0)
;
35867 __Pyx_XGIVEREF(__pyx_r);
35868 __Pyx_RefNannyFinishContext();
35869 return __pyx_r;
35870}
35871
35872/* "rados.pyx":2487
35873 * ('data', bytes), ('length', int),
35874 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
35875 * def aio_execute(self, object_name, cls, method, data, # <<<<<<<<<<<<<<
35876 * length=8192, oncomplete=None, onsafe=None):
35877 * """
35878 */
35879
35880static PyObject *__pyx_pf_5rados_5Ioctx_24aio_execute(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_cls, PyObject *__pyx_v_method, PyObject *__pyx_v_data, PyObject *__pyx_v_length, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe) {
35881 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *__pyx_cur_scope;
35882 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
35883 char *__pyx_v__object_name;
35884 char *__pyx_v__cls;
35885 char *__pyx_v__method;
35886 char *__pyx_v__data;
35887 size_t __pyx_v__data_len;
35888 size_t __pyx_v__length;
35889 PyObject *__pyx_v_oncomplete_ = 0;
35890 PyObject *__pyx_v_onsafe_ = 0;
35891 char *__pyx_v_ret_buf;
35892 int __pyx_v_ret;
35893 PyObject *__pyx_r = NULL((void*)0);
35894 __Pyx_RefNannyDeclarations
35895 PyObject *__pyx_t_1 = NULL((void*)0);
35896 PyObject *__pyx_t_2 = NULL((void*)0);
35897 PyObject *__pyx_t_3 = NULL((void*)0);
35898 Py_ssize_t __pyx_t_4;
35899 PyObject *__pyx_t_5 = NULL((void*)0);
35900 char *__pyx_t_6;
35901 size_t __pyx_t_7;
35902 int __pyx_t_8;
35903 PyObject *__pyx_t_9 = NULL((void*)0);
35904 PyObject *__pyx_t_10 = NULL((void*)0);
35905 PyObject *__pyx_t_11;
35906 int __pyx_lineno = 0;
35907 const char *__pyx_filename = NULL((void*)0);
35908 int __pyx_clineno = 0;
35909 __Pyx_RefNannySetupContext("aio_execute", 0);
35910 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *)__pyx_tp_new_5rados___pyx_scope_struct_11_aio_execute(__pyx_ptype_5rados___pyx_scope_struct_11_aio_execute, __pyx_empty_tuple, NULL((void*)0));
35911 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
35912 __Pyx_RefNannyFinishContext();
35913 return NULL((void*)0);
35914 }
35915 __Pyx_GOTREF(__pyx_cur_scope);
35916 __pyx_cur_scope->__pyx_v_length = __pyx_v_length;
35917 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_length)( ((PyObject*)(__pyx_cur_scope->__pyx_v_length))->ob_refcnt
++)
;
35918 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_length);
35919 __pyx_cur_scope->__pyx_v_oncomplete = __pyx_v_oncomplete;
35920 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_oncomplete)( ((PyObject*)(__pyx_cur_scope->__pyx_v_oncomplete))->ob_refcnt
++)
;
35921 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_oncomplete);
35922 __pyx_cur_scope->__pyx_v_onsafe = __pyx_v_onsafe;
35923 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_onsafe)( ((PyObject*)(__pyx_cur_scope->__pyx_v_onsafe))->ob_refcnt
++)
;
35924 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_onsafe);
35925 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
35926 __Pyx_INCREF(__pyx_v_cls)( ((PyObject*)(__pyx_v_cls))->ob_refcnt++);
35927 __Pyx_INCREF(__pyx_v_method)( ((PyObject*)(__pyx_v_method))->ob_refcnt++);
35928
35929 /* "rados.pyx":2517
35930 * """
35931 *
35932 * object_name = cstr(object_name, 'object_name') # <<<<<<<<<<<<<<
35933 * cls = cstr(cls, 'cls')
35934 * method = cstr(method, 'method')
35935 */
35936 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2517; __pyx_clineno = __LINE__35936; goto __pyx_L1_error;}
35937 __Pyx_GOTREF(__pyx_t_2);
35938 __pyx_t_3 = NULL((void*)0);
35939 __pyx_t_4 = 0;
35940 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
35941 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35942 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
35943 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35944 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
35945 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35946 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35947 __pyx_t_4 = 1;
35948 }
35949 }
35950 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2517; __pyx_clineno = __LINE__35950; goto __pyx_L1_error;}
35951 __Pyx_GOTREF(__pyx_t_5);
35952 if (__pyx_t_3) {
35953 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
35954 }
35955 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
35956 __Pyx_GIVEREF(__pyx_v_object_name);
35957 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_object_name
)
;
35958 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
35959 __Pyx_GIVEREF(__pyx_n_s_object_name);
35960 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_object_name
)
;
35961 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2517; __pyx_clineno = __LINE__35961; goto __pyx_L1_error;}
35962 __Pyx_GOTREF(__pyx_t_1);
35963 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
35964 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
35965 __Pyx_DECREF_SET(__pyx_v_object_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_object_name; __pyx_v_object_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
35966 __pyx_t_1 = 0;
35967
35968 /* "rados.pyx":2518
35969 *
35970 * object_name = cstr(object_name, 'object_name')
35971 * cls = cstr(cls, 'cls') # <<<<<<<<<<<<<<
35972 * method = cstr(method, 'method')
35973 * cdef:
35974 */
35975 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2518; __pyx_clineno = __LINE__35975; goto __pyx_L1_error;}
35976 __Pyx_GOTREF(__pyx_t_2);
35977 __pyx_t_5 = NULL((void*)0);
35978 __pyx_t_4 = 0;
35979 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
35980 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
35981 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
35982 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
35983 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
35984 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
35985 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
35986 __pyx_t_4 = 1;
35987 }
35988 }
35989 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2518; __pyx_clineno = __LINE__35989; goto __pyx_L1_error;}
35990 __Pyx_GOTREF(__pyx_t_3);
35991 if (__pyx_t_5) {
35992 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
35993 }
35994 __Pyx_INCREF(__pyx_v_cls)( ((PyObject*)(__pyx_v_cls))->ob_refcnt++);
35995 __Pyx_GIVEREF(__pyx_v_cls);
35996 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_cls)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_cls
)
;
35997 __Pyx_INCREF(__pyx_n_s_cls)( ((PyObject*)(__pyx_n_s_cls))->ob_refcnt++);
35998 __Pyx_GIVEREF(__pyx_n_s_cls);
35999 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_cls)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_cls
)
;
36000 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2518; __pyx_clineno = __LINE__36000; goto __pyx_L1_error;}
36001 __Pyx_GOTREF(__pyx_t_1);
36002 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
36003 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36004 __Pyx_DECREF_SET(__pyx_v_cls, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_cls; __pyx_v_cls = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36005 __pyx_t_1 = 0;
36006
36007 /* "rados.pyx":2519
36008 * object_name = cstr(object_name, 'object_name')
36009 * cls = cstr(cls, 'cls')
36010 * method = cstr(method, 'method') # <<<<<<<<<<<<<<
36011 * cdef:
36012 * Completion completion
36013 */
36014 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2519; __pyx_clineno = __LINE__36014; goto __pyx_L1_error;}
36015 __Pyx_GOTREF(__pyx_t_2);
36016 __pyx_t_3 = NULL((void*)0);
36017 __pyx_t_4 = 0;
36018 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
36019 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36020 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
36021 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36022 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
36023 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36024 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36025 __pyx_t_4 = 1;
36026 }
36027 }
36028 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2519; __pyx_clineno = __LINE__36028; goto __pyx_L1_error;}
36029 __Pyx_GOTREF(__pyx_t_5);
36030 if (__pyx_t_3) {
36031 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
36032 }
36033 __Pyx_INCREF(__pyx_v_method)( ((PyObject*)(__pyx_v_method))->ob_refcnt++);
36034 __Pyx_GIVEREF(__pyx_v_method);
36035 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_method)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_method
)
;
36036 __Pyx_INCREF(__pyx_n_s_method)( ((PyObject*)(__pyx_n_s_method))->ob_refcnt++);
36037 __Pyx_GIVEREF(__pyx_n_s_method);
36038 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_method)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_method
)
;
36039 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2519; __pyx_clineno = __LINE__36039; goto __pyx_L1_error;}
36040 __Pyx_GOTREF(__pyx_t_1);
36041 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
36042 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36043 __Pyx_DECREF_SET(__pyx_v_method, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_method; __pyx_v_method
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
36044 __pyx_t_1 = 0;
36045
36046 /* "rados.pyx":2522
36047 * cdef:
36048 * Completion completion
36049 * char *_object_name = object_name # <<<<<<<<<<<<<<
36050 * char *_cls = cls
36051 * char *_method = method
36052 */
36053 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_object_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2522; __pyx_clineno = __LINE__36053; goto __pyx_L1_error;}
36054 __pyx_v__object_name = __pyx_t_6;
36055
36056 /* "rados.pyx":2523
36057 * Completion completion
36058 * char *_object_name = object_name
36059 * char *_cls = cls # <<<<<<<<<<<<<<
36060 * char *_method = method
36061 * char *_data = data
36062 */
36063 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_cls); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2523; __pyx_clineno = __LINE__36063; goto __pyx_L1_error;}
36064 __pyx_v__cls = __pyx_t_6;
36065
36066 /* "rados.pyx":2524
36067 * char *_object_name = object_name
36068 * char *_cls = cls
36069 * char *_method = method # <<<<<<<<<<<<<<
36070 * char *_data = data
36071 * size_t _data_len = len(data)
36072 */
36073 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_method); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2524; __pyx_clineno = __LINE__36073; goto __pyx_L1_error;}
36074 __pyx_v__method = __pyx_t_6;
36075
36076 /* "rados.pyx":2525
36077 * char *_cls = cls
36078 * char *_method = method
36079 * char *_data = data # <<<<<<<<<<<<<<
36080 * size_t _data_len = len(data)
36081 *
36082 */
36083 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_data); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2525; __pyx_clineno = __LINE__36083; goto __pyx_L1_error;}
36084 __pyx_v__data = __pyx_t_6;
36085
36086 /* "rados.pyx":2526
36087 * char *_method = method
36088 * char *_data = data
36089 * size_t _data_len = len(data) # <<<<<<<<<<<<<<
36090 *
36091 * char *ref_buf
36092 */
36093 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2526; __pyx_clineno = __LINE__36093; goto __pyx_L1_error;}
36094 __pyx_v__data_len = __pyx_t_4;
36095
36096 /* "rados.pyx":2529
36097 *
36098 * char *ref_buf
36099 * size_t _length = length # <<<<<<<<<<<<<<
36100 *
36101 * def oncomplete_(completion_v):
36102 */
36103 __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_cur_scope->__pyx_v_length); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (size_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2529; __pyx_clineno = __LINE__36103; goto __pyx_L1_error;}
36104 __pyx_v__length = __pyx_t_7;
36105
36106 /* "rados.pyx":2531
36107 * size_t _length = length
36108 *
36109 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
36110 * cdef Completion _completion_v = completion_v
36111 * return_value = _completion_v.get_return_value()
36112 */
36113 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5Ioctx_11aio_execute_1oncomplete_, 0, __pyx_n_s_aio_execute_locals_oncomplete, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__57))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5Ioctx_11aio_execute_1oncomplete_
, 0, __pyx_n_s_aio_execute_locals_oncomplete, ((PyObject*)__pyx_cur_scope
), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__57))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__36113; goto __pyx_L1_error;}
36114 __Pyx_GOTREF(__pyx_t_1);
36115 __pyx_v_oncomplete_ = __pyx_t_1;
36116 __pyx_t_1 = 0;
36117
36118 /* "rados.pyx":2538
36119 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
36120 *
36121 * def onsafe_(completion_v): # <<<<<<<<<<<<<<
36122 * cdef Completion _completion_v = completion_v
36123 * return_value = _completion_v.get_return_value()
36124 */
36125 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5Ioctx_11aio_execute_3onsafe_, 0, __pyx_n_s_aio_execute_locals_onsafe, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__59))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5Ioctx_11aio_execute_3onsafe_
, 0, __pyx_n_s_aio_execute_locals_onsafe, ((PyObject*)__pyx_cur_scope
), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__59))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__36125; goto __pyx_L1_error;}
36126 __Pyx_GOTREF(__pyx_t_1);
36127 __pyx_v_onsafe_ = __pyx_t_1;
36128 __pyx_t_1 = 0;
36129
36130 /* "rados.pyx":2543
36131 * return onsafe(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
36132 *
36133 * completion = self.__get_completion(oncomplete_ if oncomplete else None, onsafe_ if onsafe else None) # <<<<<<<<<<<<<<
36134 * completion.buf = PyBytes_FromStringAndSize(NULL, length)
36135 * ret_buf = PyBytes_AsString(completion.buf)
36136 */
36137 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__36137; goto __pyx_L1_error;}
36138 __Pyx_GOTREF(__pyx_t_2);
36139 __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_oncomplete); if (unlikely(__pyx_t_8 < 0)__builtin_expect(!!(__pyx_t_8 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__36139; goto __pyx_L1_error;}
36140 if (__pyx_t_8) {
36141 __Pyx_INCREF(__pyx_v_oncomplete_)( ((PyObject*)(__pyx_v_oncomplete_))->ob_refcnt++);
36142 __pyx_t_5 = __pyx_v_oncomplete_;
36143 } else {
36144 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
36145 __pyx_t_5 = Py_None(&_Py_NoneStruct);
36146 }
36147 __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_onsafe); if (unlikely(__pyx_t_8 < 0)__builtin_expect(!!(__pyx_t_8 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__36147; goto __pyx_L1_error;}
36148 if (__pyx_t_8) {
36149 __Pyx_INCREF(__pyx_v_onsafe_)( ((PyObject*)(__pyx_v_onsafe_))->ob_refcnt++);
36150 __pyx_t_3 = __pyx_v_onsafe_;
36151 } else {
36152 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
36153 __pyx_t_3 = Py_None(&_Py_NoneStruct);
36154 }
36155 __pyx_t_9 = NULL((void*)0);
36156 __pyx_t_4 = 0;
36157 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
36158 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36159 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
36160 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36161 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
36162 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36163 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36164 __pyx_t_4 = 1;
36165 }
36166 }
36167 __pyx_t_10 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__36167; goto __pyx_L1_error;}
36168 __Pyx_GOTREF(__pyx_t_10);
36169 if (__pyx_t_9) {
36170 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_10))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
36171 }
36172 __Pyx_GIVEREF(__pyx_t_5);
36173 PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_t_5)(((PyTupleObject *)(__pyx_t_10))->ob_item[0+__pyx_t_4] = __pyx_t_5
)
;
36174 __Pyx_GIVEREF(__pyx_t_3);
36175 PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_t_3)(((PyTupleObject *)(__pyx_t_10))->ob_item[1+__pyx_t_4] = __pyx_t_3
)
;
36176 __pyx_t_5 = 0;
36177 __pyx_t_3 = 0;
36178 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__36178; goto __pyx_L1_error;}
36179 __Pyx_GOTREF(__pyx_t_1);
36180 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
36181 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36182 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__36182; goto __pyx_L1_error;}
36183 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
36184 __pyx_t_1 = 0;
36185
36186 /* "rados.pyx":2544
36187 *
36188 * completion = self.__get_completion(oncomplete_ if oncomplete else None, onsafe_ if onsafe else None)
36189 * completion.buf = PyBytes_FromStringAndSize(NULL, length) # <<<<<<<<<<<<<<
36190 * ret_buf = PyBytes_AsString(completion.buf)
36191 * self.__track_completion(completion)
36192 */
36193 __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_cur_scope->__pyx_v_length); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2544; __pyx_clineno = __LINE__36193; goto __pyx_L1_error;}
36194 __pyx_t_11 = PyBytes_FromStringAndSizePyString_FromStringAndSize(NULL((void*)0), __pyx_t_4); if (unlikely(__pyx_t_11 == NULL)__builtin_expect(!!(__pyx_t_11 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2544; __pyx_clineno = __LINE__36194; goto __pyx_L1_error;}
36195 __pyx_v_completion->buf = __pyx_t_11;
36196
36197 /* "rados.pyx":2545
36198 * completion = self.__get_completion(oncomplete_ if oncomplete else None, onsafe_ if onsafe else None)
36199 * completion.buf = PyBytes_FromStringAndSize(NULL, length)
36200 * ret_buf = PyBytes_AsString(completion.buf) # <<<<<<<<<<<<<<
36201 * self.__track_completion(completion)
36202 * with nogil:
36203 */
36204 __pyx_t_6 = PyBytes_AsStringPyString_AsString(__pyx_v_completion->buf); if (unlikely(__pyx_t_6 == NULL)__builtin_expect(!!(__pyx_t_6 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__36204; goto __pyx_L1_error;}
36205 __pyx_v_ret_buf = __pyx_t_6;
36206
36207 /* "rados.pyx":2546
36208 * completion.buf = PyBytes_FromStringAndSize(NULL, length)
36209 * ret_buf = PyBytes_AsString(completion.buf)
36210 * self.__track_completion(completion) # <<<<<<<<<<<<<<
36211 * with nogil:
36212 * ret = rados_aio_exec(self.io, _object_name, completion.rados_comp,
36213 */
36214 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__36214; goto __pyx_L1_error;}
36215 __Pyx_GOTREF(__pyx_t_2);
36216 __pyx_t_10 = NULL((void*)0);
36217 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
36218 __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36219 if (likely(__pyx_t_10)__builtin_expect(!!(__pyx_t_10), 1)) {
36220 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36221 __Pyx_INCREF(__pyx_t_10)( ((PyObject*)(__pyx_t_10))->ob_refcnt++);
36222 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36223 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36224 }
36225 }
36226 if (!__pyx_t_10) {
36227 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__36227; goto __pyx_L1_error;}
36228 __Pyx_GOTREF(__pyx_t_1);
36229 } else {
36230 __pyx_t_3 = PyTuple_New(1+1); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__36230; goto __pyx_L1_error;}
36231 __Pyx_GOTREF(__pyx_t_3);
36232 __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_10); __pyx_t_10 = NULL((void*)0);
36233 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
36234 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
36235 PyTuple_SET_ITEM(__pyx_t_3, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_3))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
36236 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__36236; goto __pyx_L1_error;}
36237 __Pyx_GOTREF(__pyx_t_1);
36238 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
36239 }
36240 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36241 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
36242
36243 /* "rados.pyx":2547
36244 * ret_buf = PyBytes_AsString(completion.buf)
36245 * self.__track_completion(completion)
36246 * with nogil: # <<<<<<<<<<<<<<
36247 * ret = rados_aio_exec(self.io, _object_name, completion.rados_comp,
36248 * _cls, _method, _data, _data_len, ret_buf, _length)
36249 */
36250 {
36251 #ifdef WITH_THREAD1
36252 PyThreadState *_save;
36253 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
36254 #endif
36255 /*try:*/ {
36256
36257 /* "rados.pyx":2548
36258 * self.__track_completion(completion)
36259 * with nogil:
36260 * ret = rados_aio_exec(self.io, _object_name, completion.rados_comp, # <<<<<<<<<<<<<<
36261 * _cls, _method, _data, _data_len, ret_buf, _length)
36262 * if ret < 0:
36263 */
36264 __pyx_v_ret = rados_aio_exec(__pyx_v_self->io, __pyx_v__object_name, __pyx_v_completion->rados_comp, __pyx_v__cls, __pyx_v__method, __pyx_v__data, __pyx_v__data_len, __pyx_v_ret_buf, __pyx_v__length);
36265 }
36266
36267 /* "rados.pyx":2547
36268 * ret_buf = PyBytes_AsString(completion.buf)
36269 * self.__track_completion(completion)
36270 * with nogil: # <<<<<<<<<<<<<<
36271 * ret = rados_aio_exec(self.io, _object_name, completion.rados_comp,
36272 * _cls, _method, _data, _data_len, ret_buf, _length)
36273 */
36274 /*finally:*/ {
36275 /*normal exit:*/{
36276 #ifdef WITH_THREAD1
36277 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
36278 #endif
36279 goto __pyx_L5;
36280 }
36281 __pyx_L5:;
36282 }
36283 }
36284
36285 /* "rados.pyx":2550
36286 * ret = rados_aio_exec(self.io, _object_name, completion.rados_comp,
36287 * _cls, _method, _data, _data_len, ret_buf, _length)
36288 * if ret < 0: # <<<<<<<<<<<<<<
36289 * completion._cleanup()
36290 * raise make_ex(ret, "error executing %s::%s on %s" % (cls, method, object_name))
36291 */
36292 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
36293 if (__pyx_t_8) {
36294
36295 /* "rados.pyx":2551
36296 * _cls, _method, _data, _data_len, ret_buf, _length)
36297 * if ret < 0:
36298 * completion._cleanup() # <<<<<<<<<<<<<<
36299 * raise make_ex(ret, "error executing %s::%s on %s" % (cls, method, object_name))
36300 * return completion
36301 */
36302 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2551; __pyx_clineno = __LINE__36302; goto __pyx_L1_error;}
36303 __Pyx_GOTREF(__pyx_t_2);
36304 __pyx_t_3 = NULL((void*)0);
36305 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
36306 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36307 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
36308 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36309 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
36310 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36311 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36312 }
36313 }
36314 if (__pyx_t_3) {
36315 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2551; __pyx_clineno = __LINE__36315; goto __pyx_L1_error;}
36316 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
36317 } else {
36318 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2551; __pyx_clineno = __LINE__36318; goto __pyx_L1_error;}
36319 }
36320 __Pyx_GOTREF(__pyx_t_1);
36321 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36322 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
36323
36324 /* "rados.pyx":2552
36325 * if ret < 0:
36326 * completion._cleanup()
36327 * raise make_ex(ret, "error executing %s::%s on %s" % (cls, method, object_name)) # <<<<<<<<<<<<<<
36328 * return completion
36329 *
36330 */
36331 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__36331; goto __pyx_L1_error;}
36332 __Pyx_GOTREF(__pyx_t_1);
36333 __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__36333; goto __pyx_L1_error;}
36334 __Pyx_GOTREF(__pyx_t_2);
36335 __Pyx_INCREF(__pyx_v_cls)( ((PyObject*)(__pyx_v_cls))->ob_refcnt++);
36336 __Pyx_GIVEREF(__pyx_v_cls);
36337 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_cls)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_cls);
36338 __Pyx_INCREF(__pyx_v_method)( ((PyObject*)(__pyx_v_method))->ob_refcnt++);
36339 __Pyx_GIVEREF(__pyx_v_method);
36340 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_method)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_method
)
;
36341 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
36342 __Pyx_GIVEREF(__pyx_v_object_name);
36343 PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_2))->ob_item[2] = __pyx_v_object_name
)
;
36344 __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_error_executing_s_s_on_s, __pyx_t_2)PyString_Format(__pyx_kp_s_error_executing_s_s_on_s, __pyx_t_2
)
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__36344; goto __pyx_L1_error;}
36345 __Pyx_GOTREF(__pyx_t_3);
36346 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36347 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__36347; goto __pyx_L1_error;}
36348 __Pyx_GOTREF(__pyx_t_2);
36349 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
36350 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
36351 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
36352 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36353 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2552; __pyx_clineno = __LINE__36353; goto __pyx_L1_error;}
36354
36355 /* "rados.pyx":2550
36356 * ret = rados_aio_exec(self.io, _object_name, completion.rados_comp,
36357 * _cls, _method, _data, _data_len, ret_buf, _length)
36358 * if ret < 0: # <<<<<<<<<<<<<<
36359 * completion._cleanup()
36360 * raise make_ex(ret, "error executing %s::%s on %s" % (cls, method, object_name))
36361 */
36362 }
36363
36364 /* "rados.pyx":2553
36365 * completion._cleanup()
36366 * raise make_ex(ret, "error executing %s::%s on %s" % (cls, method, object_name))
36367 * return completion # <<<<<<<<<<<<<<
36368 *
36369 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
36370 */
36371 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
36372 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
36373 __pyx_r = ((PyObject *)__pyx_v_completion);
36374 goto __pyx_L0;
36375
36376 /* "rados.pyx":2487
36377 * ('data', bytes), ('length', int),
36378 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
36379 * def aio_execute(self, object_name, cls, method, data, # <<<<<<<<<<<<<<
36380 * length=8192, oncomplete=None, onsafe=None):
36381 * """
36382 */
36383
36384 /* function exit code */
36385 __pyx_L1_error:;
36386 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
36387 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
36388 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
36389 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
36390 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
36391 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
;
36392 __Pyx_AddTraceback("rados.Ioctx.aio_execute", __pyx_clineno, __pyx_lineno, __pyx_filename);
36393 __pyx_r = NULL((void*)0);
36394 __pyx_L0:;
36395 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
36396 __Pyx_XDECREF(__pyx_v_oncomplete_)do { if ((__pyx_v_oncomplete_) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_oncomplete_))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_oncomplete_)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_oncomplete_
)))); } while (0); } while (0)
;
36397 __Pyx_XDECREF(__pyx_v_onsafe_)do { if ((__pyx_v_onsafe_) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_onsafe_))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_onsafe_)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_onsafe_)))); } while
(0); } while (0)
;
36398 __Pyx_XDECREF(__pyx_v_object_name)do { if ((__pyx_v_object_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_object_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_object_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_object_name
)))); } while (0); } while (0)
;
36399 __Pyx_XDECREF(__pyx_v_cls)do { if ((__pyx_v_cls) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cls))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_cls)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cls)))); } while (0); } while (0)
;
36400 __Pyx_XDECREF(__pyx_v_method)do { if ((__pyx_v_method) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_method))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_method)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_method)))); } while
(0); } while (0)
;
36401 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
36402 __Pyx_XGIVEREF(__pyx_r);
36403 __Pyx_RefNannyFinishContext();
36404 return __pyx_r;
36405}
36406
36407/* "rados.pyx":2556
36408 *
36409 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
36410 * def aio_remove(self, object_name, oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
36411 * """
36412 * Asynchronously remove an object
36413 */
36414
36415/* Python wrapper */
36416static PyObject *__pyx_pw_5rados_5Ioctx_27aio_remove(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
36417static char __pyx_doc_5rados_5Ioctx_26aio_remove[] = "Ioctx.aio_remove(self, object_name, oncomplete=None, onsafe=None)\n\n Asynchronously remove an object\n\n :param object_name: name of the object to remove\n :type object_name: str\n :param oncomplete: what to do when the remove is safe and complete in memory\n on all replicas\n :type oncomplete: completion\n :param onsafe: what to do when the remove is safe and complete on storage\n on all replicas\n :type onsafe: completion\n\n :raises: :class:`Error`\n :returns: completion object\n ";
36418static PyObject *__pyx_pw_5rados_5Ioctx_27aio_remove(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
36419 PyObject *__pyx_v_object_name = 0;
36420 PyObject *__pyx_v_oncomplete = 0;
36421 PyObject *__pyx_v_onsafe = 0;
36422 int __pyx_lineno = 0;
36423 const char *__pyx_filename = NULL((void*)0);
36424 int __pyx_clineno = 0;
36425 PyObject *__pyx_r = 0;
36426 __Pyx_RefNannyDeclarations
36427 __Pyx_RefNannySetupContext("aio_remove (wrapper)", 0);
36428 {
36429 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_object_name,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,0};
36430 PyObject* values[3] = {0,0,0};
36431 values[1] = ((PyObject *)Py_None(&_Py_NoneStruct));
36432 values[2] = ((PyObject *)Py_None(&_Py_NoneStruct));
36433 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
36434 Py_ssize_t kw_args;
36435 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
36436 switch (pos_args) {
36437 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
36438 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
36439 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
36440 case 0: break;
36441 default: goto __pyx_L5_argtuple_error;
36442 }
36443 kw_args = PyDict_Size(__pyx_kwds);
36444 switch (pos_args) {
36445 case 0:
36446 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_object_name
)) != 0), 1)
) kw_args--;
36447 else goto __pyx_L5_argtuple_error;
36448 case 1:
36449 if (kw_args > 0) {
36450 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete);
36451 if (value) { values[1] = value; kw_args--; }
36452 }
36453 case 2:
36454 if (kw_args > 0) {
36455 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe);
36456 if (value) { values[2] = value; kw_args--; }
36457 }
36458 }
36459 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
36460 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aio_remove") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "aio_remove") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__36460; goto __pyx_L3_error;}
36461 }
36462 } else {
36463 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
36464 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
36465 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
36466 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
36467 break;
36468 default: goto __pyx_L5_argtuple_error;
36469 }
36470 }
36471 __pyx_v_object_name = values[0];
36472 __pyx_v_oncomplete = values[1];
36473 __pyx_v_onsafe = values[2];
36474 }
36475 goto __pyx_L4_argument_unpacking_done;
36476 __pyx_L5_argtuple_error:;
36477 __Pyx_RaiseArgtupleInvalid("aio_remove", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__36477; goto __pyx_L3_error;}
36478 __pyx_L3_error:;
36479 __Pyx_AddTraceback("rados.Ioctx.aio_remove", __pyx_clineno, __pyx_lineno, __pyx_filename);
36480 __Pyx_RefNannyFinishContext();
36481 return NULL((void*)0);
36482 __pyx_L4_argument_unpacking_done:;
36483 __pyx_r = __pyx_pf_5rados_5Ioctx_26aio_remove(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_object_name, __pyx_v_oncomplete, __pyx_v_onsafe);
36484
36485 /* function exit code */
36486 __Pyx_RefNannyFinishContext();
36487 return __pyx_r;
36488}
36489
36490static PyObject *__pyx_pf_5rados_5Ioctx_26aio_remove(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_object_name, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe) {
36491 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
36492 char *__pyx_v__object_name;
36493 int __pyx_v_ret;
36494 PyObject *__pyx_r = NULL((void*)0);
36495 __Pyx_RefNannyDeclarations
36496 PyObject *__pyx_t_1 = NULL((void*)0);
36497 PyObject *__pyx_t_2 = NULL((void*)0);
36498 PyObject *__pyx_t_3 = NULL((void*)0);
36499 Py_ssize_t __pyx_t_4;
36500 PyObject *__pyx_t_5 = NULL((void*)0);
36501 char *__pyx_t_6;
36502 int __pyx_t_7;
36503 int __pyx_lineno = 0;
36504 const char *__pyx_filename = NULL((void*)0);
36505 int __pyx_clineno = 0;
36506 __Pyx_RefNannySetupContext("aio_remove", 0);
36507 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
36508
36509 /* "rados.pyx":2572
36510 * :returns: completion object
36511 * """
36512 * object_name = cstr(object_name, 'object_name') # <<<<<<<<<<<<<<
36513 *
36514 * cdef:
36515 */
36516 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2572; __pyx_clineno = __LINE__36516; goto __pyx_L1_error;}
36517 __Pyx_GOTREF(__pyx_t_2);
36518 __pyx_t_3 = NULL((void*)0);
36519 __pyx_t_4 = 0;
36520 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
36521 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36522 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
36523 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36524 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
36525 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36526 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36527 __pyx_t_4 = 1;
36528 }
36529 }
36530 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2572; __pyx_clineno = __LINE__36530; goto __pyx_L1_error;}
36531 __Pyx_GOTREF(__pyx_t_5);
36532 if (__pyx_t_3) {
36533 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
36534 }
36535 __Pyx_INCREF(__pyx_v_object_name)( ((PyObject*)(__pyx_v_object_name))->ob_refcnt++);
36536 __Pyx_GIVEREF(__pyx_v_object_name);
36537 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_object_name
)
;
36538 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
36539 __Pyx_GIVEREF(__pyx_n_s_object_name);
36540 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_object_name
)
;
36541 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2572; __pyx_clineno = __LINE__36541; goto __pyx_L1_error;}
36542 __Pyx_GOTREF(__pyx_t_1);
36543 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
36544 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36545 __Pyx_DECREF_SET(__pyx_v_object_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_object_name; __pyx_v_object_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
36546 __pyx_t_1 = 0;
36547
36548 /* "rados.pyx":2576
36549 * cdef:
36550 * Completion completion
36551 * char* _object_name = object_name # <<<<<<<<<<<<<<
36552 *
36553 * completion = self.__get_completion(oncomplete, onsafe)
36554 */
36555 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_object_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2576; __pyx_clineno = __LINE__36555; goto __pyx_L1_error;}
36556 __pyx_v__object_name = __pyx_t_6;
36557
36558 /* "rados.pyx":2578
36559 * char* _object_name = object_name
36560 *
36561 * completion = self.__get_completion(oncomplete, onsafe) # <<<<<<<<<<<<<<
36562 * self.__track_completion(completion)
36563 * with nogil:
36564 */
36565 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2578; __pyx_clineno = __LINE__36565; goto __pyx_L1_error;}
36566 __Pyx_GOTREF(__pyx_t_2);
36567 __pyx_t_5 = NULL((void*)0);
36568 __pyx_t_4 = 0;
36569 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
36570 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36571 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
36572 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36573 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
36574 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36575 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36576 __pyx_t_4 = 1;
36577 }
36578 }
36579 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2578; __pyx_clineno = __LINE__36579; goto __pyx_L1_error;}
36580 __Pyx_GOTREF(__pyx_t_3);
36581 if (__pyx_t_5) {
36582 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
36583 }
36584 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
36585 __Pyx_GIVEREF(__pyx_v_oncomplete);
36586 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete
)
;
36587 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
36588 __Pyx_GIVEREF(__pyx_v_onsafe);
36589 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_onsafe)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_v_onsafe
)
;
36590 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2578; __pyx_clineno = __LINE__36590; goto __pyx_L1_error;}
36591 __Pyx_GOTREF(__pyx_t_1);
36592 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
36593 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36594 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2578; __pyx_clineno = __LINE__36594; goto __pyx_L1_error;}
36595 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
36596 __pyx_t_1 = 0;
36597
36598 /* "rados.pyx":2579
36599 *
36600 * completion = self.__get_completion(oncomplete, onsafe)
36601 * self.__track_completion(completion) # <<<<<<<<<<<<<<
36602 * with nogil:
36603 * ret = rados_aio_remove(self.io, _object_name,
36604 */
36605 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__36605; goto __pyx_L1_error;}
36606 __Pyx_GOTREF(__pyx_t_2);
36607 __pyx_t_3 = NULL((void*)0);
36608 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
36609 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36610 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
36611 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36612 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
36613 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36614 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36615 }
36616 }
36617 if (!__pyx_t_3) {
36618 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__36618; goto __pyx_L1_error;}
36619 __Pyx_GOTREF(__pyx_t_1);
36620 } else {
36621 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__36621; goto __pyx_L1_error;}
36622 __Pyx_GOTREF(__pyx_t_5);
36623 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
36624 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
36625 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
36626 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
36627 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2579; __pyx_clineno = __LINE__36627; goto __pyx_L1_error;}
36628 __Pyx_GOTREF(__pyx_t_1);
36629 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
36630 }
36631 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36632 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
36633
36634 /* "rados.pyx":2580
36635 * completion = self.__get_completion(oncomplete, onsafe)
36636 * self.__track_completion(completion)
36637 * with nogil: # <<<<<<<<<<<<<<
36638 * ret = rados_aio_remove(self.io, _object_name,
36639 * completion.rados_comp)
36640 */
36641 {
36642 #ifdef WITH_THREAD1
36643 PyThreadState *_save;
36644 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
36645 #endif
36646 /*try:*/ {
36647
36648 /* "rados.pyx":2581
36649 * self.__track_completion(completion)
36650 * with nogil:
36651 * ret = rados_aio_remove(self.io, _object_name, # <<<<<<<<<<<<<<
36652 * completion.rados_comp)
36653 * if ret < 0:
36654 */
36655 __pyx_v_ret = rados_aio_remove(__pyx_v_self->io, __pyx_v__object_name, __pyx_v_completion->rados_comp);
36656 }
36657
36658 /* "rados.pyx":2580
36659 * completion = self.__get_completion(oncomplete, onsafe)
36660 * self.__track_completion(completion)
36661 * with nogil: # <<<<<<<<<<<<<<
36662 * ret = rados_aio_remove(self.io, _object_name,
36663 * completion.rados_comp)
36664 */
36665 /*finally:*/ {
36666 /*normal exit:*/{
36667 #ifdef WITH_THREAD1
36668 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
36669 #endif
36670 goto __pyx_L5;
36671 }
36672 __pyx_L5:;
36673 }
36674 }
36675
36676 /* "rados.pyx":2583
36677 * ret = rados_aio_remove(self.io, _object_name,
36678 * completion.rados_comp)
36679 * if ret < 0: # <<<<<<<<<<<<<<
36680 * completion._cleanup()
36681 * raise make_ex(ret, "error removing %s" % object_name)
36682 */
36683 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
36684 if (__pyx_t_7) {
36685
36686 /* "rados.pyx":2584
36687 * completion.rados_comp)
36688 * if ret < 0:
36689 * completion._cleanup() # <<<<<<<<<<<<<<
36690 * raise make_ex(ret, "error removing %s" % object_name)
36691 * return completion
36692 */
36693 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2584; __pyx_clineno = __LINE__36693; goto __pyx_L1_error;}
36694 __Pyx_GOTREF(__pyx_t_2);
36695 __pyx_t_5 = NULL((void*)0);
36696 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
36697 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36698 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
36699 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36700 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
36701 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36702 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36703 }
36704 }
36705 if (__pyx_t_5) {
36706 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2584; __pyx_clineno = __LINE__36706; goto __pyx_L1_error;}
36707 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
36708 } else {
36709 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2584; __pyx_clineno = __LINE__36709; goto __pyx_L1_error;}
36710 }
36711 __Pyx_GOTREF(__pyx_t_1);
36712 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36713 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
36714
36715 /* "rados.pyx":2585
36716 * if ret < 0:
36717 * completion._cleanup()
36718 * raise make_ex(ret, "error removing %s" % object_name) # <<<<<<<<<<<<<<
36719 * return completion
36720 *
36721 */
36722 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__36722; goto __pyx_L1_error;}
36723 __Pyx_GOTREF(__pyx_t_1);
36724 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_error_removing_s, __pyx_v_object_name)PyString_Format(__pyx_kp_s_error_removing_s, __pyx_v_object_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__36724; goto __pyx_L1_error;}
36725 __Pyx_GOTREF(__pyx_t_2);
36726 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__36726; goto __pyx_L1_error;}
36727 __Pyx_GOTREF(__pyx_t_5);
36728 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
36729 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36730 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
36731 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
36732 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2585; __pyx_clineno = __LINE__36732; goto __pyx_L1_error;}
36733
36734 /* "rados.pyx":2583
36735 * ret = rados_aio_remove(self.io, _object_name,
36736 * completion.rados_comp)
36737 * if ret < 0: # <<<<<<<<<<<<<<
36738 * completion._cleanup()
36739 * raise make_ex(ret, "error removing %s" % object_name)
36740 */
36741 }
36742
36743 /* "rados.pyx":2586
36744 * completion._cleanup()
36745 * raise make_ex(ret, "error removing %s" % object_name)
36746 * return completion # <<<<<<<<<<<<<<
36747 *
36748 * def require_ioctx_open(self):
36749 */
36750 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
36751 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
36752 __pyx_r = ((PyObject *)__pyx_v_completion);
36753 goto __pyx_L0;
36754
36755 /* "rados.pyx":2556
36756 *
36757 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
36758 * def aio_remove(self, object_name, oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
36759 * """
36760 * Asynchronously remove an object
36761 */
36762
36763 /* function exit code */
36764 __pyx_L1_error:;
36765 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
36766 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
36767 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
36768 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
36769 __Pyx_AddTraceback("rados.Ioctx.aio_remove", __pyx_clineno, __pyx_lineno, __pyx_filename);
36770 __pyx_r = NULL((void*)0);
36771 __pyx_L0:;
36772 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
36773 __Pyx_XDECREF(__pyx_v_object_name)do { if ((__pyx_v_object_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_object_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_object_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_object_name
)))); } while (0); } while (0)
;
36774 __Pyx_XGIVEREF(__pyx_r);
36775 __Pyx_RefNannyFinishContext();
36776 return __pyx_r;
36777}
36778
36779/* "rados.pyx":2588
36780 * return completion
36781 *
36782 * def require_ioctx_open(self): # <<<<<<<<<<<<<<
36783 * """
36784 * Checks if the rados.Ioctx object state is 'open'
36785 */
36786
36787/* Python wrapper */
36788static PyObject *__pyx_pw_5rados_5Ioctx_29require_ioctx_open(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
36789static char __pyx_doc_5rados_5Ioctx_28require_ioctx_open[] = "Ioctx.require_ioctx_open(self)\n\n Checks if the rados.Ioctx object state is 'open'\n\n :raises: IoctxStateError\n ";
36790static PyObject *__pyx_pw_5rados_5Ioctx_29require_ioctx_open(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
36791 PyObject *__pyx_r = 0;
36792 __Pyx_RefNannyDeclarations
36793 __Pyx_RefNannySetupContext("require_ioctx_open (wrapper)", 0);
36794 __pyx_r = __pyx_pf_5rados_5Ioctx_28require_ioctx_open(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
36795
36796 /* function exit code */
36797 __Pyx_RefNannyFinishContext();
36798 return __pyx_r;
36799}
36800
36801static PyObject *__pyx_pf_5rados_5Ioctx_28require_ioctx_open(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
36802 PyObject *__pyx_r = NULL((void*)0);
36803 __Pyx_RefNannyDeclarations
36804 int __pyx_t_1;
36805 PyObject *__pyx_t_2 = NULL((void*)0);
36806 PyObject *__pyx_t_3 = NULL((void*)0);
36807 PyObject *__pyx_t_4 = NULL((void*)0);
36808 PyObject *__pyx_t_5 = NULL((void*)0);
36809 PyObject *__pyx_t_6 = NULL((void*)0);
36810 int __pyx_lineno = 0;
36811 const char *__pyx_filename = NULL((void*)0);
36812 int __pyx_clineno = 0;
36813 __Pyx_RefNannySetupContext("require_ioctx_open", 0);
36814
36815 /* "rados.pyx":2594
36816 * :raises: IoctxStateError
36817 * """
36818 * if self.state != "open": # <<<<<<<<<<<<<<
36819 * raise IoctxStateError("The pool is %s" % self.state)
36820 *
36821 */
36822 __pyx_t_1 = (__Pyx_PyString_Equals__Pyx_PyBytes_Equals(__pyx_v_self->state, __pyx_n_s_open, Py_NE3)); if (unlikely(__pyx_t_1 < 0)__builtin_expect(!!(__pyx_t_1 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2594; __pyx_clineno = __LINE__36822; goto __pyx_L1_error;}
36823 if (__pyx_t_1) {
36824
36825 /* "rados.pyx":2595
36826 * """
36827 * if self.state != "open":
36828 * raise IoctxStateError("The pool is %s" % self.state) # <<<<<<<<<<<<<<
36829 *
36830 * @requires(('loc_key', str_type))
36831 */
36832 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_IoctxStateError); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__36832; goto __pyx_L1_error;}
36833 __Pyx_GOTREF(__pyx_t_3);
36834 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_The_pool_is_s, __pyx_v_self->state)PyString_Format(__pyx_kp_s_The_pool_is_s, __pyx_v_self->state
)
; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__36834; goto __pyx_L1_error;}
36835 __Pyx_GOTREF(__pyx_t_4);
36836 __pyx_t_5 = NULL((void*)0);
36837 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
36838 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
36839 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
36840 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
36841 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
36842 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36843 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36844 }
36845 }
36846 if (!__pyx_t_5) {
36847 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__36847; goto __pyx_L1_error;}
36848 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
36849 __Pyx_GOTREF(__pyx_t_2);
36850 } else {
36851 __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__36851; goto __pyx_L1_error;}
36852 __Pyx_GOTREF(__pyx_t_6);
36853 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
36854 __Pyx_GIVEREF(__pyx_t_4);
36855 PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+1] = __pyx_t_4);
36856 __pyx_t_4 = 0;
36857 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__36857; goto __pyx_L1_error;}
36858 __Pyx_GOTREF(__pyx_t_2);
36859 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
36860 }
36861 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
36862 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
36863 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36864 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__36864; goto __pyx_L1_error;}
36865
36866 /* "rados.pyx":2594
36867 * :raises: IoctxStateError
36868 * """
36869 * if self.state != "open": # <<<<<<<<<<<<<<
36870 * raise IoctxStateError("The pool is %s" % self.state)
36871 *
36872 */
36873 }
36874
36875 /* "rados.pyx":2588
36876 * return completion
36877 *
36878 * def require_ioctx_open(self): # <<<<<<<<<<<<<<
36879 * """
36880 * Checks if the rados.Ioctx object state is 'open'
36881 */
36882
36883 /* function exit code */
36884 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
36885 goto __pyx_L0;
36886 __pyx_L1_error:;
36887 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
36888 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
36889 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
36890 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
36891 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
36892 __Pyx_AddTraceback("rados.Ioctx.require_ioctx_open", __pyx_clineno, __pyx_lineno, __pyx_filename);
36893 __pyx_r = NULL((void*)0);
36894 __pyx_L0:;
36895 __Pyx_XGIVEREF(__pyx_r);
36896 __Pyx_RefNannyFinishContext();
36897 return __pyx_r;
36898}
36899
36900/* "rados.pyx":2598
36901 *
36902 * @requires(('loc_key', str_type))
36903 * def set_locator_key(self, loc_key): # <<<<<<<<<<<<<<
36904 * """
36905 * Set the key for mapping objects to pgs within an io context.
36906 */
36907
36908/* Python wrapper */
36909static PyObject *__pyx_pw_5rados_5Ioctx_31set_locator_key(PyObject *__pyx_v_self, PyObject *__pyx_v_loc_key); /*proto*/
36910static char __pyx_doc_5rados_5Ioctx_30set_locator_key[] = "Ioctx.set_locator_key(self, loc_key)\n\n Set the key for mapping objects to pgs within an io context.\n\n The key is used instead of the object name to determine which\n placement groups an object is put in. This affects all subsequent\n operations of the io context - until a different locator key is\n set, all objects in this io context will be placed in the same pg.\n\n :param loc_key: the key to use as the object locator, or NULL to discard\n any previously set key\n :type loc_key: str\n\n :raises: :class:`TypeError`\n ";
36911static PyObject *__pyx_pw_5rados_5Ioctx_31set_locator_key(PyObject *__pyx_v_self, PyObject *__pyx_v_loc_key) {
36912 PyObject *__pyx_r = 0;
36913 __Pyx_RefNannyDeclarations
36914 __Pyx_RefNannySetupContext("set_locator_key (wrapper)", 0);
36915 __pyx_r = __pyx_pf_5rados_5Ioctx_30set_locator_key(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_loc_key));
36916
36917 /* function exit code */
36918 __Pyx_RefNannyFinishContext();
36919 return __pyx_r;
36920}
36921
36922static PyObject *__pyx_pf_5rados_5Ioctx_30set_locator_key(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_loc_key) {
36923 PyObject *__pyx_v_cloc_key = NULL((void*)0);
36924 char *__pyx_v__loc_key;
36925 PyObject *__pyx_r = NULL((void*)0);
36926 __Pyx_RefNannyDeclarations
36927 PyObject *__pyx_t_1 = NULL((void*)0);
36928 PyObject *__pyx_t_2 = NULL((void*)0);
36929 PyObject *__pyx_t_3 = NULL((void*)0);
36930 Py_ssize_t __pyx_t_4;
36931 PyObject *__pyx_t_5 = NULL((void*)0);
36932 char *__pyx_t_6;
36933 int __pyx_lineno = 0;
36934 const char *__pyx_filename = NULL((void*)0);
36935 int __pyx_clineno = 0;
36936 __Pyx_RefNannySetupContext("set_locator_key", 0);
36937
36938 /* "rados.pyx":2613
36939 * :raises: :class:`TypeError`
36940 * """
36941 * self.require_ioctx_open() # <<<<<<<<<<<<<<
36942 * cloc_key = cstr(loc_key, 'loc_key')
36943 * cdef char *_loc_key = cloc_key
36944 */
36945 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2613; __pyx_clineno = __LINE__36945; goto __pyx_L1_error;}
36946 __Pyx_GOTREF(__pyx_t_2);
36947 __pyx_t_3 = NULL((void*)0);
36948 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
36949 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36950 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
36951 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36952 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
36953 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36954 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36955 }
36956 }
36957 if (__pyx_t_3) {
36958 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2613; __pyx_clineno = __LINE__36958; goto __pyx_L1_error;}
36959 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
36960 } else {
36961 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2613; __pyx_clineno = __LINE__36961; goto __pyx_L1_error;}
36962 }
36963 __Pyx_GOTREF(__pyx_t_1);
36964 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
36965 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
36966
36967 /* "rados.pyx":2614
36968 * """
36969 * self.require_ioctx_open()
36970 * cloc_key = cstr(loc_key, 'loc_key') # <<<<<<<<<<<<<<
36971 * cdef char *_loc_key = cloc_key
36972 * with nogil:
36973 */
36974 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2614; __pyx_clineno = __LINE__36974; goto __pyx_L1_error;}
36975 __Pyx_GOTREF(__pyx_t_2);
36976 __pyx_t_3 = NULL((void*)0);
36977 __pyx_t_4 = 0;
36978 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
36979 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
36980 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
36981 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
36982 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
36983 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
36984 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
36985 __pyx_t_4 = 1;
36986 }
36987 }
36988 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2614; __pyx_clineno = __LINE__36988; goto __pyx_L1_error;}
36989 __Pyx_GOTREF(__pyx_t_5);
36990 if (__pyx_t_3) {
36991 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
36992 }
36993 __Pyx_INCREF(__pyx_v_loc_key)( ((PyObject*)(__pyx_v_loc_key))->ob_refcnt++);
36994 __Pyx_GIVEREF(__pyx_v_loc_key);
36995 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_loc_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_loc_key
)
;
36996 __Pyx_INCREF(__pyx_n_s_loc_key)( ((PyObject*)(__pyx_n_s_loc_key))->ob_refcnt++);
36997 __Pyx_GIVEREF(__pyx_n_s_loc_key);
36998 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_loc_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_loc_key
)
;
36999 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2614; __pyx_clineno = __LINE__36999; goto __pyx_L1_error;}
37000 __Pyx_GOTREF(__pyx_t_1);
37001 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
37002 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
37003 __pyx_v_cloc_key = __pyx_t_1;
37004 __pyx_t_1 = 0;
37005
37006 /* "rados.pyx":2615
37007 * self.require_ioctx_open()
37008 * cloc_key = cstr(loc_key, 'loc_key')
37009 * cdef char *_loc_key = cloc_key # <<<<<<<<<<<<<<
37010 * with nogil:
37011 * rados_ioctx_locator_set_key(self.io, _loc_key)
37012 */
37013 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_cloc_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2615; __pyx_clineno = __LINE__37013; goto __pyx_L1_error;}
37014 __pyx_v__loc_key = __pyx_t_6;
37015
37016 /* "rados.pyx":2616
37017 * cloc_key = cstr(loc_key, 'loc_key')
37018 * cdef char *_loc_key = cloc_key
37019 * with nogil: # <<<<<<<<<<<<<<
37020 * rados_ioctx_locator_set_key(self.io, _loc_key)
37021 * self.locator_key = loc_key
37022 */
37023 {
37024 #ifdef WITH_THREAD1
37025 PyThreadState *_save;
37026 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
37027 #endif
37028 /*try:*/ {
37029
37030 /* "rados.pyx":2617
37031 * cdef char *_loc_key = cloc_key
37032 * with nogil:
37033 * rados_ioctx_locator_set_key(self.io, _loc_key) # <<<<<<<<<<<<<<
37034 * self.locator_key = loc_key
37035 *
37036 */
37037 rados_ioctx_locator_set_key(__pyx_v_self->io, __pyx_v__loc_key);
37038 }
37039
37040 /* "rados.pyx":2616
37041 * cloc_key = cstr(loc_key, 'loc_key')
37042 * cdef char *_loc_key = cloc_key
37043 * with nogil: # <<<<<<<<<<<<<<
37044 * rados_ioctx_locator_set_key(self.io, _loc_key)
37045 * self.locator_key = loc_key
37046 */
37047 /*finally:*/ {
37048 /*normal exit:*/{
37049 #ifdef WITH_THREAD1
37050 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
37051 #endif
37052 goto __pyx_L5;
37053 }
37054 __pyx_L5:;
37055 }
37056 }
37057
37058 /* "rados.pyx":2618
37059 * with nogil:
37060 * rados_ioctx_locator_set_key(self.io, _loc_key)
37061 * self.locator_key = loc_key # <<<<<<<<<<<<<<
37062 *
37063 * def get_locator_key(self):
37064 */
37065 __Pyx_INCREF(__pyx_v_loc_key)( ((PyObject*)(__pyx_v_loc_key))->ob_refcnt++);
37066 __Pyx_GIVEREF(__pyx_v_loc_key);
37067 __Pyx_GOTREF(__pyx_v_self->locator_key);
37068 __Pyx_DECREF(__pyx_v_self->locator_key)do { if ( --((PyObject*)(__pyx_v_self->locator_key))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
locator_key)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->locator_key)))); } while (0)
;
37069 __pyx_v_self->locator_key = __pyx_v_loc_key;
37070
37071 /* "rados.pyx":2598
37072 *
37073 * @requires(('loc_key', str_type))
37074 * def set_locator_key(self, loc_key): # <<<<<<<<<<<<<<
37075 * """
37076 * Set the key for mapping objects to pgs within an io context.
37077 */
37078
37079 /* function exit code */
37080 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
37081 goto __pyx_L0;
37082 __pyx_L1_error:;
37083 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
37084 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
37085 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
37086 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
37087 __Pyx_AddTraceback("rados.Ioctx.set_locator_key", __pyx_clineno, __pyx_lineno, __pyx_filename);
37088 __pyx_r = NULL((void*)0);
37089 __pyx_L0:;
37090 __Pyx_XDECREF(__pyx_v_cloc_key)do { if ((__pyx_v_cloc_key) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_cloc_key))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_cloc_key)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_cloc_key)))); }
while (0); } while (0)
;
37091 __Pyx_XGIVEREF(__pyx_r);
37092 __Pyx_RefNannyFinishContext();
37093 return __pyx_r;
37094}
37095
37096/* "rados.pyx":2620
37097 * self.locator_key = loc_key
37098 *
37099 * def get_locator_key(self): # <<<<<<<<<<<<<<
37100 * """
37101 * Get the locator_key of context
37102 */
37103
37104/* Python wrapper */
37105static PyObject *__pyx_pw_5rados_5Ioctx_33get_locator_key(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
37106static char __pyx_doc_5rados_5Ioctx_32get_locator_key[] = "Ioctx.get_locator_key(self)\n\n Get the locator_key of context\n\n :returns: locator_key\n ";
37107static PyObject *__pyx_pw_5rados_5Ioctx_33get_locator_key(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
37108 PyObject *__pyx_r = 0;
37109 __Pyx_RefNannyDeclarations
37110 __Pyx_RefNannySetupContext("get_locator_key (wrapper)", 0);
37111 __pyx_r = __pyx_pf_5rados_5Ioctx_32get_locator_key(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
37112
37113 /* function exit code */
37114 __Pyx_RefNannyFinishContext();
37115 return __pyx_r;
37116}
37117
37118static PyObject *__pyx_pf_5rados_5Ioctx_32get_locator_key(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
37119 PyObject *__pyx_r = NULL((void*)0);
37120 __Pyx_RefNannyDeclarations
37121 __Pyx_RefNannySetupContext("get_locator_key", 0);
37122
37123 /* "rados.pyx":2626
37124 * :returns: locator_key
37125 * """
37126 * return self.locator_key # <<<<<<<<<<<<<<
37127 *
37128 * @requires(('snap_id', long))
37129 */
37130 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
37131 __Pyx_INCREF(__pyx_v_self->locator_key)( ((PyObject*)(__pyx_v_self->locator_key))->ob_refcnt++
)
;
37132 __pyx_r = __pyx_v_self->locator_key;
37133 goto __pyx_L0;
37134
37135 /* "rados.pyx":2620
37136 * self.locator_key = loc_key
37137 *
37138 * def get_locator_key(self): # <<<<<<<<<<<<<<
37139 * """
37140 * Get the locator_key of context
37141 */
37142
37143 /* function exit code */
37144 __pyx_L0:;
37145 __Pyx_XGIVEREF(__pyx_r);
37146 __Pyx_RefNannyFinishContext();
37147 return __pyx_r;
37148}
37149
37150/* "rados.pyx":2629
37151 *
37152 * @requires(('snap_id', long))
37153 * def set_read(self, snap_id): # <<<<<<<<<<<<<<
37154 * """
37155 * Set the snapshot for reading objects.
37156 */
37157
37158/* Python wrapper */
37159static PyObject *__pyx_pw_5rados_5Ioctx_35set_read(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_id); /*proto*/
37160static char __pyx_doc_5rados_5Ioctx_34set_read[] = "Ioctx.set_read(self, snap_id)\n\n Set the snapshot for reading objects.\n\n To stop to read from snapshot, use set_read(LIBRADOS_SNAP_HEAD)\n\n :param snap_id: the snapshot Id\n :type snap_id: int\n\n :raises: :class:`TypeError`\n ";
37161static PyObject *__pyx_pw_5rados_5Ioctx_35set_read(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_id) {
37162 PyObject *__pyx_r = 0;
37163 __Pyx_RefNannyDeclarations
37164 __Pyx_RefNannySetupContext("set_read (wrapper)", 0);
37165 __pyx_r = __pyx_pf_5rados_5Ioctx_34set_read(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_snap_id));
37166
37167 /* function exit code */
37168 __Pyx_RefNannyFinishContext();
37169 return __pyx_r;
37170}
37171
37172static PyObject *__pyx_pf_5rados_5Ioctx_34set_read(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_id) {
37173 rados_snap_t __pyx_v__snap_id;
37174 PyObject *__pyx_r = NULL((void*)0);
37175 __Pyx_RefNannyDeclarations
37176 PyObject *__pyx_t_1 = NULL((void*)0);
37177 PyObject *__pyx_t_2 = NULL((void*)0);
37178 PyObject *__pyx_t_3 = NULL((void*)0);
37179 rados_snap_t __pyx_t_4;
37180 int __pyx_lineno = 0;
37181 const char *__pyx_filename = NULL((void*)0);
37182 int __pyx_clineno = 0;
37183 __Pyx_RefNannySetupContext("set_read", 0);
37184
37185 /* "rados.pyx":2640
37186 * :raises: :class:`TypeError`
37187 * """
37188 * self.require_ioctx_open() # <<<<<<<<<<<<<<
37189 * cdef rados_snap_t _snap_id = snap_id
37190 * with nogil:
37191 */
37192 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__37192; goto __pyx_L1_error;}
37193 __Pyx_GOTREF(__pyx_t_2);
37194 __pyx_t_3 = NULL((void*)0);
37195 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
37196 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
37197 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
37198 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
37199 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
37200 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
37201 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
37202 }
37203 }
37204 if (__pyx_t_3) {
37205 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__37205; goto __pyx_L1_error;}
37206 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
37207 } else {
37208 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__37208; goto __pyx_L1_error;}
37209 }
37210 __Pyx_GOTREF(__pyx_t_1);
37211 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
37212 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
37213
37214 /* "rados.pyx":2641
37215 * """
37216 * self.require_ioctx_open()
37217 * cdef rados_snap_t _snap_id = snap_id # <<<<<<<<<<<<<<
37218 * with nogil:
37219 * rados_ioctx_snap_set_read(self.io, _snap_id)
37220 */
37221 __pyx_t_4 = __Pyx_PyInt_As_uint64_t(__pyx_v_snap_id); if (unlikely((__pyx_t_4 == (rados_snap_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_4 == (rados_snap_t)-1) &&
PyErr_Occurred()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2641; __pyx_clineno = __LINE__37221; goto __pyx_L1_error;}
37222 __pyx_v__snap_id = __pyx_t_4;
37223
37224 /* "rados.pyx":2642
37225 * self.require_ioctx_open()
37226 * cdef rados_snap_t _snap_id = snap_id
37227 * with nogil: # <<<<<<<<<<<<<<
37228 * rados_ioctx_snap_set_read(self.io, _snap_id)
37229 *
37230 */
37231 {
37232 #ifdef WITH_THREAD1
37233 PyThreadState *_save;
37234 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
37235 #endif
37236 /*try:*/ {
37237
37238 /* "rados.pyx":2643
37239 * cdef rados_snap_t _snap_id = snap_id
37240 * with nogil:
37241 * rados_ioctx_snap_set_read(self.io, _snap_id) # <<<<<<<<<<<<<<
37242 *
37243 * @requires(('nspace', str_type))
37244 */
37245 rados_ioctx_snap_set_read(__pyx_v_self->io, __pyx_v__snap_id);
37246 }
37247
37248 /* "rados.pyx":2642
37249 * self.require_ioctx_open()
37250 * cdef rados_snap_t _snap_id = snap_id
37251 * with nogil: # <<<<<<<<<<<<<<
37252 * rados_ioctx_snap_set_read(self.io, _snap_id)
37253 *
37254 */
37255 /*finally:*/ {
37256 /*normal exit:*/{
37257 #ifdef WITH_THREAD1
37258 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
37259 #endif
37260 goto __pyx_L5;
37261 }
37262 __pyx_L5:;
37263 }
37264 }
37265
37266 /* "rados.pyx":2629
37267 *
37268 * @requires(('snap_id', long))
37269 * def set_read(self, snap_id): # <<<<<<<<<<<<<<
37270 * """
37271 * Set the snapshot for reading objects.
37272 */
37273
37274 /* function exit code */
37275 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
37276 goto __pyx_L0;
37277 __pyx_L1_error:;
37278 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
37279 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
37280 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
37281 __Pyx_AddTraceback("rados.Ioctx.set_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
37282 __pyx_r = NULL((void*)0);
37283 __pyx_L0:;
37284 __Pyx_XGIVEREF(__pyx_r);
37285 __Pyx_RefNannyFinishContext();
37286 return __pyx_r;
37287}
37288
37289/* "rados.pyx":2646
37290 *
37291 * @requires(('nspace', str_type))
37292 * def set_namespace(self, nspace): # <<<<<<<<<<<<<<
37293 * """
37294 * Set the namespace for objects within an io context.
37295 */
37296
37297/* Python wrapper */
37298static PyObject *__pyx_pw_5rados_5Ioctx_37set_namespace(PyObject *__pyx_v_self, PyObject *__pyx_v_nspace); /*proto*/
37299static char __pyx_doc_5rados_5Ioctx_36set_namespace[] = "Ioctx.set_namespace(self, nspace)\n\n Set the namespace for objects within an io context.\n\n The namespace in addition to the object name fully identifies\n an object. This affects all subsequent operations of the io context\n - until a different namespace is set, all objects in this io context\n will be placed in the same namespace.\n\n :param nspace: the namespace to use, or None/\"\" for the default namespace\n :type nspace: str\n\n :raises: :class:`TypeError`\n ";
37300static PyObject *__pyx_pw_5rados_5Ioctx_37set_namespace(PyObject *__pyx_v_self, PyObject *__pyx_v_nspace) {
37301 PyObject *__pyx_r = 0;
37302 __Pyx_RefNannyDeclarations
37303 __Pyx_RefNannySetupContext("set_namespace (wrapper)", 0);
37304 __pyx_r = __pyx_pf_5rados_5Ioctx_36set_namespace(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_nspace));
37305
37306 /* function exit code */
37307 __Pyx_RefNannyFinishContext();
37308 return __pyx_r;
37309}
37310
37311static PyObject *__pyx_pf_5rados_5Ioctx_36set_namespace(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_nspace) {
37312 PyObject *__pyx_v_cnspace = NULL((void*)0);
37313 char *__pyx_v__nspace;
37314 PyObject *__pyx_r = NULL((void*)0);
37315 __Pyx_RefNannyDeclarations
37316 PyObject *__pyx_t_1 = NULL((void*)0);
37317 PyObject *__pyx_t_2 = NULL((void*)0);
37318 PyObject *__pyx_t_3 = NULL((void*)0);
37319 int __pyx_t_4;
37320 int __pyx_t_5;
37321 Py_ssize_t __pyx_t_6;
37322 PyObject *__pyx_t_7 = NULL((void*)0);
37323 char *__pyx_t_8;
37324 int __pyx_lineno = 0;
37325 const char *__pyx_filename = NULL((void*)0);
37326 int __pyx_clineno = 0;
37327 __Pyx_RefNannySetupContext("set_namespace", 0);
37328 __Pyx_INCREF(__pyx_v_nspace)( ((PyObject*)(__pyx_v_nspace))->ob_refcnt++);
37329
37330 /* "rados.pyx":2660
37331 * :raises: :class:`TypeError`
37332 * """
37333 * self.require_ioctx_open() # <<<<<<<<<<<<<<
37334 * if nspace is None:
37335 * nspace = ""
37336 */
37337 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__37337; goto __pyx_L1_error;}
37338 __Pyx_GOTREF(__pyx_t_2);
37339 __pyx_t_3 = NULL((void*)0);
37340 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
37341 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
37342 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
37343 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
37344 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
37345 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
37346 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
37347 }
37348 }
37349 if (__pyx_t_3) {
37350 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__37350; goto __pyx_L1_error;}
37351 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
37352 } else {
37353 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__37353; goto __pyx_L1_error;}
37354 }
37355 __Pyx_GOTREF(__pyx_t_1);
37356 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
37357 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
37358
37359 /* "rados.pyx":2661
37360 * """
37361 * self.require_ioctx_open()
37362 * if nspace is None: # <<<<<<<<<<<<<<
37363 * nspace = ""
37364 * cnspace = cstr(nspace, 'nspace')
37365 */
37366 __pyx_t_4 = (__pyx_v_nspace == Py_None(&_Py_NoneStruct));
37367 __pyx_t_5 = (__pyx_t_4 != 0);
37368 if (__pyx_t_5) {
37369
37370 /* "rados.pyx":2662
37371 * self.require_ioctx_open()
37372 * if nspace is None:
37373 * nspace = "" # <<<<<<<<<<<<<<
37374 * cnspace = cstr(nspace, 'nspace')
37375 * cdef char *_nspace = cnspace
37376 */
37377 __Pyx_INCREF(__pyx_kp_s__10)( ((PyObject*)(__pyx_kp_s__10))->ob_refcnt++);
37378 __Pyx_DECREF_SET(__pyx_v_nspace, __pyx_kp_s__10)do { PyObject *tmp = (PyObject *) __pyx_v_nspace; __pyx_v_nspace
= __pyx_kp_s__10; do { if ( --((PyObject*)(tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
37379
37380 /* "rados.pyx":2661
37381 * """
37382 * self.require_ioctx_open()
37383 * if nspace is None: # <<<<<<<<<<<<<<
37384 * nspace = ""
37385 * cnspace = cstr(nspace, 'nspace')
37386 */
37387 }
37388
37389 /* "rados.pyx":2663
37390 * if nspace is None:
37391 * nspace = ""
37392 * cnspace = cstr(nspace, 'nspace') # <<<<<<<<<<<<<<
37393 * cdef char *_nspace = cnspace
37394 * with nogil:
37395 */
37396 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2663; __pyx_clineno = __LINE__37396; goto __pyx_L1_error;}
37397 __Pyx_GOTREF(__pyx_t_2);
37398 __pyx_t_3 = NULL((void*)0);
37399 __pyx_t_6 = 0;
37400 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
37401 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
37402 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
37403 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
37404 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
37405 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
37406 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
37407 __pyx_t_6 = 1;
37408 }
37409 }
37410 __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2663; __pyx_clineno = __LINE__37410; goto __pyx_L1_error;}
37411 __Pyx_GOTREF(__pyx_t_7);
37412 if (__pyx_t_3) {
37413 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
37414 }
37415 __Pyx_INCREF(__pyx_v_nspace)( ((PyObject*)(__pyx_v_nspace))->ob_refcnt++);
37416 __Pyx_GIVEREF(__pyx_v_nspace);
37417 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_nspace)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_v_nspace
)
;
37418 __Pyx_INCREF(__pyx_n_s_nspace)( ((PyObject*)(__pyx_n_s_nspace))->ob_refcnt++);
37419 __Pyx_GIVEREF(__pyx_n_s_nspace);
37420 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_s_nspace)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_n_s_nspace
)
;
37421 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2663; __pyx_clineno = __LINE__37421; goto __pyx_L1_error;}
37422 __Pyx_GOTREF(__pyx_t_1);
37423 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
37424 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
37425 __pyx_v_cnspace = __pyx_t_1;
37426 __pyx_t_1 = 0;
37427
37428 /* "rados.pyx":2664
37429 * nspace = ""
37430 * cnspace = cstr(nspace, 'nspace')
37431 * cdef char *_nspace = cnspace # <<<<<<<<<<<<<<
37432 * with nogil:
37433 * rados_ioctx_set_namespace(self.io, _nspace)
37434 */
37435 __pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_cnspace); if (unlikely((!__pyx_t_8) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_8) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2664; __pyx_clineno = __LINE__37435; goto __pyx_L1_error;}
37436 __pyx_v__nspace = __pyx_t_8;
37437
37438 /* "rados.pyx":2665
37439 * cnspace = cstr(nspace, 'nspace')
37440 * cdef char *_nspace = cnspace
37441 * with nogil: # <<<<<<<<<<<<<<
37442 * rados_ioctx_set_namespace(self.io, _nspace)
37443 * self.nspace = nspace
37444 */
37445 {
37446 #ifdef WITH_THREAD1
37447 PyThreadState *_save;
37448 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
37449 #endif
37450 /*try:*/ {
37451
37452 /* "rados.pyx":2666
37453 * cdef char *_nspace = cnspace
37454 * with nogil:
37455 * rados_ioctx_set_namespace(self.io, _nspace) # <<<<<<<<<<<<<<
37456 * self.nspace = nspace
37457 *
37458 */
37459 rados_ioctx_set_namespace(__pyx_v_self->io, __pyx_v__nspace);
37460 }
37461
37462 /* "rados.pyx":2665
37463 * cnspace = cstr(nspace, 'nspace')
37464 * cdef char *_nspace = cnspace
37465 * with nogil: # <<<<<<<<<<<<<<
37466 * rados_ioctx_set_namespace(self.io, _nspace)
37467 * self.nspace = nspace
37468 */
37469 /*finally:*/ {
37470 /*normal exit:*/{
37471 #ifdef WITH_THREAD1
37472 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
37473 #endif
37474 goto __pyx_L6;
37475 }
37476 __pyx_L6:;
37477 }
37478 }
37479
37480 /* "rados.pyx":2667
37481 * with nogil:
37482 * rados_ioctx_set_namespace(self.io, _nspace)
37483 * self.nspace = nspace # <<<<<<<<<<<<<<
37484 *
37485 * def get_namespace(self):
37486 */
37487 __Pyx_INCREF(__pyx_v_nspace)( ((PyObject*)(__pyx_v_nspace))->ob_refcnt++);
37488 __Pyx_GIVEREF(__pyx_v_nspace);
37489 __Pyx_GOTREF(__pyx_v_self->nspace);
37490 __Pyx_DECREF(__pyx_v_self->nspace)do { if ( --((PyObject*)(__pyx_v_self->nspace))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
nspace)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->nspace)))); } while (0)
;
37491 __pyx_v_self->nspace = __pyx_v_nspace;
37492
37493 /* "rados.pyx":2646
37494 *
37495 * @requires(('nspace', str_type))
37496 * def set_namespace(self, nspace): # <<<<<<<<<<<<<<
37497 * """
37498 * Set the namespace for objects within an io context.
37499 */
37500
37501 /* function exit code */
37502 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
37503 goto __pyx_L0;
37504 __pyx_L1_error:;
37505 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
37506 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
37507 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
37508 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
37509 __Pyx_AddTraceback("rados.Ioctx.set_namespace", __pyx_clineno, __pyx_lineno, __pyx_filename);
37510 __pyx_r = NULL((void*)0);
37511 __pyx_L0:;
37512 __Pyx_XDECREF(__pyx_v_cnspace)do { if ((__pyx_v_cnspace) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_cnspace))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_cnspace)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_cnspace)))); } while
(0); } while (0)
;
37513 __Pyx_XDECREF(__pyx_v_nspace)do { if ((__pyx_v_nspace) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_nspace))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_nspace)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_nspace)))); } while
(0); } while (0)
;
37514 __Pyx_XGIVEREF(__pyx_r);
37515 __Pyx_RefNannyFinishContext();
37516 return __pyx_r;
37517}
37518
37519/* "rados.pyx":2669
37520 * self.nspace = nspace
37521 *
37522 * def get_namespace(self): # <<<<<<<<<<<<<<
37523 * """
37524 * Get the namespace of context
37525 */
37526
37527/* Python wrapper */
37528static PyObject *__pyx_pw_5rados_5Ioctx_39get_namespace(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
37529static char __pyx_doc_5rados_5Ioctx_38get_namespace[] = "Ioctx.get_namespace(self)\n\n Get the namespace of context\n\n :returns: namespace\n ";
37530static PyObject *__pyx_pw_5rados_5Ioctx_39get_namespace(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
37531 PyObject *__pyx_r = 0;
37532 __Pyx_RefNannyDeclarations
37533 __Pyx_RefNannySetupContext("get_namespace (wrapper)", 0);
37534 __pyx_r = __pyx_pf_5rados_5Ioctx_38get_namespace(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
37535
37536 /* function exit code */
37537 __Pyx_RefNannyFinishContext();
37538 return __pyx_r;
37539}
37540
37541static PyObject *__pyx_pf_5rados_5Ioctx_38get_namespace(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
37542 PyObject *__pyx_r = NULL((void*)0);
37543 __Pyx_RefNannyDeclarations
37544 __Pyx_RefNannySetupContext("get_namespace", 0);
37545
37546 /* "rados.pyx":2675
37547 * :returns: namespace
37548 * """
37549 * return self.nspace # <<<<<<<<<<<<<<
37550 *
37551 * def close(self):
37552 */
37553 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
37554 __Pyx_INCREF(__pyx_v_self->nspace)( ((PyObject*)(__pyx_v_self->nspace))->ob_refcnt++);
37555 __pyx_r = __pyx_v_self->nspace;
37556 goto __pyx_L0;
37557
37558 /* "rados.pyx":2669
37559 * self.nspace = nspace
37560 *
37561 * def get_namespace(self): # <<<<<<<<<<<<<<
37562 * """
37563 * Get the namespace of context
37564 */
37565
37566 /* function exit code */
37567 __pyx_L0:;
37568 __Pyx_XGIVEREF(__pyx_r);
37569 __Pyx_RefNannyFinishContext();
37570 return __pyx_r;
37571}
37572
37573/* "rados.pyx":2677
37574 * return self.nspace
37575 *
37576 * def close(self): # <<<<<<<<<<<<<<
37577 * """
37578 * Close a rados.Ioctx object.
37579 */
37580
37581/* Python wrapper */
37582static PyObject *__pyx_pw_5rados_5Ioctx_41close(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
37583static char __pyx_doc_5rados_5Ioctx_40close[] = "Ioctx.close(self)\n\n Close a rados.Ioctx object.\n\n This just tells librados that you no longer need to use the io context.\n It may not be freed immediately if there are pending asynchronous\n requests on it, but you should not use an io context again after\n calling this function on it.\n ";
37584static PyObject *__pyx_pw_5rados_5Ioctx_41close(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
37585 PyObject *__pyx_r = 0;
37586 __Pyx_RefNannyDeclarations
37587 __Pyx_RefNannySetupContext("close (wrapper)", 0);
37588 __pyx_r = __pyx_pf_5rados_5Ioctx_40close(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
37589
37590 /* function exit code */
37591 __Pyx_RefNannyFinishContext();
37592 return __pyx_r;
37593}
37594
37595static PyObject *__pyx_pf_5rados_5Ioctx_40close(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
37596 PyObject *__pyx_r = NULL((void*)0);
37597 __Pyx_RefNannyDeclarations
37598 int __pyx_t_1;
37599 PyObject *__pyx_t_2 = NULL((void*)0);
37600 PyObject *__pyx_t_3 = NULL((void*)0);
37601 PyObject *__pyx_t_4 = NULL((void*)0);
37602 int __pyx_lineno = 0;
37603 const char *__pyx_filename = NULL((void*)0);
37604 int __pyx_clineno = 0;
37605 __Pyx_RefNannySetupContext("close", 0);
37606
37607 /* "rados.pyx":2686
37608 * calling this function on it.
37609 * """
37610 * if self.state == "open": # <<<<<<<<<<<<<<
37611 * self.require_ioctx_open()
37612 * with nogil:
37613 */
37614 __pyx_t_1 = (__Pyx_PyString_Equals__Pyx_PyBytes_Equals(__pyx_v_self->state, __pyx_n_s_open, Py_EQ2)); if (unlikely(__pyx_t_1 < 0)__builtin_expect(!!(__pyx_t_1 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2686; __pyx_clineno = __LINE__37614; goto __pyx_L1_error;}
37615 if (__pyx_t_1) {
37616
37617 /* "rados.pyx":2687
37618 * """
37619 * if self.state == "open":
37620 * self.require_ioctx_open() # <<<<<<<<<<<<<<
37621 * with nogil:
37622 * rados_ioctx_destroy(self.io)
37623 */
37624 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__37624; goto __pyx_L1_error;}
37625 __Pyx_GOTREF(__pyx_t_3);
37626 __pyx_t_4 = NULL((void*)0);
37627 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
37628 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
37629 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
37630 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
37631 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
37632 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
37633 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
37634 }
37635 }
37636 if (__pyx_t_4) {
37637 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__37637; goto __pyx_L1_error;}
37638 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
37639 } else {
37640 __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2687; __pyx_clineno = __LINE__37640; goto __pyx_L1_error;}
37641 }
37642 __Pyx_GOTREF(__pyx_t_2);
37643 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
37644 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
37645
37646 /* "rados.pyx":2688
37647 * if self.state == "open":
37648 * self.require_ioctx_open()
37649 * with nogil: # <<<<<<<<<<<<<<
37650 * rados_ioctx_destroy(self.io)
37651 * self.state = "closed"
37652 */
37653 {
37654 #ifdef WITH_THREAD1
37655 PyThreadState *_save;
37656 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
37657 #endif
37658 /*try:*/ {
37659
37660 /* "rados.pyx":2689
37661 * self.require_ioctx_open()
37662 * with nogil:
37663 * rados_ioctx_destroy(self.io) # <<<<<<<<<<<<<<
37664 * self.state = "closed"
37665 *
37666 */
37667 rados_ioctx_destroy(__pyx_v_self->io);
37668 }
37669
37670 /* "rados.pyx":2688
37671 * if self.state == "open":
37672 * self.require_ioctx_open()
37673 * with nogil: # <<<<<<<<<<<<<<
37674 * rados_ioctx_destroy(self.io)
37675 * self.state = "closed"
37676 */
37677 /*finally:*/ {
37678 /*normal exit:*/{
37679 #ifdef WITH_THREAD1
37680 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
37681 #endif
37682 goto __pyx_L6;
37683 }
37684 __pyx_L6:;
37685 }
37686 }
37687
37688 /* "rados.pyx":2690
37689 * with nogil:
37690 * rados_ioctx_destroy(self.io)
37691 * self.state = "closed" # <<<<<<<<<<<<<<
37692 *
37693 *
37694 */
37695 __Pyx_INCREF(__pyx_n_s_closed)( ((PyObject*)(__pyx_n_s_closed))->ob_refcnt++);
37696 __Pyx_GIVEREF(__pyx_n_s_closed);
37697 __Pyx_GOTREF(__pyx_v_self->state);
37698 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
37699 __pyx_v_self->state = __pyx_n_s_closed;
37700
37701 /* "rados.pyx":2686
37702 * calling this function on it.
37703 * """
37704 * if self.state == "open": # <<<<<<<<<<<<<<
37705 * self.require_ioctx_open()
37706 * with nogil:
37707 */
37708 }
37709
37710 /* "rados.pyx":2677
37711 * return self.nspace
37712 *
37713 * def close(self): # <<<<<<<<<<<<<<
37714 * """
37715 * Close a rados.Ioctx object.
37716 */
37717
37718 /* function exit code */
37719 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
37720 goto __pyx_L0;
37721 __pyx_L1_error:;
37722 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
37723 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
37724 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
37725 __Pyx_AddTraceback("rados.Ioctx.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
37726 __pyx_r = NULL((void*)0);
37727 __pyx_L0:;
37728 __Pyx_XGIVEREF(__pyx_r);
37729 __Pyx_RefNannyFinishContext();
37730 return __pyx_r;
37731}
37732
37733/* "rados.pyx":2694
37734 *
37735 * @requires(('key', str_type), ('data', bytes))
37736 * def write(self, key, data, offset=0): # <<<<<<<<<<<<<<
37737 * """
37738 * Write data to an object synchronously
37739 */
37740
37741/* Python wrapper */
37742static PyObject *__pyx_pw_5rados_5Ioctx_43write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
37743static char __pyx_doc_5rados_5Ioctx_42write[] = "Ioctx.write(self, key, data, offset=0)\n\n Write data to an object synchronously\n\n :param key: name of the object\n :type key: str\n :param data: data to write\n :type data: bytes\n :param offset: byte offset in the object to begin writing at\n :type offset: int\n\n :raises: :class:`TypeError`\n :raises: :class:`LogicError`\n :returns: int - 0 on success\n ";
37744static PyObject *__pyx_pw_5rados_5Ioctx_43write(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
37745 PyObject *__pyx_v_key = 0;
37746 PyObject *__pyx_v_data = 0;
37747 PyObject *__pyx_v_offset = 0;
37748 int __pyx_lineno = 0;
37749 const char *__pyx_filename = NULL((void*)0);
37750 int __pyx_clineno = 0;
37751 PyObject *__pyx_r = 0;
37752 __Pyx_RefNannyDeclarations
37753 __Pyx_RefNannySetupContext("write (wrapper)", 0);
37754 {
37755 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_data,&__pyx_n_s_offset,0};
37756 PyObject* values[3] = {0,0,0};
37757 values[2] = ((PyObject *)__pyx_int_0);
37758 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
37759 Py_ssize_t kw_args;
37760 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
37761 switch (pos_args) {
37762 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
37763 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
37764 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
37765 case 0: break;
37766 default: goto __pyx_L5_argtuple_error;
37767 }
37768 kw_args = PyDict_Size(__pyx_kwds);
37769 switch (pos_args) {
37770 case 0:
37771 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
37772 else goto __pyx_L5_argtuple_error;
37773 case 1:
37774 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data
)) != 0), 1)
) kw_args--;
37775 else {
37776 __Pyx_RaiseArgtupleInvalid("write", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__37776; goto __pyx_L3_error;}
37777 }
37778 case 2:
37779 if (kw_args > 0) {
37780 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset);
37781 if (value) { values[2] = value; kw_args--; }
37782 }
37783 }
37784 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
37785 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "write") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__37785; goto __pyx_L3_error;}
37786 }
37787 } else {
37788 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
37789 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
37790 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
37791 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
37792 break;
37793 default: goto __pyx_L5_argtuple_error;
37794 }
37795 }
37796 __pyx_v_key = values[0];
37797 __pyx_v_data = values[1];
37798 __pyx_v_offset = values[2];
37799 }
37800 goto __pyx_L4_argument_unpacking_done;
37801 __pyx_L5_argtuple_error:;
37802 __Pyx_RaiseArgtupleInvalid("write", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__37802; goto __pyx_L3_error;}
37803 __pyx_L3_error:;
37804 __Pyx_AddTraceback("rados.Ioctx.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
37805 __Pyx_RefNannyFinishContext();
37806 return NULL((void*)0);
37807 __pyx_L4_argument_unpacking_done:;
37808 __pyx_r = __pyx_pf_5rados_5Ioctx_42write(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_data, __pyx_v_offset);
37809
37810 /* function exit code */
37811 __Pyx_RefNannyFinishContext();
37812 return __pyx_r;
37813}
37814
37815static PyObject *__pyx_pf_5rados_5Ioctx_42write(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_data, PyObject *__pyx_v_offset) {
37816 char *__pyx_v__key;
37817 char *__pyx_v__data;
37818 size_t __pyx_v_length;
37819 uint64_t __pyx_v__offset;
37820 int __pyx_v_ret;
37821 PyObject *__pyx_r = NULL((void*)0);
37822 __Pyx_RefNannyDeclarations
37823 PyObject *__pyx_t_1 = NULL((void*)0);
37824 PyObject *__pyx_t_2 = NULL((void*)0);
37825 PyObject *__pyx_t_3 = NULL((void*)0);
37826 Py_ssize_t __pyx_t_4;
37827 PyObject *__pyx_t_5 = NULL((void*)0);
37828 char *__pyx_t_6;
37829 uint64_t __pyx_t_7;
37830 int __pyx_t_8;
37831 PyObject *__pyx_t_9 = NULL((void*)0);
37832 int __pyx_lineno = 0;
37833 const char *__pyx_filename = NULL((void*)0);
37834 int __pyx_clineno = 0;
37835 __Pyx_RefNannySetupContext("write", 0);
37836 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
37837
37838 /* "rados.pyx":2709
37839 * :returns: int - 0 on success
37840 * """
37841 * self.require_ioctx_open() # <<<<<<<<<<<<<<
37842 *
37843 * key = cstr(key, 'key')
37844 */
37845 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__37845; goto __pyx_L1_error;}
37846 __Pyx_GOTREF(__pyx_t_2);
37847 __pyx_t_3 = NULL((void*)0);
37848 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
37849 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
37850 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
37851 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
37852 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
37853 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
37854 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
37855 }
37856 }
37857 if (__pyx_t_3) {
37858 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__37858; goto __pyx_L1_error;}
37859 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
37860 } else {
37861 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__37861; goto __pyx_L1_error;}
37862 }
37863 __Pyx_GOTREF(__pyx_t_1);
37864 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
37865 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
37866
37867 /* "rados.pyx":2711
37868 * self.require_ioctx_open()
37869 *
37870 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
37871 * cdef:
37872 * char *_key = key
37873 */
37874 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2711; __pyx_clineno = __LINE__37874; goto __pyx_L1_error;}
37875 __Pyx_GOTREF(__pyx_t_2);
37876 __pyx_t_3 = NULL((void*)0);
37877 __pyx_t_4 = 0;
37878 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
37879 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
37880 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
37881 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
37882 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
37883 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
37884 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
37885 __pyx_t_4 = 1;
37886 }
37887 }
37888 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2711; __pyx_clineno = __LINE__37888; goto __pyx_L1_error;}
37889 __Pyx_GOTREF(__pyx_t_5);
37890 if (__pyx_t_3) {
37891 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
37892 }
37893 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
37894 __Pyx_GIVEREF(__pyx_v_key);
37895 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
37896 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
37897 __Pyx_GIVEREF(__pyx_n_s_key);
37898 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
37899 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2711; __pyx_clineno = __LINE__37899; goto __pyx_L1_error;}
37900 __Pyx_GOTREF(__pyx_t_1);
37901 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
37902 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
37903 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
37904 __pyx_t_1 = 0;
37905
37906 /* "rados.pyx":2713
37907 * key = cstr(key, 'key')
37908 * cdef:
37909 * char *_key = key # <<<<<<<<<<<<<<
37910 * char *_data = data
37911 * size_t length = len(data)
37912 */
37913 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2713; __pyx_clineno = __LINE__37913; goto __pyx_L1_error;}
37914 __pyx_v__key = __pyx_t_6;
37915
37916 /* "rados.pyx":2714
37917 * cdef:
37918 * char *_key = key
37919 * char *_data = data # <<<<<<<<<<<<<<
37920 * size_t length = len(data)
37921 * uint64_t _offset = offset
37922 */
37923 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_data); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2714; __pyx_clineno = __LINE__37923; goto __pyx_L1_error;}
37924 __pyx_v__data = __pyx_t_6;
37925
37926 /* "rados.pyx":2715
37927 * char *_key = key
37928 * char *_data = data
37929 * size_t length = len(data) # <<<<<<<<<<<<<<
37930 * uint64_t _offset = offset
37931 *
37932 */
37933 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2715; __pyx_clineno = __LINE__37933; goto __pyx_L1_error;}
37934 __pyx_v_length = __pyx_t_4;
37935
37936 /* "rados.pyx":2716
37937 * char *_data = data
37938 * size_t length = len(data)
37939 * uint64_t _offset = offset # <<<<<<<<<<<<<<
37940 *
37941 * with nogil:
37942 */
37943 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_offset); if (unlikely((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2716; __pyx_clineno = __LINE__37943; goto __pyx_L1_error;}
37944 __pyx_v__offset = __pyx_t_7;
37945
37946 /* "rados.pyx":2718
37947 * uint64_t _offset = offset
37948 *
37949 * with nogil: # <<<<<<<<<<<<<<
37950 * ret = rados_write(self.io, _key, _data, length, _offset)
37951 * if ret == 0:
37952 */
37953 {
37954 #ifdef WITH_THREAD1
37955 PyThreadState *_save;
37956 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
37957 #endif
37958 /*try:*/ {
37959
37960 /* "rados.pyx":2719
37961 *
37962 * with nogil:
37963 * ret = rados_write(self.io, _key, _data, length, _offset) # <<<<<<<<<<<<<<
37964 * if ret == 0:
37965 * return ret
37966 */
37967 __pyx_v_ret = rados_write(__pyx_v_self->io, __pyx_v__key, __pyx_v__data, __pyx_v_length, __pyx_v__offset);
37968 }
37969
37970 /* "rados.pyx":2718
37971 * uint64_t _offset = offset
37972 *
37973 * with nogil: # <<<<<<<<<<<<<<
37974 * ret = rados_write(self.io, _key, _data, length, _offset)
37975 * if ret == 0:
37976 */
37977 /*finally:*/ {
37978 /*normal exit:*/{
37979 #ifdef WITH_THREAD1
37980 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
37981 #endif
37982 goto __pyx_L5;
37983 }
37984 __pyx_L5:;
37985 }
37986 }
37987
37988 /* "rados.pyx":2720
37989 * with nogil:
37990 * ret = rados_write(self.io, _key, _data, length, _offset)
37991 * if ret == 0: # <<<<<<<<<<<<<<
37992 * return ret
37993 * elif ret < 0:
37994 */
37995 __pyx_t_8 = ((__pyx_v_ret == 0) != 0);
37996 if (__pyx_t_8) {
37997
37998 /* "rados.pyx":2721
37999 * ret = rados_write(self.io, _key, _data, length, _offset)
38000 * if ret == 0:
38001 * return ret # <<<<<<<<<<<<<<
38002 * elif ret < 0:
38003 * raise make_ex(ret, "Ioctx.write(%s): failed to write %s"
38004 */
38005 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
38006 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2721; __pyx_clineno = __LINE__38006; goto __pyx_L1_error;}
38007 __Pyx_GOTREF(__pyx_t_1);
38008 __pyx_r = __pyx_t_1;
38009 __pyx_t_1 = 0;
38010 goto __pyx_L0;
38011
38012 /* "rados.pyx":2720
38013 * with nogil:
38014 * ret = rados_write(self.io, _key, _data, length, _offset)
38015 * if ret == 0: # <<<<<<<<<<<<<<
38016 * return ret
38017 * elif ret < 0:
38018 */
38019 }
38020
38021 /* "rados.pyx":2722
38022 * if ret == 0:
38023 * return ret
38024 * elif ret < 0: # <<<<<<<<<<<<<<
38025 * raise make_ex(ret, "Ioctx.write(%s): failed to write %s"
38026 * % (self.name, key))
38027 */
38028 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
38029 if (__pyx_t_8) {
38030
38031 /* "rados.pyx":2723
38032 * return ret
38033 * elif ret < 0:
38034 * raise make_ex(ret, "Ioctx.write(%s): failed to write %s" # <<<<<<<<<<<<<<
38035 * % (self.name, key))
38036 * else:
38037 */
38038 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2723; __pyx_clineno = __LINE__38038; goto __pyx_L1_error;}
38039 __Pyx_GOTREF(__pyx_t_1);
38040
38041 /* "rados.pyx":2724
38042 * elif ret < 0:
38043 * raise make_ex(ret, "Ioctx.write(%s): failed to write %s"
38044 * % (self.name, key)) # <<<<<<<<<<<<<<
38045 * else:
38046 * raise LogicError("Ioctx.write(%s): rados_write \
38047 */
38048 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2724; __pyx_clineno = __LINE__38048; goto __pyx_L1_error;}
38049 __Pyx_GOTREF(__pyx_t_2);
38050 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
38051 __Pyx_GIVEREF(__pyx_v_self->name);
38052 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
38053 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
38054 __Pyx_GIVEREF(__pyx_v_key);
38055 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_key);
38056 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_write_s_failed_to_write_s, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_write_s_failed_to_write_s, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2724; __pyx_clineno = __LINE__38056; goto __pyx_L1_error;}
38057 __Pyx_GOTREF(__pyx_t_5);
38058 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38059
38060 /* "rados.pyx":2723
38061 * return ret
38062 * elif ret < 0:
38063 * raise make_ex(ret, "Ioctx.write(%s): failed to write %s" # <<<<<<<<<<<<<<
38064 * % (self.name, key))
38065 * else:
38066 */
38067 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2723; __pyx_clineno = __LINE__38067; goto __pyx_L1_error;}
38068 __Pyx_GOTREF(__pyx_t_2);
38069 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38070 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38071 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
38072 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38073 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2723; __pyx_clineno = __LINE__38073; goto __pyx_L1_error;}
38074
38075 /* "rados.pyx":2722
38076 * if ret == 0:
38077 * return ret
38078 * elif ret < 0: # <<<<<<<<<<<<<<
38079 * raise make_ex(ret, "Ioctx.write(%s): failed to write %s"
38080 * % (self.name, key))
38081 */
38082 }
38083
38084 /* "rados.pyx":2726
38085 * % (self.name, key))
38086 * else:
38087 * raise LogicError("Ioctx.write(%s): rados_write \ # <<<<<<<<<<<<<<
38088 * returned %d, but should return zero on success." % (self.name, ret))
38089 *
38090 */
38091 /*else*/ {
38092 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__38092; goto __pyx_L1_error;}
38093 __Pyx_GOTREF(__pyx_t_5);
38094
38095 /* "rados.pyx":2727
38096 * else:
38097 * raise LogicError("Ioctx.write(%s): rados_write \
38098 * returned %d, but should return zero on success." % (self.name, ret)) # <<<<<<<<<<<<<<
38099 *
38100 * @requires(('key', str_type), ('data', bytes))
38101 */
38102 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2727; __pyx_clineno = __LINE__38102; goto __pyx_L1_error;}
38103 __Pyx_GOTREF(__pyx_t_1);
38104 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2727; __pyx_clineno = __LINE__38104; goto __pyx_L1_error;}
38105 __Pyx_GOTREF(__pyx_t_3);
38106 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
38107 __Pyx_GIVEREF(__pyx_v_self->name);
38108 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_v_self
->name)
;
38109 __Pyx_GIVEREF(__pyx_t_1);
38110 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_t_1);
38111 __pyx_t_1 = 0;
38112 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_write_s_rados_write_return, __pyx_t_3)PyString_Format(__pyx_kp_s_Ioctx_write_s_rados_write_return, __pyx_t_3
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2727; __pyx_clineno = __LINE__38112; goto __pyx_L1_error;}
38113 __Pyx_GOTREF(__pyx_t_1);
38114 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
38115 __pyx_t_3 = NULL((void*)0);
38116 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
38117 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
38118 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
38119 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
38120 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
38121 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
38122 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38123 }
38124 }
38125 if (!__pyx_t_3) {
38126 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__38126; goto __pyx_L1_error;}
38127 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38128 __Pyx_GOTREF(__pyx_t_2);
38129 } else {
38130 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__38130; goto __pyx_L1_error;}
38131 __Pyx_GOTREF(__pyx_t_9);
38132 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
38133 __Pyx_GIVEREF(__pyx_t_1);
38134 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_1);
38135 __pyx_t_1 = 0;
38136 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__38136; goto __pyx_L1_error;}
38137 __Pyx_GOTREF(__pyx_t_2);
38138 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
38139 }
38140 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38141 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
38142 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38143 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2726; __pyx_clineno = __LINE__38143; goto __pyx_L1_error;}
38144 }
38145
38146 /* "rados.pyx":2694
38147 *
38148 * @requires(('key', str_type), ('data', bytes))
38149 * def write(self, key, data, offset=0): # <<<<<<<<<<<<<<
38150 * """
38151 * Write data to an object synchronously
38152 */
38153
38154 /* function exit code */
38155 __pyx_L1_error:;
38156 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
38157 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
38158 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
38159 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
38160 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
38161 __Pyx_AddTraceback("rados.Ioctx.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
38162 __pyx_r = NULL((void*)0);
38163 __pyx_L0:;
38164 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
38165 __Pyx_XGIVEREF(__pyx_r);
38166 __Pyx_RefNannyFinishContext();
38167 return __pyx_r;
38168}
38169
38170/* "rados.pyx":2730
38171 *
38172 * @requires(('key', str_type), ('data', bytes))
38173 * def write_full(self, key, data): # <<<<<<<<<<<<<<
38174 * """
38175 * Write an entire object synchronously.
38176 */
38177
38178/* Python wrapper */
38179static PyObject *__pyx_pw_5rados_5Ioctx_45write_full(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38180static char __pyx_doc_5rados_5Ioctx_44write_full[] = "Ioctx.write_full(self, key, data)\n\n Write an entire object synchronously.\n\n The object is filled with the provided data. If the object exists,\n it is atomically truncated and then written.\n\n :param key: name of the object\n :type key: str\n :param data: data to write\n :type data: bytes\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: int - 0 on success\n ";
38181static PyObject *__pyx_pw_5rados_5Ioctx_45write_full(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38182 PyObject *__pyx_v_key = 0;
38183 PyObject *__pyx_v_data = 0;
38184 int __pyx_lineno = 0;
38185 const char *__pyx_filename = NULL((void*)0);
38186 int __pyx_clineno = 0;
38187 PyObject *__pyx_r = 0;
38188 __Pyx_RefNannyDeclarations
38189 __Pyx_RefNannySetupContext("write_full (wrapper)", 0);
38190 {
38191 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_data,0};
38192 PyObject* values[2] = {0,0};
38193 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
38194 Py_ssize_t kw_args;
38195 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
38196 switch (pos_args) {
38197 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
38198 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
38199 case 0: break;
38200 default: goto __pyx_L5_argtuple_error;
38201 }
38202 kw_args = PyDict_Size(__pyx_kwds);
38203 switch (pos_args) {
38204 case 0:
38205 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
38206 else goto __pyx_L5_argtuple_error;
38207 case 1:
38208 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data
)) != 0), 1)
) kw_args--;
38209 else {
38210 __Pyx_RaiseArgtupleInvalid("write_full", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__38210; goto __pyx_L3_error;}
38211 }
38212 }
38213 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
38214 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_full") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "write_full") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__38214; goto __pyx_L3_error;}
38215 }
38216 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
38217 goto __pyx_L5_argtuple_error;
38218 } else {
38219 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
38220 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
38221 }
38222 __pyx_v_key = values[0];
38223 __pyx_v_data = values[1];
38224 }
38225 goto __pyx_L4_argument_unpacking_done;
38226 __pyx_L5_argtuple_error:;
38227 __Pyx_RaiseArgtupleInvalid("write_full", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__38227; goto __pyx_L3_error;}
38228 __pyx_L3_error:;
38229 __Pyx_AddTraceback("rados.Ioctx.write_full", __pyx_clineno, __pyx_lineno, __pyx_filename);
38230 __Pyx_RefNannyFinishContext();
38231 return NULL((void*)0);
38232 __pyx_L4_argument_unpacking_done:;
38233 __pyx_r = __pyx_pf_5rados_5Ioctx_44write_full(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_data);
38234
38235 /* function exit code */
38236 __Pyx_RefNannyFinishContext();
38237 return __pyx_r;
38238}
38239
38240static PyObject *__pyx_pf_5rados_5Ioctx_44write_full(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_data) {
38241 char *__pyx_v__key;
38242 char *__pyx_v__data;
38243 size_t __pyx_v_length;
38244 int __pyx_v_ret;
38245 PyObject *__pyx_r = NULL((void*)0);
38246 __Pyx_RefNannyDeclarations
38247 PyObject *__pyx_t_1 = NULL((void*)0);
38248 PyObject *__pyx_t_2 = NULL((void*)0);
38249 PyObject *__pyx_t_3 = NULL((void*)0);
38250 Py_ssize_t __pyx_t_4;
38251 PyObject *__pyx_t_5 = NULL((void*)0);
38252 char *__pyx_t_6;
38253 int __pyx_t_7;
38254 PyObject *__pyx_t_8 = NULL((void*)0);
38255 int __pyx_lineno = 0;
38256 const char *__pyx_filename = NULL((void*)0);
38257 int __pyx_clineno = 0;
38258 __Pyx_RefNannySetupContext("write_full", 0);
38259 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
38260
38261 /* "rados.pyx":2746
38262 * :returns: int - 0 on success
38263 * """
38264 * self.require_ioctx_open() # <<<<<<<<<<<<<<
38265 * key = cstr(key, 'key')
38266 * cdef:
38267 */
38268 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2746; __pyx_clineno = __LINE__38268; goto __pyx_L1_error;}
38269 __Pyx_GOTREF(__pyx_t_2);
38270 __pyx_t_3 = NULL((void*)0);
38271 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
38272 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
38273 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
38274 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
38275 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
38276 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
38277 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38278 }
38279 }
38280 if (__pyx_t_3) {
38281 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2746; __pyx_clineno = __LINE__38281; goto __pyx_L1_error;}
38282 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
38283 } else {
38284 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2746; __pyx_clineno = __LINE__38284; goto __pyx_L1_error;}
38285 }
38286 __Pyx_GOTREF(__pyx_t_1);
38287 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38288 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38289
38290 /* "rados.pyx":2747
38291 * """
38292 * self.require_ioctx_open()
38293 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
38294 * cdef:
38295 * char *_key = key
38296 */
38297 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2747; __pyx_clineno = __LINE__38297; goto __pyx_L1_error;}
38298 __Pyx_GOTREF(__pyx_t_2);
38299 __pyx_t_3 = NULL((void*)0);
38300 __pyx_t_4 = 0;
38301 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
38302 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
38303 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
38304 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
38305 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
38306 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
38307 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38308 __pyx_t_4 = 1;
38309 }
38310 }
38311 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2747; __pyx_clineno = __LINE__38311; goto __pyx_L1_error;}
38312 __Pyx_GOTREF(__pyx_t_5);
38313 if (__pyx_t_3) {
38314 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
38315 }
38316 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
38317 __Pyx_GIVEREF(__pyx_v_key);
38318 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
38319 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
38320 __Pyx_GIVEREF(__pyx_n_s_key);
38321 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
38322 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2747; __pyx_clineno = __LINE__38322; goto __pyx_L1_error;}
38323 __Pyx_GOTREF(__pyx_t_1);
38324 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38325 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38326 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38327 __pyx_t_1 = 0;
38328
38329 /* "rados.pyx":2749
38330 * key = cstr(key, 'key')
38331 * cdef:
38332 * char *_key = key # <<<<<<<<<<<<<<
38333 * char *_data = data
38334 * size_t length = len(data)
38335 */
38336 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2749; __pyx_clineno = __LINE__38336; goto __pyx_L1_error;}
38337 __pyx_v__key = __pyx_t_6;
38338
38339 /* "rados.pyx":2750
38340 * cdef:
38341 * char *_key = key
38342 * char *_data = data # <<<<<<<<<<<<<<
38343 * size_t length = len(data)
38344 *
38345 */
38346 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_data); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2750; __pyx_clineno = __LINE__38346; goto __pyx_L1_error;}
38347 __pyx_v__data = __pyx_t_6;
38348
38349 /* "rados.pyx":2751
38350 * char *_key = key
38351 * char *_data = data
38352 * size_t length = len(data) # <<<<<<<<<<<<<<
38353 *
38354 * with nogil:
38355 */
38356 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2751; __pyx_clineno = __LINE__38356; goto __pyx_L1_error;}
38357 __pyx_v_length = __pyx_t_4;
38358
38359 /* "rados.pyx":2753
38360 * size_t length = len(data)
38361 *
38362 * with nogil: # <<<<<<<<<<<<<<
38363 * ret = rados_write_full(self.io, _key, _data, length)
38364 * if ret == 0:
38365 */
38366 {
38367 #ifdef WITH_THREAD1
38368 PyThreadState *_save;
38369 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
38370 #endif
38371 /*try:*/ {
38372
38373 /* "rados.pyx":2754
38374 *
38375 * with nogil:
38376 * ret = rados_write_full(self.io, _key, _data, length) # <<<<<<<<<<<<<<
38377 * if ret == 0:
38378 * return ret
38379 */
38380 __pyx_v_ret = rados_write_full(__pyx_v_self->io, __pyx_v__key, __pyx_v__data, __pyx_v_length);
38381 }
38382
38383 /* "rados.pyx":2753
38384 * size_t length = len(data)
38385 *
38386 * with nogil: # <<<<<<<<<<<<<<
38387 * ret = rados_write_full(self.io, _key, _data, length)
38388 * if ret == 0:
38389 */
38390 /*finally:*/ {
38391 /*normal exit:*/{
38392 #ifdef WITH_THREAD1
38393 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
38394 #endif
38395 goto __pyx_L5;
38396 }
38397 __pyx_L5:;
38398 }
38399 }
38400
38401 /* "rados.pyx":2755
38402 * with nogil:
38403 * ret = rados_write_full(self.io, _key, _data, length)
38404 * if ret == 0: # <<<<<<<<<<<<<<
38405 * return ret
38406 * elif ret < 0:
38407 */
38408 __pyx_t_7 = ((__pyx_v_ret == 0) != 0);
38409 if (__pyx_t_7) {
38410
38411 /* "rados.pyx":2756
38412 * ret = rados_write_full(self.io, _key, _data, length)
38413 * if ret == 0:
38414 * return ret # <<<<<<<<<<<<<<
38415 * elif ret < 0:
38416 * raise make_ex(ret, "Ioctx.write_full(%s): failed to write %s"
38417 */
38418 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
38419 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2756; __pyx_clineno = __LINE__38419; goto __pyx_L1_error;}
38420 __Pyx_GOTREF(__pyx_t_1);
38421 __pyx_r = __pyx_t_1;
38422 __pyx_t_1 = 0;
38423 goto __pyx_L0;
38424
38425 /* "rados.pyx":2755
38426 * with nogil:
38427 * ret = rados_write_full(self.io, _key, _data, length)
38428 * if ret == 0: # <<<<<<<<<<<<<<
38429 * return ret
38430 * elif ret < 0:
38431 */
38432 }
38433
38434 /* "rados.pyx":2757
38435 * if ret == 0:
38436 * return ret
38437 * elif ret < 0: # <<<<<<<<<<<<<<
38438 * raise make_ex(ret, "Ioctx.write_full(%s): failed to write %s"
38439 * % (self.name, key))
38440 */
38441 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
38442 if (__pyx_t_7) {
38443
38444 /* "rados.pyx":2758
38445 * return ret
38446 * elif ret < 0:
38447 * raise make_ex(ret, "Ioctx.write_full(%s): failed to write %s" # <<<<<<<<<<<<<<
38448 * % (self.name, key))
38449 * else:
38450 */
38451 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2758; __pyx_clineno = __LINE__38451; goto __pyx_L1_error;}
38452 __Pyx_GOTREF(__pyx_t_1);
38453
38454 /* "rados.pyx":2759
38455 * elif ret < 0:
38456 * raise make_ex(ret, "Ioctx.write_full(%s): failed to write %s"
38457 * % (self.name, key)) # <<<<<<<<<<<<<<
38458 * else:
38459 * raise LogicError("Ioctx.write_full(%s): rados_write_full \
38460 */
38461 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__38461; goto __pyx_L1_error;}
38462 __Pyx_GOTREF(__pyx_t_2);
38463 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
38464 __Pyx_GIVEREF(__pyx_v_self->name);
38465 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
38466 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
38467 __Pyx_GIVEREF(__pyx_v_key);
38468 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_key);
38469 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_write_full_s_failed_to_wri, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_write_full_s_failed_to_wri, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__38469; goto __pyx_L1_error;}
38470 __Pyx_GOTREF(__pyx_t_5);
38471 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38472
38473 /* "rados.pyx":2758
38474 * return ret
38475 * elif ret < 0:
38476 * raise make_ex(ret, "Ioctx.write_full(%s): failed to write %s" # <<<<<<<<<<<<<<
38477 * % (self.name, key))
38478 * else:
38479 */
38480 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2758; __pyx_clineno = __LINE__38480; goto __pyx_L1_error;}
38481 __Pyx_GOTREF(__pyx_t_2);
38482 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38483 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38484 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
38485 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38486 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2758; __pyx_clineno = __LINE__38486; goto __pyx_L1_error;}
38487
38488 /* "rados.pyx":2757
38489 * if ret == 0:
38490 * return ret
38491 * elif ret < 0: # <<<<<<<<<<<<<<
38492 * raise make_ex(ret, "Ioctx.write_full(%s): failed to write %s"
38493 * % (self.name, key))
38494 */
38495 }
38496
38497 /* "rados.pyx":2761
38498 * % (self.name, key))
38499 * else:
38500 * raise LogicError("Ioctx.write_full(%s): rados_write_full \ # <<<<<<<<<<<<<<
38501 * returned %d, but should return zero on success." % (self.name, ret))
38502 *
38503 */
38504 /*else*/ {
38505 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__38505; goto __pyx_L1_error;}
38506 __Pyx_GOTREF(__pyx_t_5);
38507
38508 /* "rados.pyx":2762
38509 * else:
38510 * raise LogicError("Ioctx.write_full(%s): rados_write_full \
38511 * returned %d, but should return zero on success." % (self.name, ret)) # <<<<<<<<<<<<<<
38512 *
38513 * @requires(('key', str_type), ('data', bytes))
38514 */
38515 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2762; __pyx_clineno = __LINE__38515; goto __pyx_L1_error;}
38516 __Pyx_GOTREF(__pyx_t_1);
38517 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2762; __pyx_clineno = __LINE__38517; goto __pyx_L1_error;}
38518 __Pyx_GOTREF(__pyx_t_3);
38519 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
38520 __Pyx_GIVEREF(__pyx_v_self->name);
38521 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_v_self
->name)
;
38522 __Pyx_GIVEREF(__pyx_t_1);
38523 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_t_1);
38524 __pyx_t_1 = 0;
38525 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_write_full_s_rados_write_f, __pyx_t_3)PyString_Format(__pyx_kp_s_Ioctx_write_full_s_rados_write_f, __pyx_t_3
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2762; __pyx_clineno = __LINE__38525; goto __pyx_L1_error;}
38526 __Pyx_GOTREF(__pyx_t_1);
38527 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
38528 __pyx_t_3 = NULL((void*)0);
38529 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
38530 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
38531 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
38532 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
38533 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
38534 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
38535 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38536 }
38537 }
38538 if (!__pyx_t_3) {
38539 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__38539; goto __pyx_L1_error;}
38540 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38541 __Pyx_GOTREF(__pyx_t_2);
38542 } else {
38543 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__38543; goto __pyx_L1_error;}
38544 __Pyx_GOTREF(__pyx_t_8);
38545 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
38546 __Pyx_GIVEREF(__pyx_t_1);
38547 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_1);
38548 __pyx_t_1 = 0;
38549 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__38549; goto __pyx_L1_error;}
38550 __Pyx_GOTREF(__pyx_t_2);
38551 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
38552 }
38553 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38554 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
38555 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38556 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__38556; goto __pyx_L1_error;}
38557 }
38558
38559 /* "rados.pyx":2730
38560 *
38561 * @requires(('key', str_type), ('data', bytes))
38562 * def write_full(self, key, data): # <<<<<<<<<<<<<<
38563 * """
38564 * Write an entire object synchronously.
38565 */
38566
38567 /* function exit code */
38568 __pyx_L1_error:;
38569 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
38570 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
38571 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
38572 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
38573 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
38574 __Pyx_AddTraceback("rados.Ioctx.write_full", __pyx_clineno, __pyx_lineno, __pyx_filename);
38575 __pyx_r = NULL((void*)0);
38576 __pyx_L0:;
38577 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
38578 __Pyx_XGIVEREF(__pyx_r);
38579 __Pyx_RefNannyFinishContext();
38580 return __pyx_r;
38581}
38582
38583/* "rados.pyx":2765
38584 *
38585 * @requires(('key', str_type), ('data', bytes))
38586 * def append(self, key, data): # <<<<<<<<<<<<<<
38587 * """
38588 * Append data to an object synchronously
38589 */
38590
38591/* Python wrapper */
38592static PyObject *__pyx_pw_5rados_5Ioctx_47append(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
38593static char __pyx_doc_5rados_5Ioctx_46append[] = "Ioctx.append(self, key, data)\n\n Append data to an object synchronously\n\n :param key: name of the object\n :type key: str\n :param data: data to write\n :type data: bytes\n\n :raises: :class:`TypeError`\n :raises: :class:`LogicError`\n :returns: int - 0 on success\n ";
38594static PyObject *__pyx_pw_5rados_5Ioctx_47append(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
38595 PyObject *__pyx_v_key = 0;
38596 PyObject *__pyx_v_data = 0;
38597 int __pyx_lineno = 0;
38598 const char *__pyx_filename = NULL((void*)0);
38599 int __pyx_clineno = 0;
38600 PyObject *__pyx_r = 0;
38601 __Pyx_RefNannyDeclarations
38602 __Pyx_RefNannySetupContext("append (wrapper)", 0);
38603 {
38604 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_data,0};
38605 PyObject* values[2] = {0,0};
38606 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
38607 Py_ssize_t kw_args;
38608 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
38609 switch (pos_args) {
38610 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
38611 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
38612 case 0: break;
38613 default: goto __pyx_L5_argtuple_error;
38614 }
38615 kw_args = PyDict_Size(__pyx_kwds);
38616 switch (pos_args) {
38617 case 0:
38618 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
38619 else goto __pyx_L5_argtuple_error;
38620 case 1:
38621 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data
)) != 0), 1)
) kw_args--;
38622 else {
38623 __Pyx_RaiseArgtupleInvalid("append", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2765; __pyx_clineno = __LINE__38623; goto __pyx_L3_error;}
38624 }
38625 }
38626 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
38627 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "append") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "append") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2765; __pyx_clineno = __LINE__38627; goto __pyx_L3_error;}
38628 }
38629 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
38630 goto __pyx_L5_argtuple_error;
38631 } else {
38632 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
38633 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
38634 }
38635 __pyx_v_key = values[0];
38636 __pyx_v_data = values[1];
38637 }
38638 goto __pyx_L4_argument_unpacking_done;
38639 __pyx_L5_argtuple_error:;
38640 __Pyx_RaiseArgtupleInvalid("append", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2765; __pyx_clineno = __LINE__38640; goto __pyx_L3_error;}
38641 __pyx_L3_error:;
38642 __Pyx_AddTraceback("rados.Ioctx.append", __pyx_clineno, __pyx_lineno, __pyx_filename);
38643 __Pyx_RefNannyFinishContext();
38644 return NULL((void*)0);
38645 __pyx_L4_argument_unpacking_done:;
38646 __pyx_r = __pyx_pf_5rados_5Ioctx_46append(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_data);
38647
38648 /* function exit code */
38649 __Pyx_RefNannyFinishContext();
38650 return __pyx_r;
38651}
38652
38653static PyObject *__pyx_pf_5rados_5Ioctx_46append(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_data) {
38654 char *__pyx_v__key;
38655 char *__pyx_v__data;
38656 size_t __pyx_v_length;
38657 int __pyx_v_ret;
38658 PyObject *__pyx_r = NULL((void*)0);
38659 __Pyx_RefNannyDeclarations
38660 PyObject *__pyx_t_1 = NULL((void*)0);
38661 PyObject *__pyx_t_2 = NULL((void*)0);
38662 PyObject *__pyx_t_3 = NULL((void*)0);
38663 Py_ssize_t __pyx_t_4;
38664 PyObject *__pyx_t_5 = NULL((void*)0);
38665 char *__pyx_t_6;
38666 int __pyx_t_7;
38667 PyObject *__pyx_t_8 = NULL((void*)0);
38668 int __pyx_lineno = 0;
38669 const char *__pyx_filename = NULL((void*)0);
38670 int __pyx_clineno = 0;
38671 __Pyx_RefNannySetupContext("append", 0);
38672 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
38673
38674 /* "rados.pyx":2778
38675 * :returns: int - 0 on success
38676 * """
38677 * self.require_ioctx_open() # <<<<<<<<<<<<<<
38678 * key = cstr(key, 'key')
38679 * cdef:
38680 */
38681 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__38681; goto __pyx_L1_error;}
38682 __Pyx_GOTREF(__pyx_t_2);
38683 __pyx_t_3 = NULL((void*)0);
38684 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
38685 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
38686 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
38687 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
38688 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
38689 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
38690 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38691 }
38692 }
38693 if (__pyx_t_3) {
38694 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__38694; goto __pyx_L1_error;}
38695 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
38696 } else {
38697 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2778; __pyx_clineno = __LINE__38697; goto __pyx_L1_error;}
38698 }
38699 __Pyx_GOTREF(__pyx_t_1);
38700 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38701 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38702
38703 /* "rados.pyx":2779
38704 * """
38705 * self.require_ioctx_open()
38706 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
38707 * cdef:
38708 * char *_key = key
38709 */
38710 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2779; __pyx_clineno = __LINE__38710; goto __pyx_L1_error;}
38711 __Pyx_GOTREF(__pyx_t_2);
38712 __pyx_t_3 = NULL((void*)0);
38713 __pyx_t_4 = 0;
38714 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
38715 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
38716 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
38717 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
38718 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
38719 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
38720 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38721 __pyx_t_4 = 1;
38722 }
38723 }
38724 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2779; __pyx_clineno = __LINE__38724; goto __pyx_L1_error;}
38725 __Pyx_GOTREF(__pyx_t_5);
38726 if (__pyx_t_3) {
38727 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
38728 }
38729 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
38730 __Pyx_GIVEREF(__pyx_v_key);
38731 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
38732 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
38733 __Pyx_GIVEREF(__pyx_n_s_key);
38734 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
38735 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2779; __pyx_clineno = __LINE__38735; goto __pyx_L1_error;}
38736 __Pyx_GOTREF(__pyx_t_1);
38737 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38738 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38739 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38740 __pyx_t_1 = 0;
38741
38742 /* "rados.pyx":2781
38743 * key = cstr(key, 'key')
38744 * cdef:
38745 * char *_key = key # <<<<<<<<<<<<<<
38746 * char *_data = data
38747 * size_t length = len(data)
38748 */
38749 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2781; __pyx_clineno = __LINE__38749; goto __pyx_L1_error;}
38750 __pyx_v__key = __pyx_t_6;
38751
38752 /* "rados.pyx":2782
38753 * cdef:
38754 * char *_key = key
38755 * char *_data = data # <<<<<<<<<<<<<<
38756 * size_t length = len(data)
38757 *
38758 */
38759 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_data); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2782; __pyx_clineno = __LINE__38759; goto __pyx_L1_error;}
38760 __pyx_v__data = __pyx_t_6;
38761
38762 /* "rados.pyx":2783
38763 * char *_key = key
38764 * char *_data = data
38765 * size_t length = len(data) # <<<<<<<<<<<<<<
38766 *
38767 * with nogil:
38768 */
38769 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2783; __pyx_clineno = __LINE__38769; goto __pyx_L1_error;}
38770 __pyx_v_length = __pyx_t_4;
38771
38772 /* "rados.pyx":2785
38773 * size_t length = len(data)
38774 *
38775 * with nogil: # <<<<<<<<<<<<<<
38776 * ret = rados_append(self.io, _key, _data, length)
38777 * if ret == 0:
38778 */
38779 {
38780 #ifdef WITH_THREAD1
38781 PyThreadState *_save;
38782 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
38783 #endif
38784 /*try:*/ {
38785
38786 /* "rados.pyx":2786
38787 *
38788 * with nogil:
38789 * ret = rados_append(self.io, _key, _data, length) # <<<<<<<<<<<<<<
38790 * if ret == 0:
38791 * return ret
38792 */
38793 __pyx_v_ret = rados_append(__pyx_v_self->io, __pyx_v__key, __pyx_v__data, __pyx_v_length);
38794 }
38795
38796 /* "rados.pyx":2785
38797 * size_t length = len(data)
38798 *
38799 * with nogil: # <<<<<<<<<<<<<<
38800 * ret = rados_append(self.io, _key, _data, length)
38801 * if ret == 0:
38802 */
38803 /*finally:*/ {
38804 /*normal exit:*/{
38805 #ifdef WITH_THREAD1
38806 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
38807 #endif
38808 goto __pyx_L5;
38809 }
38810 __pyx_L5:;
38811 }
38812 }
38813
38814 /* "rados.pyx":2787
38815 * with nogil:
38816 * ret = rados_append(self.io, _key, _data, length)
38817 * if ret == 0: # <<<<<<<<<<<<<<
38818 * return ret
38819 * elif ret < 0:
38820 */
38821 __pyx_t_7 = ((__pyx_v_ret == 0) != 0);
38822 if (__pyx_t_7) {
38823
38824 /* "rados.pyx":2788
38825 * ret = rados_append(self.io, _key, _data, length)
38826 * if ret == 0:
38827 * return ret # <<<<<<<<<<<<<<
38828 * elif ret < 0:
38829 * raise make_ex(ret, "Ioctx.append(%s): failed to append %s"
38830 */
38831 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
38832 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2788; __pyx_clineno = __LINE__38832; goto __pyx_L1_error;}
38833 __Pyx_GOTREF(__pyx_t_1);
38834 __pyx_r = __pyx_t_1;
38835 __pyx_t_1 = 0;
38836 goto __pyx_L0;
38837
38838 /* "rados.pyx":2787
38839 * with nogil:
38840 * ret = rados_append(self.io, _key, _data, length)
38841 * if ret == 0: # <<<<<<<<<<<<<<
38842 * return ret
38843 * elif ret < 0:
38844 */
38845 }
38846
38847 /* "rados.pyx":2789
38848 * if ret == 0:
38849 * return ret
38850 * elif ret < 0: # <<<<<<<<<<<<<<
38851 * raise make_ex(ret, "Ioctx.append(%s): failed to append %s"
38852 * % (self.name, key))
38853 */
38854 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
38855 if (__pyx_t_7) {
38856
38857 /* "rados.pyx":2790
38858 * return ret
38859 * elif ret < 0:
38860 * raise make_ex(ret, "Ioctx.append(%s): failed to append %s" # <<<<<<<<<<<<<<
38861 * % (self.name, key))
38862 * else:
38863 */
38864 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2790; __pyx_clineno = __LINE__38864; goto __pyx_L1_error;}
38865 __Pyx_GOTREF(__pyx_t_1);
38866
38867 /* "rados.pyx":2791
38868 * elif ret < 0:
38869 * raise make_ex(ret, "Ioctx.append(%s): failed to append %s"
38870 * % (self.name, key)) # <<<<<<<<<<<<<<
38871 * else:
38872 * raise LogicError("Ioctx.append(%s): rados_append \
38873 */
38874 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2791; __pyx_clineno = __LINE__38874; goto __pyx_L1_error;}
38875 __Pyx_GOTREF(__pyx_t_2);
38876 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
38877 __Pyx_GIVEREF(__pyx_v_self->name);
38878 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
38879 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
38880 __Pyx_GIVEREF(__pyx_v_key);
38881 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_key);
38882 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_append_s_failed_to_append, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_append_s_failed_to_append, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2791; __pyx_clineno = __LINE__38882; goto __pyx_L1_error;}
38883 __Pyx_GOTREF(__pyx_t_5);
38884 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38885
38886 /* "rados.pyx":2790
38887 * return ret
38888 * elif ret < 0:
38889 * raise make_ex(ret, "Ioctx.append(%s): failed to append %s" # <<<<<<<<<<<<<<
38890 * % (self.name, key))
38891 * else:
38892 */
38893 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2790; __pyx_clineno = __LINE__38893; goto __pyx_L1_error;}
38894 __Pyx_GOTREF(__pyx_t_2);
38895 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38896 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38897 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
38898 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38899 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2790; __pyx_clineno = __LINE__38899; goto __pyx_L1_error;}
38900
38901 /* "rados.pyx":2789
38902 * if ret == 0:
38903 * return ret
38904 * elif ret < 0: # <<<<<<<<<<<<<<
38905 * raise make_ex(ret, "Ioctx.append(%s): failed to append %s"
38906 * % (self.name, key))
38907 */
38908 }
38909
38910 /* "rados.pyx":2793
38911 * % (self.name, key))
38912 * else:
38913 * raise LogicError("Ioctx.append(%s): rados_append \ # <<<<<<<<<<<<<<
38914 * returned %d, but should return zero on success." % (self.name, ret))
38915 *
38916 */
38917 /*else*/ {
38918 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2793; __pyx_clineno = __LINE__38918; goto __pyx_L1_error;}
38919 __Pyx_GOTREF(__pyx_t_5);
38920
38921 /* "rados.pyx":2794
38922 * else:
38923 * raise LogicError("Ioctx.append(%s): rados_append \
38924 * returned %d, but should return zero on success." % (self.name, ret)) # <<<<<<<<<<<<<<
38925 *
38926 * @requires(('key', str_type))
38927 */
38928 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2794; __pyx_clineno = __LINE__38928; goto __pyx_L1_error;}
38929 __Pyx_GOTREF(__pyx_t_1);
38930 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2794; __pyx_clineno = __LINE__38930; goto __pyx_L1_error;}
38931 __Pyx_GOTREF(__pyx_t_3);
38932 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
38933 __Pyx_GIVEREF(__pyx_v_self->name);
38934 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_v_self
->name)
;
38935 __Pyx_GIVEREF(__pyx_t_1);
38936 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_t_1);
38937 __pyx_t_1 = 0;
38938 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_append_s_rados_append_retu, __pyx_t_3)PyString_Format(__pyx_kp_s_Ioctx_append_s_rados_append_retu, __pyx_t_3
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2794; __pyx_clineno = __LINE__38938; goto __pyx_L1_error;}
38939 __Pyx_GOTREF(__pyx_t_1);
38940 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
38941 __pyx_t_3 = NULL((void*)0);
38942 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
38943 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
38944 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
38945 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
38946 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
38947 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
38948 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
38949 }
38950 }
38951 if (!__pyx_t_3) {
38952 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2793; __pyx_clineno = __LINE__38952; goto __pyx_L1_error;}
38953 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
38954 __Pyx_GOTREF(__pyx_t_2);
38955 } else {
38956 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2793; __pyx_clineno = __LINE__38956; goto __pyx_L1_error;}
38957 __Pyx_GOTREF(__pyx_t_8);
38958 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
38959 __Pyx_GIVEREF(__pyx_t_1);
38960 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_1);
38961 __pyx_t_1 = 0;
38962 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2793; __pyx_clineno = __LINE__38962; goto __pyx_L1_error;}
38963 __Pyx_GOTREF(__pyx_t_2);
38964 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
38965 }
38966 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
38967 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
38968 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
38969 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2793; __pyx_clineno = __LINE__38969; goto __pyx_L1_error;}
38970 }
38971
38972 /* "rados.pyx":2765
38973 *
38974 * @requires(('key', str_type), ('data', bytes))
38975 * def append(self, key, data): # <<<<<<<<<<<<<<
38976 * """
38977 * Append data to an object synchronously
38978 */
38979
38980 /* function exit code */
38981 __pyx_L1_error:;
38982 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
38983 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
38984 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
38985 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
38986 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
38987 __Pyx_AddTraceback("rados.Ioctx.append", __pyx_clineno, __pyx_lineno, __pyx_filename);
38988 __pyx_r = NULL((void*)0);
38989 __pyx_L0:;
38990 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
38991 __Pyx_XGIVEREF(__pyx_r);
38992 __Pyx_RefNannyFinishContext();
38993 return __pyx_r;
38994}
38995
38996/* "rados.pyx":2797
38997 *
38998 * @requires(('key', str_type))
38999 * def read(self, key, length=8192, offset=0): # <<<<<<<<<<<<<<
39000 * """
39001 * Read data from an object synchronously
39002 */
39003
39004/* Python wrapper */
39005static PyObject *__pyx_pw_5rados_5Ioctx_49read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39006static char __pyx_doc_5rados_5Ioctx_48read[] = "Ioctx.read(self, key, length=8192, offset=0)\n\n Read data from an object synchronously\n\n :param key: name of the object\n :type key: str\n :param length: the number of bytes to read (default=8192)\n :type length: int\n :param offset: byte offset in the object to begin reading at\n :type offset: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: str - data read from object\n ";
39007static PyObject *__pyx_pw_5rados_5Ioctx_49read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39008 PyObject *__pyx_v_key = 0;
39009 PyObject *__pyx_v_length = 0;
39010 PyObject *__pyx_v_offset = 0;
39011 int __pyx_lineno = 0;
39012 const char *__pyx_filename = NULL((void*)0);
39013 int __pyx_clineno = 0;
39014 PyObject *__pyx_r = 0;
39015 __Pyx_RefNannyDeclarations
39016 __Pyx_RefNannySetupContext("read (wrapper)", 0);
39017 {
39018 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_length,&__pyx_n_s_offset,0};
39019 PyObject* values[3] = {0,0,0};
39020 values[1] = ((PyObject *)__pyx_int_8192);
39021 values[2] = ((PyObject *)__pyx_int_0);
39022 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
39023 Py_ssize_t kw_args;
39024 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
39025 switch (pos_args) {
39026 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
39027 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
39028 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
39029 case 0: break;
39030 default: goto __pyx_L5_argtuple_error;
39031 }
39032 kw_args = PyDict_Size(__pyx_kwds);
39033 switch (pos_args) {
39034 case 0:
39035 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
39036 else goto __pyx_L5_argtuple_error;
39037 case 1:
39038 if (kw_args > 0) {
39039 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length);
39040 if (value) { values[1] = value; kw_args--; }
39041 }
39042 case 2:
39043 if (kw_args > 0) {
39044 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset);
39045 if (value) { values[2] = value; kw_args--; }
39046 }
39047 }
39048 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
39049 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "read") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__39049; goto __pyx_L3_error;}
39050 }
39051 } else {
39052 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
39053 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
39054 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
39055 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
39056 break;
39057 default: goto __pyx_L5_argtuple_error;
39058 }
39059 }
39060 __pyx_v_key = values[0];
39061 __pyx_v_length = values[1];
39062 __pyx_v_offset = values[2];
39063 }
39064 goto __pyx_L4_argument_unpacking_done;
39065 __pyx_L5_argtuple_error:;
39066 __Pyx_RaiseArgtupleInvalid("read", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__39066; goto __pyx_L3_error;}
39067 __pyx_L3_error:;
39068 __Pyx_AddTraceback("rados.Ioctx.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
39069 __Pyx_RefNannyFinishContext();
39070 return NULL((void*)0);
39071 __pyx_L4_argument_unpacking_done:;
39072 __pyx_r = __pyx_pf_5rados_5Ioctx_48read(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_length, __pyx_v_offset);
39073
39074 /* function exit code */
39075 __Pyx_RefNannyFinishContext();
39076 return __pyx_r;
39077}
39078
39079static PyObject *__pyx_pf_5rados_5Ioctx_48read(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_length, PyObject *__pyx_v_offset) {
39080 char *__pyx_v__key;
39081 char *__pyx_v_ret_buf;
39082 uint64_t __pyx_v__offset;
39083 size_t __pyx_v__length;
39084 PyObject *__pyx_v_ret_s;
39085 int __pyx_v_ret;
39086 PyObject *__pyx_r = NULL((void*)0);
39087 __Pyx_RefNannyDeclarations
39088 PyObject *__pyx_t_1 = NULL((void*)0);
39089 PyObject *__pyx_t_2 = NULL((void*)0);
39090 PyObject *__pyx_t_3 = NULL((void*)0);
39091 Py_ssize_t __pyx_t_4;
39092 PyObject *__pyx_t_5 = NULL((void*)0);
39093 char *__pyx_t_6;
39094 uint64_t __pyx_t_7;
39095 size_t __pyx_t_8;
39096 PyObject *__pyx_t_9;
39097 int __pyx_t_10;
39098 int __pyx_t_11;
39099 int __pyx_t_12;
39100 char const *__pyx_t_13;
39101 PyObject *__pyx_t_14 = NULL((void*)0);
39102 PyObject *__pyx_t_15 = NULL((void*)0);
39103 PyObject *__pyx_t_16 = NULL((void*)0);
39104 PyObject *__pyx_t_17 = NULL((void*)0);
39105 PyObject *__pyx_t_18 = NULL((void*)0);
39106 PyObject *__pyx_t_19 = NULL((void*)0);
39107 int __pyx_lineno = 0;
39108 const char *__pyx_filename = NULL((void*)0);
39109 int __pyx_clineno = 0;
39110 __Pyx_RefNannySetupContext("read", 0);
39111 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
39112
39113 /* "rados.pyx":2812
39114 * :returns: str - data read from object
39115 * """
39116 * self.require_ioctx_open() # <<<<<<<<<<<<<<
39117 * key = cstr(key, 'key')
39118 * cdef:
39119 */
39120 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__39120; goto __pyx_L1_error;}
39121 __Pyx_GOTREF(__pyx_t_2);
39122 __pyx_t_3 = NULL((void*)0);
39123 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
39124 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
39125 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
39126 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
39127 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
39128 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
39129 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39130 }
39131 }
39132 if (__pyx_t_3) {
39133 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__39133; goto __pyx_L1_error;}
39134 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
39135 } else {
39136 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__39136; goto __pyx_L1_error;}
39137 }
39138 __Pyx_GOTREF(__pyx_t_1);
39139 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39140 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
39141
39142 /* "rados.pyx":2813
39143 * """
39144 * self.require_ioctx_open()
39145 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
39146 * cdef:
39147 * char *_key = key
39148 */
39149 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__39149; goto __pyx_L1_error;}
39150 __Pyx_GOTREF(__pyx_t_2);
39151 __pyx_t_3 = NULL((void*)0);
39152 __pyx_t_4 = 0;
39153 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
39154 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
39155 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
39156 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
39157 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
39158 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
39159 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39160 __pyx_t_4 = 1;
39161 }
39162 }
39163 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__39163; goto __pyx_L1_error;}
39164 __Pyx_GOTREF(__pyx_t_5);
39165 if (__pyx_t_3) {
39166 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
39167 }
39168 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
39169 __Pyx_GIVEREF(__pyx_v_key);
39170 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
39171 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
39172 __Pyx_GIVEREF(__pyx_n_s_key);
39173 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
39174 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2813; __pyx_clineno = __LINE__39174; goto __pyx_L1_error;}
39175 __Pyx_GOTREF(__pyx_t_1);
39176 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
39177 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39178 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39179 __pyx_t_1 = 0;
39180
39181 /* "rados.pyx":2815
39182 * key = cstr(key, 'key')
39183 * cdef:
39184 * char *_key = key # <<<<<<<<<<<<<<
39185 * char *ret_buf
39186 * uint64_t _offset = offset
39187 */
39188 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__39188; goto __pyx_L1_error;}
39189 __pyx_v__key = __pyx_t_6;
39190
39191 /* "rados.pyx":2817
39192 * char *_key = key
39193 * char *ret_buf
39194 * uint64_t _offset = offset # <<<<<<<<<<<<<<
39195 * size_t _length = length
39196 * PyObject* ret_s = NULL
39197 */
39198 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_offset); if (unlikely((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2817; __pyx_clineno = __LINE__39198; goto __pyx_L1_error;}
39199 __pyx_v__offset = __pyx_t_7;
39200
39201 /* "rados.pyx":2818
39202 * char *ret_buf
39203 * uint64_t _offset = offset
39204 * size_t _length = length # <<<<<<<<<<<<<<
39205 * PyObject* ret_s = NULL
39206 *
39207 */
39208 __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_v_length); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_8 == (size_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2818; __pyx_clineno = __LINE__39208; goto __pyx_L1_error;}
39209 __pyx_v__length = __pyx_t_8;
39210
39211 /* "rados.pyx":2819
39212 * uint64_t _offset = offset
39213 * size_t _length = length
39214 * PyObject* ret_s = NULL # <<<<<<<<<<<<<<
39215 *
39216 * ret_s = PyBytes_FromStringAndSize(NULL, length)
39217 */
39218 __pyx_v_ret_s = NULL((void*)0);
39219
39220 /* "rados.pyx":2821
39221 * PyObject* ret_s = NULL
39222 *
39223 * ret_s = PyBytes_FromStringAndSize(NULL, length) # <<<<<<<<<<<<<<
39224 * try:
39225 * ret_buf = PyBytes_AsString(ret_s)
39226 */
39227 __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_length); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2821; __pyx_clineno = __LINE__39227; goto __pyx_L1_error;}
39228 __pyx_t_9 = PyBytes_FromStringAndSizePyString_FromStringAndSize(NULL((void*)0), __pyx_t_4); if (unlikely(__pyx_t_9 == NULL)__builtin_expect(!!(__pyx_t_9 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2821; __pyx_clineno = __LINE__39228; goto __pyx_L1_error;}
39229 __pyx_v_ret_s = __pyx_t_9;
39230
39231 /* "rados.pyx":2822
39232 *
39233 * ret_s = PyBytes_FromStringAndSize(NULL, length)
39234 * try: # <<<<<<<<<<<<<<
39235 * ret_buf = PyBytes_AsString(ret_s)
39236 * with nogil:
39237 */
39238 /*try:*/ {
39239
39240 /* "rados.pyx":2823
39241 * ret_s = PyBytes_FromStringAndSize(NULL, length)
39242 * try:
39243 * ret_buf = PyBytes_AsString(ret_s) # <<<<<<<<<<<<<<
39244 * with nogil:
39245 * ret = rados_read(self.io, _key, ret_buf, _length, _offset)
39246 */
39247 __pyx_t_6 = PyBytes_AsStringPyString_AsString(__pyx_v_ret_s); if (unlikely(__pyx_t_6 == NULL)__builtin_expect(!!(__pyx_t_6 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2823; __pyx_clineno = __LINE__39247; goto __pyx_L4_error;}
39248 __pyx_v_ret_buf = __pyx_t_6;
39249
39250 /* "rados.pyx":2824
39251 * try:
39252 * ret_buf = PyBytes_AsString(ret_s)
39253 * with nogil: # <<<<<<<<<<<<<<
39254 * ret = rados_read(self.io, _key, ret_buf, _length, _offset)
39255 * if ret < 0:
39256 */
39257 {
39258 #ifdef WITH_THREAD1
39259 PyThreadState *_save;
39260 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
39261 #endif
39262 /*try:*/ {
39263
39264 /* "rados.pyx":2825
39265 * ret_buf = PyBytes_AsString(ret_s)
39266 * with nogil:
39267 * ret = rados_read(self.io, _key, ret_buf, _length, _offset) # <<<<<<<<<<<<<<
39268 * if ret < 0:
39269 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39270 */
39271 __pyx_v_ret = rados_read(__pyx_v_self->io, __pyx_v__key, __pyx_v_ret_buf, __pyx_v__length, __pyx_v__offset);
39272 }
39273
39274 /* "rados.pyx":2824
39275 * try:
39276 * ret_buf = PyBytes_AsString(ret_s)
39277 * with nogil: # <<<<<<<<<<<<<<
39278 * ret = rados_read(self.io, _key, ret_buf, _length, _offset)
39279 * if ret < 0:
39280 */
39281 /*finally:*/ {
39282 /*normal exit:*/{
39283 #ifdef WITH_THREAD1
39284 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
39285 #endif
39286 goto __pyx_L8;
39287 }
39288 __pyx_L8:;
39289 }
39290 }
39291
39292 /* "rados.pyx":2826
39293 * with nogil:
39294 * ret = rados_read(self.io, _key, ret_buf, _length, _offset)
39295 * if ret < 0: # <<<<<<<<<<<<<<
39296 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39297 *
39298 */
39299 __pyx_t_10 = ((__pyx_v_ret < 0) != 0);
39300 if (__pyx_t_10) {
39301
39302 /* "rados.pyx":2827
39303 * ret = rados_read(self.io, _key, ret_buf, _length, _offset)
39304 * if ret < 0:
39305 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key)) # <<<<<<<<<<<<<<
39306 *
39307 * if ret != length:
39308 */
39309 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__39309; goto __pyx_L4_error;}
39310 __Pyx_GOTREF(__pyx_t_1);
39311 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__39311; goto __pyx_L4_error;}
39312 __Pyx_GOTREF(__pyx_t_2);
39313 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
39314 __Pyx_GIVEREF(__pyx_v_self->name);
39315 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
39316 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
39317 __Pyx_GIVEREF(__pyx_v_key);
39318 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_key);
39319 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_read_s_failed_to_read_s, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_read_s_failed_to_read_s, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__39319; goto __pyx_L4_error;}
39320 __Pyx_GOTREF(__pyx_t_5);
39321 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39322 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__39322; goto __pyx_L4_error;}
39323 __Pyx_GOTREF(__pyx_t_2);
39324 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
39325 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
39326 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
39327 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39328 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__39328; goto __pyx_L4_error;}
39329
39330 /* "rados.pyx":2826
39331 * with nogil:
39332 * ret = rados_read(self.io, _key, ret_buf, _length, _offset)
39333 * if ret < 0: # <<<<<<<<<<<<<<
39334 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39335 *
39336 */
39337 }
39338
39339 /* "rados.pyx":2829
39340 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39341 *
39342 * if ret != length: # <<<<<<<<<<<<<<
39343 * _PyBytes_Resize(&ret_s, ret)
39344 *
39345 */
39346 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__39346; goto __pyx_L4_error;}
39347 __Pyx_GOTREF(__pyx_t_2);
39348 __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_v_length, Py_NE3); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__39348; goto __pyx_L4_error;}
39349 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39350 __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_10 < 0)__builtin_expect(!!(__pyx_t_10 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__39350; goto __pyx_L4_error;}
39351 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
39352 if (__pyx_t_10) {
39353
39354 /* "rados.pyx":2830
39355 *
39356 * if ret != length:
39357 * _PyBytes_Resize(&ret_s, ret) # <<<<<<<<<<<<<<
39358 *
39359 * return <object>ret_s
39360 */
39361 __pyx_t_11 = _PyBytes_Resize_PyString_Resize((&__pyx_v_ret_s), __pyx_v_ret); if (unlikely(__pyx_t_11 == -1)__builtin_expect(!!(__pyx_t_11 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __pyx_clineno = __LINE__39361; goto __pyx_L4_error;}
39362
39363 /* "rados.pyx":2829
39364 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39365 *
39366 * if ret != length: # <<<<<<<<<<<<<<
39367 * _PyBytes_Resize(&ret_s, ret)
39368 *
39369 */
39370 }
39371
39372 /* "rados.pyx":2832
39373 * _PyBytes_Resize(&ret_s, ret)
39374 *
39375 * return <object>ret_s # <<<<<<<<<<<<<<
39376 * finally:
39377 * # We DECREF unconditionally: the cast to object above will have
39378 */
39379 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
39380 __Pyx_INCREF(((PyObject *)__pyx_v_ret_s))( ((PyObject*)(((PyObject *)__pyx_v_ret_s)))->ob_refcnt++);
39381 __pyx_r = ((PyObject *)__pyx_v_ret_s);
39382 goto __pyx_L3_return;
39383 }
39384
39385 /* "rados.pyx":2838
39386 * # including if _PyString_Resize fails (that will free the string
39387 * # itself and set ret_s to NULL, hence XDECREF).
39388 * ref.Py_XDECREF(ret_s) # <<<<<<<<<<<<<<
39389 *
39390 * @requires(('key', str_type), ('cls', str_type), ('method', str_type), ('data', bytes))
39391 */
39392 /*finally:*/ {
39393 /*exception exit:*/{
39394 __pyx_L4_error:;
39395 __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
39396 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
39397 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
39398 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
39399 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
39400 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
39401 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_14, &
__pyx_t_15, &__pyx_t_16) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
39402 __Pyx_XGOTREF(__pyx_t_14);
39403 __Pyx_XGOTREF(__pyx_t_15);
39404 __Pyx_XGOTREF(__pyx_t_16);
39405 __Pyx_XGOTREF(__pyx_t_17);
39406 __Pyx_XGOTREF(__pyx_t_18);
39407 __Pyx_XGOTREF(__pyx_t_19);
39408 __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
39409 {
39410 Py_XDECREF(__pyx_v_ret_s)do { if ((__pyx_v_ret_s) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_ret_s))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_ret_s)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_ret_s)))); } while (0); }
while (0)
;
39411 }
39412 if (PY_MAJOR_VERSION2 >= 3) {
39413 __Pyx_XGIVEREF(__pyx_t_17);
39414 __Pyx_XGIVEREF(__pyx_t_18);
39415 __Pyx_XGIVEREF(__pyx_t_19);
39416 __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
39417 }
39418 __Pyx_XGIVEREF(__pyx_t_14);
39419 __Pyx_XGIVEREF(__pyx_t_15);
39420 __Pyx_XGIVEREF(__pyx_t_16);
39421 __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
39422 __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
39423 __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
39424 goto __pyx_L1_error;
39425 }
39426 __pyx_L3_return: {
39427 __pyx_t_19 = __pyx_r;
39428 __pyx_r = 0;
39429 Py_XDECREF(__pyx_v_ret_s)do { if ((__pyx_v_ret_s) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_ret_s))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_ret_s)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_ret_s)))); } while (0); }
while (0)
;
39430 __pyx_r = __pyx_t_19;
39431 __pyx_t_19 = 0;
39432 goto __pyx_L0;
39433 }
39434 }
39435
39436 /* "rados.pyx":2797
39437 *
39438 * @requires(('key', str_type))
39439 * def read(self, key, length=8192, offset=0): # <<<<<<<<<<<<<<
39440 * """
39441 * Read data from an object synchronously
39442 */
39443
39444 /* function exit code */
39445 __pyx_L1_error:;
39446 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
39447 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
39448 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
39449 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
39450 __Pyx_AddTraceback("rados.Ioctx.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
39451 __pyx_r = NULL((void*)0);
39452 __pyx_L0:;
39453 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
39454 __Pyx_XGIVEREF(__pyx_r);
39455 __Pyx_RefNannyFinishContext();
39456 return __pyx_r;
39457}
39458
39459/* "rados.pyx":2841
39460 *
39461 * @requires(('key', str_type), ('cls', str_type), ('method', str_type), ('data', bytes))
39462 * def execute(self, key, cls, method, data, length=8192): # <<<<<<<<<<<<<<
39463 * """
39464 * Execute an OSD class method on an object.
39465 */
39466
39467/* Python wrapper */
39468static PyObject *__pyx_pw_5rados_5Ioctx_51execute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
39469static char __pyx_doc_5rados_5Ioctx_50execute[] = "Ioctx.execute(self, key, cls, method, data, length=8192)\n\n Execute an OSD class method on an object.\n\n :param key: name of the object\n :type key: str\n :param cls: name of the object class\n :type cls: str\n :param method: name of the method\n :type method: str\n :param data: input data\n :type data: bytes\n :param length: size of output buffer in bytes (default=8192)\n :type length: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: (ret, method output)\n ";
39470static PyObject *__pyx_pw_5rados_5Ioctx_51execute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
39471 PyObject *__pyx_v_key = 0;
39472 PyObject *__pyx_v_cls = 0;
39473 PyObject *__pyx_v_method = 0;
39474 PyObject *__pyx_v_data = 0;
39475 PyObject *__pyx_v_length = 0;
39476 int __pyx_lineno = 0;
39477 const char *__pyx_filename = NULL((void*)0);
39478 int __pyx_clineno = 0;
39479 PyObject *__pyx_r = 0;
39480 __Pyx_RefNannyDeclarations
39481 __Pyx_RefNannySetupContext("execute (wrapper)", 0);
39482 {
39483 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_cls,&__pyx_n_s_method,&__pyx_n_s_data,&__pyx_n_s_length,0};
39484 PyObject* values[5] = {0,0,0,0,0};
39485 values[4] = ((PyObject *)__pyx_int_8192);
39486 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
39487 Py_ssize_t kw_args;
39488 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
39489 switch (pos_args) {
39490 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
39491 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
39492 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
39493 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
39494 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
39495 case 0: break;
39496 default: goto __pyx_L5_argtuple_error;
39497 }
39498 kw_args = PyDict_Size(__pyx_kwds);
39499 switch (pos_args) {
39500 case 0:
39501 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
39502 else goto __pyx_L5_argtuple_error;
39503 case 1:
39504 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cls)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cls
)) != 0), 1)
) kw_args--;
39505 else {
39506 __Pyx_RaiseArgtupleInvalid("execute", 0, 4, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2841; __pyx_clineno = __LINE__39506; goto __pyx_L3_error;}
39507 }
39508 case 2:
39509 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method
)) != 0), 1)
) kw_args--;
39510 else {
39511 __Pyx_RaiseArgtupleInvalid("execute", 0, 4, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2841; __pyx_clineno = __LINE__39511; goto __pyx_L3_error;}
39512 }
39513 case 3:
39514 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data
)) != 0), 1)
) kw_args--;
39515 else {
39516 __Pyx_RaiseArgtupleInvalid("execute", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2841; __pyx_clineno = __LINE__39516; goto __pyx_L3_error;}
39517 }
39518 case 4:
39519 if (kw_args > 0) {
39520 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length);
39521 if (value) { values[4] = value; kw_args--; }
39522 }
39523 }
39524 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
39525 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "execute") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "execute") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2841; __pyx_clineno = __LINE__39525; goto __pyx_L3_error;}
39526 }
39527 } else {
39528 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
39529 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
39530 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
39531 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
39532 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
39533 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
39534 break;
39535 default: goto __pyx_L5_argtuple_error;
39536 }
39537 }
39538 __pyx_v_key = values[0];
39539 __pyx_v_cls = values[1];
39540 __pyx_v_method = values[2];
39541 __pyx_v_data = values[3];
39542 __pyx_v_length = values[4];
39543 }
39544 goto __pyx_L4_argument_unpacking_done;
39545 __pyx_L5_argtuple_error:;
39546 __Pyx_RaiseArgtupleInvalid("execute", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2841; __pyx_clineno = __LINE__39546; goto __pyx_L3_error;}
39547 __pyx_L3_error:;
39548 __Pyx_AddTraceback("rados.Ioctx.execute", __pyx_clineno, __pyx_lineno, __pyx_filename);
39549 __Pyx_RefNannyFinishContext();
39550 return NULL((void*)0);
39551 __pyx_L4_argument_unpacking_done:;
39552 __pyx_r = __pyx_pf_5rados_5Ioctx_50execute(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_cls, __pyx_v_method, __pyx_v_data, __pyx_v_length);
39553
39554 /* function exit code */
39555 __Pyx_RefNannyFinishContext();
39556 return __pyx_r;
39557}
39558
39559static PyObject *__pyx_pf_5rados_5Ioctx_50execute(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_cls, PyObject *__pyx_v_method, PyObject *__pyx_v_data, PyObject *__pyx_v_length) {
39560 char *__pyx_v__key;
39561 char *__pyx_v__cls;
39562 char *__pyx_v__method;
39563 char *__pyx_v__data;
39564 size_t __pyx_v__data_len;
39565 size_t __pyx_v__length;
39566 PyObject *__pyx_v_ret_s;
39567 char *__pyx_v_ret_buf;
39568 int __pyx_v_ret;
39569 PyObject *__pyx_r = NULL((void*)0);
39570 __Pyx_RefNannyDeclarations
39571 PyObject *__pyx_t_1 = NULL((void*)0);
39572 PyObject *__pyx_t_2 = NULL((void*)0);
39573 PyObject *__pyx_t_3 = NULL((void*)0);
39574 Py_ssize_t __pyx_t_4;
39575 PyObject *__pyx_t_5 = NULL((void*)0);
39576 char *__pyx_t_6;
39577 size_t __pyx_t_7;
39578 PyObject *__pyx_t_8;
39579 int __pyx_t_9;
39580 int __pyx_t_10;
39581 int __pyx_t_11;
39582 char const *__pyx_t_12;
39583 PyObject *__pyx_t_13 = NULL((void*)0);
39584 PyObject *__pyx_t_14 = NULL((void*)0);
39585 PyObject *__pyx_t_15 = NULL((void*)0);
39586 PyObject *__pyx_t_16 = NULL((void*)0);
39587 PyObject *__pyx_t_17 = NULL((void*)0);
39588 PyObject *__pyx_t_18 = NULL((void*)0);
39589 int __pyx_lineno = 0;
39590 const char *__pyx_filename = NULL((void*)0);
39591 int __pyx_clineno = 0;
39592 __Pyx_RefNannySetupContext("execute", 0);
39593 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
39594 __Pyx_INCREF(__pyx_v_cls)( ((PyObject*)(__pyx_v_cls))->ob_refcnt++);
39595 __Pyx_INCREF(__pyx_v_method)( ((PyObject*)(__pyx_v_method))->ob_refcnt++);
39596
39597 /* "rados.pyx":2860
39598 * :returns: (ret, method output)
39599 * """
39600 * self.require_ioctx_open() # <<<<<<<<<<<<<<
39601 *
39602 * key = cstr(key, 'key')
39603 */
39604 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2860; __pyx_clineno = __LINE__39604; goto __pyx_L1_error;}
39605 __Pyx_GOTREF(__pyx_t_2);
39606 __pyx_t_3 = NULL((void*)0);
39607 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
39608 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
39609 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
39610 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
39611 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
39612 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
39613 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39614 }
39615 }
39616 if (__pyx_t_3) {
39617 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2860; __pyx_clineno = __LINE__39617; goto __pyx_L1_error;}
39618 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
39619 } else {
39620 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2860; __pyx_clineno = __LINE__39620; goto __pyx_L1_error;}
39621 }
39622 __Pyx_GOTREF(__pyx_t_1);
39623 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39624 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
39625
39626 /* "rados.pyx":2862
39627 * self.require_ioctx_open()
39628 *
39629 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
39630 * cls = cstr(cls, 'cls')
39631 * method = cstr(method, 'method')
39632 */
39633 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__39633; goto __pyx_L1_error;}
39634 __Pyx_GOTREF(__pyx_t_2);
39635 __pyx_t_3 = NULL((void*)0);
39636 __pyx_t_4 = 0;
39637 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
39638 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
39639 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
39640 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
39641 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
39642 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
39643 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39644 __pyx_t_4 = 1;
39645 }
39646 }
39647 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__39647; goto __pyx_L1_error;}
39648 __Pyx_GOTREF(__pyx_t_5);
39649 if (__pyx_t_3) {
39650 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
39651 }
39652 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
39653 __Pyx_GIVEREF(__pyx_v_key);
39654 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
39655 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
39656 __Pyx_GIVEREF(__pyx_n_s_key);
39657 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
39658 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2862; __pyx_clineno = __LINE__39658; goto __pyx_L1_error;}
39659 __Pyx_GOTREF(__pyx_t_1);
39660 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
39661 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39662 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39663 __pyx_t_1 = 0;
39664
39665 /* "rados.pyx":2863
39666 *
39667 * key = cstr(key, 'key')
39668 * cls = cstr(cls, 'cls') # <<<<<<<<<<<<<<
39669 * method = cstr(method, 'method')
39670 * cdef:
39671 */
39672 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__39672; goto __pyx_L1_error;}
39673 __Pyx_GOTREF(__pyx_t_2);
39674 __pyx_t_5 = NULL((void*)0);
39675 __pyx_t_4 = 0;
39676 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
39677 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
39678 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
39679 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
39680 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
39681 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
39682 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39683 __pyx_t_4 = 1;
39684 }
39685 }
39686 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__39686; goto __pyx_L1_error;}
39687 __Pyx_GOTREF(__pyx_t_3);
39688 if (__pyx_t_5) {
39689 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
39690 }
39691 __Pyx_INCREF(__pyx_v_cls)( ((PyObject*)(__pyx_v_cls))->ob_refcnt++);
39692 __Pyx_GIVEREF(__pyx_v_cls);
39693 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_cls)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_cls
)
;
39694 __Pyx_INCREF(__pyx_n_s_cls)( ((PyObject*)(__pyx_n_s_cls))->ob_refcnt++);
39695 __Pyx_GIVEREF(__pyx_n_s_cls);
39696 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_cls)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_cls
)
;
39697 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2863; __pyx_clineno = __LINE__39697; goto __pyx_L1_error;}
39698 __Pyx_GOTREF(__pyx_t_1);
39699 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
39700 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39701 __Pyx_DECREF_SET(__pyx_v_cls, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_cls; __pyx_v_cls = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39702 __pyx_t_1 = 0;
39703
39704 /* "rados.pyx":2864
39705 * key = cstr(key, 'key')
39706 * cls = cstr(cls, 'cls')
39707 * method = cstr(method, 'method') # <<<<<<<<<<<<<<
39708 * cdef:
39709 * char *_key = key
39710 */
39711 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__39711; goto __pyx_L1_error;}
39712 __Pyx_GOTREF(__pyx_t_2);
39713 __pyx_t_3 = NULL((void*)0);
39714 __pyx_t_4 = 0;
39715 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
39716 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
39717 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
39718 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
39719 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
39720 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
39721 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
39722 __pyx_t_4 = 1;
39723 }
39724 }
39725 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__39725; goto __pyx_L1_error;}
39726 __Pyx_GOTREF(__pyx_t_5);
39727 if (__pyx_t_3) {
39728 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
39729 }
39730 __Pyx_INCREF(__pyx_v_method)( ((PyObject*)(__pyx_v_method))->ob_refcnt++);
39731 __Pyx_GIVEREF(__pyx_v_method);
39732 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_method)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_method
)
;
39733 __Pyx_INCREF(__pyx_n_s_method)( ((PyObject*)(__pyx_n_s_method))->ob_refcnt++);
39734 __Pyx_GIVEREF(__pyx_n_s_method);
39735 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_method)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_method
)
;
39736 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__39736; goto __pyx_L1_error;}
39737 __Pyx_GOTREF(__pyx_t_1);
39738 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
39739 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39740 __Pyx_DECREF_SET(__pyx_v_method, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_method; __pyx_v_method
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
39741 __pyx_t_1 = 0;
39742
39743 /* "rados.pyx":2866
39744 * method = cstr(method, 'method')
39745 * cdef:
39746 * char *_key = key # <<<<<<<<<<<<<<
39747 * char *_cls = cls
39748 * char *_method = method
39749 */
39750 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __pyx_clineno = __LINE__39750; goto __pyx_L1_error;}
39751 __pyx_v__key = __pyx_t_6;
39752
39753 /* "rados.pyx":2867
39754 * cdef:
39755 * char *_key = key
39756 * char *_cls = cls # <<<<<<<<<<<<<<
39757 * char *_method = method
39758 * char *_data = data
39759 */
39760 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_cls); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__39760; goto __pyx_L1_error;}
39761 __pyx_v__cls = __pyx_t_6;
39762
39763 /* "rados.pyx":2868
39764 * char *_key = key
39765 * char *_cls = cls
39766 * char *_method = method # <<<<<<<<<<<<<<
39767 * char *_data = data
39768 * size_t _data_len = len(data)
39769 */
39770 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_method); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2868; __pyx_clineno = __LINE__39770; goto __pyx_L1_error;}
39771 __pyx_v__method = __pyx_t_6;
39772
39773 /* "rados.pyx":2869
39774 * char *_cls = cls
39775 * char *_method = method
39776 * char *_data = data # <<<<<<<<<<<<<<
39777 * size_t _data_len = len(data)
39778 *
39779 */
39780 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_data); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2869; __pyx_clineno = __LINE__39780; goto __pyx_L1_error;}
39781 __pyx_v__data = __pyx_t_6;
39782
39783 /* "rados.pyx":2870
39784 * char *_method = method
39785 * char *_data = data
39786 * size_t _data_len = len(data) # <<<<<<<<<<<<<<
39787 *
39788 * char *ref_buf
39789 */
39790 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_data); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__39790; goto __pyx_L1_error;}
39791 __pyx_v__data_len = __pyx_t_4;
39792
39793 /* "rados.pyx":2873
39794 *
39795 * char *ref_buf
39796 * size_t _length = length # <<<<<<<<<<<<<<
39797 * PyObject* ret_s = NULL
39798 *
39799 */
39800 __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_v_length); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (size_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2873; __pyx_clineno = __LINE__39800; goto __pyx_L1_error;}
39801 __pyx_v__length = __pyx_t_7;
39802
39803 /* "rados.pyx":2874
39804 * char *ref_buf
39805 * size_t _length = length
39806 * PyObject* ret_s = NULL # <<<<<<<<<<<<<<
39807 *
39808 * ret_s = PyBytes_FromStringAndSize(NULL, length)
39809 */
39810 __pyx_v_ret_s = NULL((void*)0);
39811
39812 /* "rados.pyx":2876
39813 * PyObject* ret_s = NULL
39814 *
39815 * ret_s = PyBytes_FromStringAndSize(NULL, length) # <<<<<<<<<<<<<<
39816 * try:
39817 * ret_buf = PyBytes_AsString(ret_s)
39818 */
39819 __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_length); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__39819; goto __pyx_L1_error;}
39820 __pyx_t_8 = PyBytes_FromStringAndSizePyString_FromStringAndSize(NULL((void*)0), __pyx_t_4); if (unlikely(__pyx_t_8 == NULL)__builtin_expect(!!(__pyx_t_8 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2876; __pyx_clineno = __LINE__39820; goto __pyx_L1_error;}
39821 __pyx_v_ret_s = __pyx_t_8;
39822
39823 /* "rados.pyx":2877
39824 *
39825 * ret_s = PyBytes_FromStringAndSize(NULL, length)
39826 * try: # <<<<<<<<<<<<<<
39827 * ret_buf = PyBytes_AsString(ret_s)
39828 * with nogil:
39829 */
39830 /*try:*/ {
39831
39832 /* "rados.pyx":2878
39833 * ret_s = PyBytes_FromStringAndSize(NULL, length)
39834 * try:
39835 * ret_buf = PyBytes_AsString(ret_s) # <<<<<<<<<<<<<<
39836 * with nogil:
39837 * ret = rados_exec(self.io, _key, _cls, _method, _data,
39838 */
39839 __pyx_t_6 = PyBytes_AsStringPyString_AsString(__pyx_v_ret_s); if (unlikely(__pyx_t_6 == NULL)__builtin_expect(!!(__pyx_t_6 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2878; __pyx_clineno = __LINE__39839; goto __pyx_L4_error;}
39840 __pyx_v_ret_buf = __pyx_t_6;
39841
39842 /* "rados.pyx":2879
39843 * try:
39844 * ret_buf = PyBytes_AsString(ret_s)
39845 * with nogil: # <<<<<<<<<<<<<<
39846 * ret = rados_exec(self.io, _key, _cls, _method, _data,
39847 * _data_len, ret_buf, _length)
39848 */
39849 {
39850 #ifdef WITH_THREAD1
39851 PyThreadState *_save;
39852 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
39853 #endif
39854 /*try:*/ {
39855
39856 /* "rados.pyx":2880
39857 * ret_buf = PyBytes_AsString(ret_s)
39858 * with nogil:
39859 * ret = rados_exec(self.io, _key, _cls, _method, _data, # <<<<<<<<<<<<<<
39860 * _data_len, ret_buf, _length)
39861 * if ret < 0:
39862 */
39863 __pyx_v_ret = rados_exec(__pyx_v_self->io, __pyx_v__key, __pyx_v__cls, __pyx_v__method, __pyx_v__data, __pyx_v__data_len, __pyx_v_ret_buf, __pyx_v__length);
39864 }
39865
39866 /* "rados.pyx":2879
39867 * try:
39868 * ret_buf = PyBytes_AsString(ret_s)
39869 * with nogil: # <<<<<<<<<<<<<<
39870 * ret = rados_exec(self.io, _key, _cls, _method, _data,
39871 * _data_len, ret_buf, _length)
39872 */
39873 /*finally:*/ {
39874 /*normal exit:*/{
39875 #ifdef WITH_THREAD1
39876 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
39877 #endif
39878 goto __pyx_L8;
39879 }
39880 __pyx_L8:;
39881 }
39882 }
39883
39884 /* "rados.pyx":2882
39885 * ret = rados_exec(self.io, _key, _cls, _method, _data,
39886 * _data_len, ret_buf, _length)
39887 * if ret < 0: # <<<<<<<<<<<<<<
39888 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39889 *
39890 */
39891 __pyx_t_9 = ((__pyx_v_ret < 0) != 0);
39892 if (__pyx_t_9) {
39893
39894 /* "rados.pyx":2883
39895 * _data_len, ret_buf, _length)
39896 * if ret < 0:
39897 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key)) # <<<<<<<<<<<<<<
39898 *
39899 * if ret != length:
39900 */
39901 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__39901; goto __pyx_L4_error;}
39902 __Pyx_GOTREF(__pyx_t_1);
39903 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__39903; goto __pyx_L4_error;}
39904 __Pyx_GOTREF(__pyx_t_2);
39905 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
39906 __Pyx_GIVEREF(__pyx_v_self->name);
39907 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
39908 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
39909 __Pyx_GIVEREF(__pyx_v_key);
39910 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_key);
39911 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_read_s_failed_to_read_s, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_read_s_failed_to_read_s, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__39911; goto __pyx_L4_error;}
39912 __Pyx_GOTREF(__pyx_t_5);
39913 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39914 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__39914; goto __pyx_L4_error;}
39915 __Pyx_GOTREF(__pyx_t_2);
39916 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
39917 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
39918 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
39919 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39920 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__39920; goto __pyx_L4_error;}
39921
39922 /* "rados.pyx":2882
39923 * ret = rados_exec(self.io, _key, _cls, _method, _data,
39924 * _data_len, ret_buf, _length)
39925 * if ret < 0: # <<<<<<<<<<<<<<
39926 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39927 *
39928 */
39929 }
39930
39931 /* "rados.pyx":2885
39932 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39933 *
39934 * if ret != length: # <<<<<<<<<<<<<<
39935 * _PyBytes_Resize(&ret_s, ret)
39936 *
39937 */
39938 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2885; __pyx_clineno = __LINE__39938; goto __pyx_L4_error;}
39939 __Pyx_GOTREF(__pyx_t_2);
39940 __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_v_length, Py_NE3); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2885; __pyx_clineno = __LINE__39940; goto __pyx_L4_error;}
39941 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
39942 __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_9 < 0)__builtin_expect(!!(__pyx_t_9 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2885; __pyx_clineno = __LINE__39942; goto __pyx_L4_error;}
39943 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
39944 if (__pyx_t_9) {
39945
39946 /* "rados.pyx":2886
39947 *
39948 * if ret != length:
39949 * _PyBytes_Resize(&ret_s, ret) # <<<<<<<<<<<<<<
39950 *
39951 * return ret, <object>ret_s
39952 */
39953 __pyx_t_10 = _PyBytes_Resize_PyString_Resize((&__pyx_v_ret_s), __pyx_v_ret); if (unlikely(__pyx_t_10 == -1)__builtin_expect(!!(__pyx_t_10 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__39953; goto __pyx_L4_error;}
39954
39955 /* "rados.pyx":2885
39956 * raise make_ex(ret, "Ioctx.read(%s): failed to read %s" % (self.name, key))
39957 *
39958 * if ret != length: # <<<<<<<<<<<<<<
39959 * _PyBytes_Resize(&ret_s, ret)
39960 *
39961 */
39962 }
39963
39964 /* "rados.pyx":2888
39965 * _PyBytes_Resize(&ret_s, ret)
39966 *
39967 * return ret, <object>ret_s # <<<<<<<<<<<<<<
39968 * finally:
39969 * # We DECREF unconditionally: the cast to object above will have
39970 */
39971 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
39972 __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__39972; goto __pyx_L4_error;}
39973 __Pyx_GOTREF(__pyx_t_5);
39974 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__39974; goto __pyx_L4_error;}
39975 __Pyx_GOTREF(__pyx_t_2);
39976 __Pyx_GIVEREF(__pyx_t_5);
39977 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_t_5);
39978 __Pyx_INCREF(((PyObject *)__pyx_v_ret_s))( ((PyObject*)(((PyObject *)__pyx_v_ret_s)))->ob_refcnt++);
39979 __Pyx_GIVEREF(((PyObject *)__pyx_v_ret_s));
39980 PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_ret_s))(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = ((PyObject *
)__pyx_v_ret_s))
;
39981 __pyx_t_5 = 0;
39982 __pyx_r = __pyx_t_2;
39983 __pyx_t_2 = 0;
39984 goto __pyx_L3_return;
39985 }
39986
39987 /* "rados.pyx":2894
39988 * # including if _PyString_Resize fails (that will free the string
39989 * # itself and set ret_s to NULL, hence XDECREF).
39990 * ref.Py_XDECREF(ret_s) # <<<<<<<<<<<<<<
39991 *
39992 * def get_stats(self):
39993 */
39994 /*finally:*/ {
39995 /*exception exit:*/{
39996 __pyx_L4_error:;
39997 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
39998 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
39999 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
40000 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
40001 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
40002 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
40003 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_13, &
__pyx_t_14, &__pyx_t_15) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15);
40004 __Pyx_XGOTREF(__pyx_t_13);
40005 __Pyx_XGOTREF(__pyx_t_14);
40006 __Pyx_XGOTREF(__pyx_t_15);
40007 __Pyx_XGOTREF(__pyx_t_16);
40008 __Pyx_XGOTREF(__pyx_t_17);
40009 __Pyx_XGOTREF(__pyx_t_18);
40010 __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename;
40011 {
40012 Py_XDECREF(__pyx_v_ret_s)do { if ((__pyx_v_ret_s) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_ret_s))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_ret_s)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_ret_s)))); } while (0); }
while (0)
;
40013 }
40014 if (PY_MAJOR_VERSION2 >= 3) {
40015 __Pyx_XGIVEREF(__pyx_t_16);
40016 __Pyx_XGIVEREF(__pyx_t_17);
40017 __Pyx_XGIVEREF(__pyx_t_18);
40018 __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
40019 }
40020 __Pyx_XGIVEREF(__pyx_t_13);
40021 __Pyx_XGIVEREF(__pyx_t_14);
40022 __Pyx_XGIVEREF(__pyx_t_15);
40023 __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15);
40024 __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0;
40025 __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12;
40026 goto __pyx_L1_error;
40027 }
40028 __pyx_L3_return: {
40029 __pyx_t_18 = __pyx_r;
40030 __pyx_r = 0;
40031 Py_XDECREF(__pyx_v_ret_s)do { if ((__pyx_v_ret_s) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_ret_s))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_ret_s)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_ret_s)))); } while (0); }
while (0)
;
40032 __pyx_r = __pyx_t_18;
40033 __pyx_t_18 = 0;
40034 goto __pyx_L0;
40035 }
40036 }
40037
40038 /* "rados.pyx":2841
40039 *
40040 * @requires(('key', str_type), ('cls', str_type), ('method', str_type), ('data', bytes))
40041 * def execute(self, key, cls, method, data, length=8192): # <<<<<<<<<<<<<<
40042 * """
40043 * Execute an OSD class method on an object.
40044 */
40045
40046 /* function exit code */
40047 __pyx_L1_error:;
40048 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
40049 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
40050 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
40051 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
40052 __Pyx_AddTraceback("rados.Ioctx.execute", __pyx_clineno, __pyx_lineno, __pyx_filename);
40053 __pyx_r = NULL((void*)0);
40054 __pyx_L0:;
40055 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
40056 __Pyx_XDECREF(__pyx_v_cls)do { if ((__pyx_v_cls) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_cls))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_cls)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_cls)))); } while (0); } while (0)
;
40057 __Pyx_XDECREF(__pyx_v_method)do { if ((__pyx_v_method) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_method))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_method)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_method)))); } while
(0); } while (0)
;
40058 __Pyx_XGIVEREF(__pyx_r);
40059 __Pyx_RefNannyFinishContext();
40060 return __pyx_r;
40061}
40062
40063/* "rados.pyx":2896
40064 * ref.Py_XDECREF(ret_s)
40065 *
40066 * def get_stats(self): # <<<<<<<<<<<<<<
40067 * """
40068 * Get pool usage statistics
40069 */
40070
40071/* Python wrapper */
40072static PyObject *__pyx_pw_5rados_5Ioctx_53get_stats(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
40073static char __pyx_doc_5rados_5Ioctx_52get_stats[] = "Ioctx.get_stats(self)\n\n Get pool usage statistics\n\n :returns: dict - contains the following keys:\n\n - ``num_bytes`` (int) - size of pool in bytes\n\n - ``num_kb`` (int) - size of pool in kbytes\n\n - ``num_objects`` (int) - number of objects in the pool\n\n - ``num_object_clones`` (int) - number of object clones\n\n - ``num_object_copies`` (int) - number of object copies\n\n - ``num_objects_missing_on_primary`` (int) - number of objets\n missing on primary\n\n - ``num_objects_unfound`` (int) - number of unfound objects\n\n - ``num_objects_degraded`` (int) - number of degraded objects\n\n - ``num_rd`` (int) - bytes read\n\n - ``num_rd_kb`` (int) - kbytes read\n\n - ``num_wr`` (int) - bytes written\n\n - ``num_wr_kb`` (int) - kbytes written\n ";
40074static PyObject *__pyx_pw_5rados_5Ioctx_53get_stats(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
40075 PyObject *__pyx_r = 0;
40076 __Pyx_RefNannyDeclarations
40077 __Pyx_RefNannySetupContext("get_stats (wrapper)", 0);
40078 __pyx_r = __pyx_pf_5rados_5Ioctx_52get_stats(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
40079
40080 /* function exit code */
40081 __Pyx_RefNannyFinishContext();
40082 return __pyx_r;
40083}
40084
40085static PyObject *__pyx_pf_5rados_5Ioctx_52get_stats(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
40086 struct rados_pool_stat_t __pyx_v_stats;
40087 int __pyx_v_ret;
40088 PyObject *__pyx_r = NULL((void*)0);
40089 __Pyx_RefNannyDeclarations
40090 PyObject *__pyx_t_1 = NULL((void*)0);
40091 PyObject *__pyx_t_2 = NULL((void*)0);
40092 PyObject *__pyx_t_3 = NULL((void*)0);
40093 int __pyx_t_4;
40094 int __pyx_lineno = 0;
40095 const char *__pyx_filename = NULL((void*)0);
40096 int __pyx_clineno = 0;
40097 __Pyx_RefNannySetupContext("get_stats", 0);
40098
40099 /* "rados.pyx":2927
40100 * - ``num_wr_kb`` (int) - kbytes written
40101 * """
40102 * self.require_ioctx_open() # <<<<<<<<<<<<<<
40103 * cdef rados_pool_stat_t stats
40104 * with nogil:
40105 */
40106 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2927; __pyx_clineno = __LINE__40106; goto __pyx_L1_error;}
40107 __Pyx_GOTREF(__pyx_t_2);
40108 __pyx_t_3 = NULL((void*)0);
40109 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
40110 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
40111 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
40112 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
40113 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
40114 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
40115 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40116 }
40117 }
40118 if (__pyx_t_3) {
40119 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2927; __pyx_clineno = __LINE__40119; goto __pyx_L1_error;}
40120 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
40121 } else {
40122 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2927; __pyx_clineno = __LINE__40122; goto __pyx_L1_error;}
40123 }
40124 __Pyx_GOTREF(__pyx_t_1);
40125 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40126 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
40127
40128 /* "rados.pyx":2929
40129 * self.require_ioctx_open()
40130 * cdef rados_pool_stat_t stats
40131 * with nogil: # <<<<<<<<<<<<<<
40132 * ret = rados_ioctx_pool_stat(self.io, &stats)
40133 * if ret < 0:
40134 */
40135 {
40136 #ifdef WITH_THREAD1
40137 PyThreadState *_save;
40138 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
40139 #endif
40140 /*try:*/ {
40141
40142 /* "rados.pyx":2930
40143 * cdef rados_pool_stat_t stats
40144 * with nogil:
40145 * ret = rados_ioctx_pool_stat(self.io, &stats) # <<<<<<<<<<<<<<
40146 * if ret < 0:
40147 * raise make_ex(ret, "Ioctx.get_stats(%s): get_stats failed" % self.name)
40148 */
40149 __pyx_v_ret = rados_ioctx_pool_stat(__pyx_v_self->io, (&__pyx_v_stats));
40150 }
40151
40152 /* "rados.pyx":2929
40153 * self.require_ioctx_open()
40154 * cdef rados_pool_stat_t stats
40155 * with nogil: # <<<<<<<<<<<<<<
40156 * ret = rados_ioctx_pool_stat(self.io, &stats)
40157 * if ret < 0:
40158 */
40159 /*finally:*/ {
40160 /*normal exit:*/{
40161 #ifdef WITH_THREAD1
40162 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
40163 #endif
40164 goto __pyx_L5;
40165 }
40166 __pyx_L5:;
40167 }
40168 }
40169
40170 /* "rados.pyx":2931
40171 * with nogil:
40172 * ret = rados_ioctx_pool_stat(self.io, &stats)
40173 * if ret < 0: # <<<<<<<<<<<<<<
40174 * raise make_ex(ret, "Ioctx.get_stats(%s): get_stats failed" % self.name)
40175 * return {'num_bytes': stats.num_bytes,
40176 */
40177 __pyx_t_4 = ((__pyx_v_ret < 0) != 0);
40178 if (__pyx_t_4) {
40179
40180 /* "rados.pyx":2932
40181 * ret = rados_ioctx_pool_stat(self.io, &stats)
40182 * if ret < 0:
40183 * raise make_ex(ret, "Ioctx.get_stats(%s): get_stats failed" % self.name) # <<<<<<<<<<<<<<
40184 * return {'num_bytes': stats.num_bytes,
40185 * 'num_kb': stats.num_kb,
40186 */
40187 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2932; __pyx_clineno = __LINE__40187; goto __pyx_L1_error;}
40188 __Pyx_GOTREF(__pyx_t_1);
40189 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_get_stats_s_get_stats_fail, __pyx_v_self->name)PyString_Format(__pyx_kp_s_Ioctx_get_stats_s_get_stats_fail, __pyx_v_self
->name)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2932; __pyx_clineno = __LINE__40189; goto __pyx_L1_error;}
40190 __Pyx_GOTREF(__pyx_t_2);
40191 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2932; __pyx_clineno = __LINE__40191; goto __pyx_L1_error;}
40192 __Pyx_GOTREF(__pyx_t_3);
40193 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
40194 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40195 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
40196 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
40197 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2932; __pyx_clineno = __LINE__40197; goto __pyx_L1_error;}
40198
40199 /* "rados.pyx":2931
40200 * with nogil:
40201 * ret = rados_ioctx_pool_stat(self.io, &stats)
40202 * if ret < 0: # <<<<<<<<<<<<<<
40203 * raise make_ex(ret, "Ioctx.get_stats(%s): get_stats failed" % self.name)
40204 * return {'num_bytes': stats.num_bytes,
40205 */
40206 }
40207
40208 /* "rados.pyx":2933
40209 * if ret < 0:
40210 * raise make_ex(ret, "Ioctx.get_stats(%s): get_stats failed" % self.name)
40211 * return {'num_bytes': stats.num_bytes, # <<<<<<<<<<<<<<
40212 * 'num_kb': stats.num_kb,
40213 * 'num_objects': stats.num_objects,
40214 */
40215 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
40216 __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40216; goto __pyx_L1_error;}
40217 __Pyx_GOTREF(__pyx_t_3);
40218 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_bytes); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40218; goto __pyx_L1_error;}
40219 __Pyx_GOTREF(__pyx_t_2);
40220 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_bytes, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40220; goto __pyx_L1_error;}
40221 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40222
40223 /* "rados.pyx":2934
40224 * raise make_ex(ret, "Ioctx.get_stats(%s): get_stats failed" % self.name)
40225 * return {'num_bytes': stats.num_bytes,
40226 * 'num_kb': stats.num_kb, # <<<<<<<<<<<<<<
40227 * 'num_objects': stats.num_objects,
40228 * 'num_object_clones': stats.num_object_clones,
40229 */
40230 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_kb); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2934; __pyx_clineno = __LINE__40230; goto __pyx_L1_error;}
40231 __Pyx_GOTREF(__pyx_t_2);
40232 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_kb, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40232; goto __pyx_L1_error;}
40233 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40234
40235 /* "rados.pyx":2935
40236 * return {'num_bytes': stats.num_bytes,
40237 * 'num_kb': stats.num_kb,
40238 * 'num_objects': stats.num_objects, # <<<<<<<<<<<<<<
40239 * 'num_object_clones': stats.num_object_clones,
40240 * 'num_object_copies': stats.num_object_copies,
40241 */
40242 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_objects); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2935; __pyx_clineno = __LINE__40242; goto __pyx_L1_error;}
40243 __Pyx_GOTREF(__pyx_t_2);
40244 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_objects, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40244; goto __pyx_L1_error;}
40245 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40246
40247 /* "rados.pyx":2936
40248 * 'num_kb': stats.num_kb,
40249 * 'num_objects': stats.num_objects,
40250 * 'num_object_clones': stats.num_object_clones, # <<<<<<<<<<<<<<
40251 * 'num_object_copies': stats.num_object_copies,
40252 * "num_objects_missing_on_primary": stats.num_objects_missing_on_primary,
40253 */
40254 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_object_clones); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2936; __pyx_clineno = __LINE__40254; goto __pyx_L1_error;}
40255 __Pyx_GOTREF(__pyx_t_2);
40256 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_object_clones, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40256; goto __pyx_L1_error;}
40257 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40258
40259 /* "rados.pyx":2937
40260 * 'num_objects': stats.num_objects,
40261 * 'num_object_clones': stats.num_object_clones,
40262 * 'num_object_copies': stats.num_object_copies, # <<<<<<<<<<<<<<
40263 * "num_objects_missing_on_primary": stats.num_objects_missing_on_primary,
40264 * "num_objects_unfound": stats.num_objects_unfound,
40265 */
40266 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_object_copies); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2937; __pyx_clineno = __LINE__40266; goto __pyx_L1_error;}
40267 __Pyx_GOTREF(__pyx_t_2);
40268 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_object_copies, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40268; goto __pyx_L1_error;}
40269 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40270
40271 /* "rados.pyx":2938
40272 * 'num_object_clones': stats.num_object_clones,
40273 * 'num_object_copies': stats.num_object_copies,
40274 * "num_objects_missing_on_primary": stats.num_objects_missing_on_primary, # <<<<<<<<<<<<<<
40275 * "num_objects_unfound": stats.num_objects_unfound,
40276 * "num_objects_degraded": stats.num_objects_degraded,
40277 */
40278 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_objects_missing_on_primary); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2938; __pyx_clineno = __LINE__40278; goto __pyx_L1_error;}
40279 __Pyx_GOTREF(__pyx_t_2);
40280 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_objects_missing_on_primary, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40280; goto __pyx_L1_error;}
40281 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40282
40283 /* "rados.pyx":2939
40284 * 'num_object_copies': stats.num_object_copies,
40285 * "num_objects_missing_on_primary": stats.num_objects_missing_on_primary,
40286 * "num_objects_unfound": stats.num_objects_unfound, # <<<<<<<<<<<<<<
40287 * "num_objects_degraded": stats.num_objects_degraded,
40288 * "num_rd": stats.num_rd,
40289 */
40290 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_objects_unfound); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2939; __pyx_clineno = __LINE__40290; goto __pyx_L1_error;}
40291 __Pyx_GOTREF(__pyx_t_2);
40292 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_objects_unfound, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40292; goto __pyx_L1_error;}
40293 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40294
40295 /* "rados.pyx":2940
40296 * "num_objects_missing_on_primary": stats.num_objects_missing_on_primary,
40297 * "num_objects_unfound": stats.num_objects_unfound,
40298 * "num_objects_degraded": stats.num_objects_degraded, # <<<<<<<<<<<<<<
40299 * "num_rd": stats.num_rd,
40300 * "num_rd_kb": stats.num_rd_kb,
40301 */
40302 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_objects_degraded); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2940; __pyx_clineno = __LINE__40302; goto __pyx_L1_error;}
40303 __Pyx_GOTREF(__pyx_t_2);
40304 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_objects_degraded, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40304; goto __pyx_L1_error;}
40305 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40306
40307 /* "rados.pyx":2941
40308 * "num_objects_unfound": stats.num_objects_unfound,
40309 * "num_objects_degraded": stats.num_objects_degraded,
40310 * "num_rd": stats.num_rd, # <<<<<<<<<<<<<<
40311 * "num_rd_kb": stats.num_rd_kb,
40312 * "num_wr": stats.num_wr,
40313 */
40314 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_rd); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2941; __pyx_clineno = __LINE__40314; goto __pyx_L1_error;}
40315 __Pyx_GOTREF(__pyx_t_2);
40316 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_rd, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40316; goto __pyx_L1_error;}
40317 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40318
40319 /* "rados.pyx":2942
40320 * "num_objects_degraded": stats.num_objects_degraded,
40321 * "num_rd": stats.num_rd,
40322 * "num_rd_kb": stats.num_rd_kb, # <<<<<<<<<<<<<<
40323 * "num_wr": stats.num_wr,
40324 * "num_wr_kb": stats.num_wr_kb}
40325 */
40326 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_rd_kb); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2942; __pyx_clineno = __LINE__40326; goto __pyx_L1_error;}
40327 __Pyx_GOTREF(__pyx_t_2);
40328 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_rd_kb, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40328; goto __pyx_L1_error;}
40329 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40330
40331 /* "rados.pyx":2943
40332 * "num_rd": stats.num_rd,
40333 * "num_rd_kb": stats.num_rd_kb,
40334 * "num_wr": stats.num_wr, # <<<<<<<<<<<<<<
40335 * "num_wr_kb": stats.num_wr_kb}
40336 *
40337 */
40338 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_wr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2943; __pyx_clineno = __LINE__40338; goto __pyx_L1_error;}
40339 __Pyx_GOTREF(__pyx_t_2);
40340 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_wr, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40340; goto __pyx_L1_error;}
40341 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40342
40343 /* "rados.pyx":2944
40344 * "num_rd_kb": stats.num_rd_kb,
40345 * "num_wr": stats.num_wr,
40346 * "num_wr_kb": stats.num_wr_kb} # <<<<<<<<<<<<<<
40347 *
40348 * @requires(('key', str_type))
40349 */
40350 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_stats.num_wr_kb); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2944; __pyx_clineno = __LINE__40350; goto __pyx_L1_error;}
40351 __Pyx_GOTREF(__pyx_t_2);
40352 if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_num_wr_kb, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2933; __pyx_clineno = __LINE__40352; goto __pyx_L1_error;}
40353 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40354 __pyx_r = __pyx_t_3;
40355 __pyx_t_3 = 0;
40356 goto __pyx_L0;
40357
40358 /* "rados.pyx":2896
40359 * ref.Py_XDECREF(ret_s)
40360 *
40361 * def get_stats(self): # <<<<<<<<<<<<<<
40362 * """
40363 * Get pool usage statistics
40364 */
40365
40366 /* function exit code */
40367 __pyx_L1_error:;
40368 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
40369 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
40370 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
40371 __Pyx_AddTraceback("rados.Ioctx.get_stats", __pyx_clineno, __pyx_lineno, __pyx_filename);
40372 __pyx_r = NULL((void*)0);
40373 __pyx_L0:;
40374 __Pyx_XGIVEREF(__pyx_r);
40375 __Pyx_RefNannyFinishContext();
40376 return __pyx_r;
40377}
40378
40379/* "rados.pyx":2947
40380 *
40381 * @requires(('key', str_type))
40382 * def remove_object(self, key): # <<<<<<<<<<<<<<
40383 * """
40384 * Delete an object
40385 */
40386
40387/* Python wrapper */
40388static PyObject *__pyx_pw_5rados_5Ioctx_55remove_object(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
40389static char __pyx_doc_5rados_5Ioctx_54remove_object[] = "Ioctx.remove_object(self, key)\n\n Delete an object\n\n This does not delete any snapshots of the object.\n\n :param key: the name of the object to delete\n :type key: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: bool - True on success\n ";
40390static PyObject *__pyx_pw_5rados_5Ioctx_55remove_object(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
40391 PyObject *__pyx_r = 0;
40392 __Pyx_RefNannyDeclarations
40393 __Pyx_RefNannySetupContext("remove_object (wrapper)", 0);
40394 __pyx_r = __pyx_pf_5rados_5Ioctx_54remove_object(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_key));
40395
40396 /* function exit code */
40397 __Pyx_RefNannyFinishContext();
40398 return __pyx_r;
40399}
40400
40401static PyObject *__pyx_pf_5rados_5Ioctx_54remove_object(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key) {
40402 char *__pyx_v__key;
40403 int __pyx_v_ret;
40404 PyObject *__pyx_r = NULL((void*)0);
40405 __Pyx_RefNannyDeclarations
40406 PyObject *__pyx_t_1 = NULL((void*)0);
40407 PyObject *__pyx_t_2 = NULL((void*)0);
40408 PyObject *__pyx_t_3 = NULL((void*)0);
40409 Py_ssize_t __pyx_t_4;
40410 PyObject *__pyx_t_5 = NULL((void*)0);
40411 char *__pyx_t_6;
40412 int __pyx_t_7;
40413 int __pyx_lineno = 0;
40414 const char *__pyx_filename = NULL((void*)0);
40415 int __pyx_clineno = 0;
40416 __Pyx_RefNannySetupContext("remove_object", 0);
40417 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
40418
40419 /* "rados.pyx":2960
40420 * :returns: bool - True on success
40421 * """
40422 * self.require_ioctx_open() # <<<<<<<<<<<<<<
40423 * key = cstr(key, 'key')
40424 * cdef:
40425 */
40426 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2960; __pyx_clineno = __LINE__40426; goto __pyx_L1_error;}
40427 __Pyx_GOTREF(__pyx_t_2);
40428 __pyx_t_3 = NULL((void*)0);
40429 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
40430 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
40431 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
40432 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
40433 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
40434 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
40435 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40436 }
40437 }
40438 if (__pyx_t_3) {
40439 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2960; __pyx_clineno = __LINE__40439; goto __pyx_L1_error;}
40440 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
40441 } else {
40442 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2960; __pyx_clineno = __LINE__40442; goto __pyx_L1_error;}
40443 }
40444 __Pyx_GOTREF(__pyx_t_1);
40445 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40446 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
40447
40448 /* "rados.pyx":2961
40449 * """
40450 * self.require_ioctx_open()
40451 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
40452 * cdef:
40453 * char *_key = key
40454 */
40455 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2961; __pyx_clineno = __LINE__40455; goto __pyx_L1_error;}
40456 __Pyx_GOTREF(__pyx_t_2);
40457 __pyx_t_3 = NULL((void*)0);
40458 __pyx_t_4 = 0;
40459 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
40460 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
40461 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
40462 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
40463 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
40464 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
40465 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40466 __pyx_t_4 = 1;
40467 }
40468 }
40469 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2961; __pyx_clineno = __LINE__40469; goto __pyx_L1_error;}
40470 __Pyx_GOTREF(__pyx_t_5);
40471 if (__pyx_t_3) {
40472 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
40473 }
40474 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
40475 __Pyx_GIVEREF(__pyx_v_key);
40476 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
40477 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
40478 __Pyx_GIVEREF(__pyx_n_s_key);
40479 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
40480 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2961; __pyx_clineno = __LINE__40480; goto __pyx_L1_error;}
40481 __Pyx_GOTREF(__pyx_t_1);
40482 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
40483 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40484 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40485 __pyx_t_1 = 0;
40486
40487 /* "rados.pyx":2963
40488 * key = cstr(key, 'key')
40489 * cdef:
40490 * char *_key = key # <<<<<<<<<<<<<<
40491 *
40492 * with nogil:
40493 */
40494 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2963; __pyx_clineno = __LINE__40494; goto __pyx_L1_error;}
40495 __pyx_v__key = __pyx_t_6;
40496
40497 /* "rados.pyx":2965
40498 * char *_key = key
40499 *
40500 * with nogil: # <<<<<<<<<<<<<<
40501 * ret = rados_remove(self.io, _key)
40502 * if ret < 0:
40503 */
40504 {
40505 #ifdef WITH_THREAD1
40506 PyThreadState *_save;
40507 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
40508 #endif
40509 /*try:*/ {
40510
40511 /* "rados.pyx":2966
40512 *
40513 * with nogil:
40514 * ret = rados_remove(self.io, _key) # <<<<<<<<<<<<<<
40515 * if ret < 0:
40516 * raise make_ex(ret, "Failed to remove '%s'" % key)
40517 */
40518 __pyx_v_ret = rados_remove(__pyx_v_self->io, __pyx_v__key);
40519 }
40520
40521 /* "rados.pyx":2965
40522 * char *_key = key
40523 *
40524 * with nogil: # <<<<<<<<<<<<<<
40525 * ret = rados_remove(self.io, _key)
40526 * if ret < 0:
40527 */
40528 /*finally:*/ {
40529 /*normal exit:*/{
40530 #ifdef WITH_THREAD1
40531 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
40532 #endif
40533 goto __pyx_L5;
40534 }
40535 __pyx_L5:;
40536 }
40537 }
40538
40539 /* "rados.pyx":2967
40540 * with nogil:
40541 * ret = rados_remove(self.io, _key)
40542 * if ret < 0: # <<<<<<<<<<<<<<
40543 * raise make_ex(ret, "Failed to remove '%s'" % key)
40544 * return True
40545 */
40546 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
40547 if (__pyx_t_7) {
40548
40549 /* "rados.pyx":2968
40550 * ret = rados_remove(self.io, _key)
40551 * if ret < 0:
40552 * raise make_ex(ret, "Failed to remove '%s'" % key) # <<<<<<<<<<<<<<
40553 * return True
40554 *
40555 */
40556 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__40556; goto __pyx_L1_error;}
40557 __Pyx_GOTREF(__pyx_t_1);
40558 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_remove_s, __pyx_v_key)PyString_Format(__pyx_kp_s_Failed_to_remove_s, __pyx_v_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__40558; goto __pyx_L1_error;}
40559 __Pyx_GOTREF(__pyx_t_2);
40560 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__40560; goto __pyx_L1_error;}
40561 __Pyx_GOTREF(__pyx_t_5);
40562 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
40563 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40564 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
40565 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
40566 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2968; __pyx_clineno = __LINE__40566; goto __pyx_L1_error;}
40567
40568 /* "rados.pyx":2967
40569 * with nogil:
40570 * ret = rados_remove(self.io, _key)
40571 * if ret < 0: # <<<<<<<<<<<<<<
40572 * raise make_ex(ret, "Failed to remove '%s'" % key)
40573 * return True
40574 */
40575 }
40576
40577 /* "rados.pyx":2969
40578 * if ret < 0:
40579 * raise make_ex(ret, "Failed to remove '%s'" % key)
40580 * return True # <<<<<<<<<<<<<<
40581 *
40582 * @requires(('key', str_type))
40583 */
40584 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
40585 __Pyx_INCREF(Py_True)( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->ob_refcnt
++)
;
40586 __pyx_r = Py_True((PyObject *) &_Py_TrueStruct);
40587 goto __pyx_L0;
40588
40589 /* "rados.pyx":2947
40590 *
40591 * @requires(('key', str_type))
40592 * def remove_object(self, key): # <<<<<<<<<<<<<<
40593 * """
40594 * Delete an object
40595 */
40596
40597 /* function exit code */
40598 __pyx_L1_error:;
40599 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
40600 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
40601 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
40602 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
40603 __Pyx_AddTraceback("rados.Ioctx.remove_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
40604 __pyx_r = NULL((void*)0);
40605 __pyx_L0:;
40606 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
40607 __Pyx_XGIVEREF(__pyx_r);
40608 __Pyx_RefNannyFinishContext();
40609 return __pyx_r;
40610}
40611
40612/* "rados.pyx":2972
40613 *
40614 * @requires(('key', str_type))
40615 * def trunc(self, key, size): # <<<<<<<<<<<<<<
40616 * """
40617 * Resize an object
40618 */
40619
40620/* Python wrapper */
40621static PyObject *__pyx_pw_5rados_5Ioctx_57trunc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
40622static char __pyx_doc_5rados_5Ioctx_56trunc[] = "Ioctx.trunc(self, key, size)\n\n Resize an object\n\n If this enlarges the object, the new area is logically filled with\n zeroes. If this shrinks the object, the excess data is removed.\n\n :param key: the name of the object to resize\n :type key: str\n :param size: the new size of the object in bytes\n :type size: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: int - 0 on success, otherwise raises error\n ";
40623static PyObject *__pyx_pw_5rados_5Ioctx_57trunc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
40624 PyObject *__pyx_v_key = 0;
40625 PyObject *__pyx_v_size = 0;
40626 int __pyx_lineno = 0;
40627 const char *__pyx_filename = NULL((void*)0);
40628 int __pyx_clineno = 0;
40629 PyObject *__pyx_r = 0;
40630 __Pyx_RefNannyDeclarations
40631 __Pyx_RefNannySetupContext("trunc (wrapper)", 0);
40632 {
40633 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_size,0};
40634 PyObject* values[2] = {0,0};
40635 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
40636 Py_ssize_t kw_args;
40637 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
40638 switch (pos_args) {
40639 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
40640 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
40641 case 0: break;
40642 default: goto __pyx_L5_argtuple_error;
40643 }
40644 kw_args = PyDict_Size(__pyx_kwds);
40645 switch (pos_args) {
40646 case 0:
40647 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
40648 else goto __pyx_L5_argtuple_error;
40649 case 1:
40650 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_size)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_size
)) != 0), 1)
) kw_args--;
40651 else {
40652 __Pyx_RaiseArgtupleInvalid("trunc", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2972; __pyx_clineno = __LINE__40652; goto __pyx_L3_error;}
40653 }
40654 }
40655 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
40656 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "trunc") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "trunc") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2972; __pyx_clineno = __LINE__40656; goto __pyx_L3_error;}
40657 }
40658 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
40659 goto __pyx_L5_argtuple_error;
40660 } else {
40661 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
40662 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
40663 }
40664 __pyx_v_key = values[0];
40665 __pyx_v_size = values[1];
40666 }
40667 goto __pyx_L4_argument_unpacking_done;
40668 __pyx_L5_argtuple_error:;
40669 __Pyx_RaiseArgtupleInvalid("trunc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2972; __pyx_clineno = __LINE__40669; goto __pyx_L3_error;}
40670 __pyx_L3_error:;
40671 __Pyx_AddTraceback("rados.Ioctx.trunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
40672 __Pyx_RefNannyFinishContext();
40673 return NULL((void*)0);
40674 __pyx_L4_argument_unpacking_done:;
40675 __pyx_r = __pyx_pf_5rados_5Ioctx_56trunc(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_size);
40676
40677 /* function exit code */
40678 __Pyx_RefNannyFinishContext();
40679 return __pyx_r;
40680}
40681
40682static PyObject *__pyx_pf_5rados_5Ioctx_56trunc(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_size) {
40683 char *__pyx_v__key;
40684 uint64_t __pyx_v__size;
40685 int __pyx_v_ret;
40686 PyObject *__pyx_r = NULL((void*)0);
40687 __Pyx_RefNannyDeclarations
40688 PyObject *__pyx_t_1 = NULL((void*)0);
40689 PyObject *__pyx_t_2 = NULL((void*)0);
40690 PyObject *__pyx_t_3 = NULL((void*)0);
40691 Py_ssize_t __pyx_t_4;
40692 PyObject *__pyx_t_5 = NULL((void*)0);
40693 char *__pyx_t_6;
40694 uint64_t __pyx_t_7;
40695 int __pyx_t_8;
40696 int __pyx_lineno = 0;
40697 const char *__pyx_filename = NULL((void*)0);
40698 int __pyx_clineno = 0;
40699 __Pyx_RefNannySetupContext("trunc", 0);
40700 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
40701
40702 /* "rados.pyx":2989
40703 * """
40704 *
40705 * self.require_ioctx_open() # <<<<<<<<<<<<<<
40706 * key = cstr(key, 'key')
40707 * cdef:
40708 */
40709 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2989; __pyx_clineno = __LINE__40709; goto __pyx_L1_error;}
40710 __Pyx_GOTREF(__pyx_t_2);
40711 __pyx_t_3 = NULL((void*)0);
40712 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
40713 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
40714 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
40715 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
40716 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
40717 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
40718 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40719 }
40720 }
40721 if (__pyx_t_3) {
40722 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2989; __pyx_clineno = __LINE__40722; goto __pyx_L1_error;}
40723 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
40724 } else {
40725 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2989; __pyx_clineno = __LINE__40725; goto __pyx_L1_error;}
40726 }
40727 __Pyx_GOTREF(__pyx_t_1);
40728 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40729 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
40730
40731 /* "rados.pyx":2990
40732 *
40733 * self.require_ioctx_open()
40734 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
40735 * cdef:
40736 * char *_key = key
40737 */
40738 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2990; __pyx_clineno = __LINE__40738; goto __pyx_L1_error;}
40739 __Pyx_GOTREF(__pyx_t_2);
40740 __pyx_t_3 = NULL((void*)0);
40741 __pyx_t_4 = 0;
40742 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
40743 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
40744 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
40745 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
40746 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
40747 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
40748 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40749 __pyx_t_4 = 1;
40750 }
40751 }
40752 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2990; __pyx_clineno = __LINE__40752; goto __pyx_L1_error;}
40753 __Pyx_GOTREF(__pyx_t_5);
40754 if (__pyx_t_3) {
40755 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
40756 }
40757 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
40758 __Pyx_GIVEREF(__pyx_v_key);
40759 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
40760 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
40761 __Pyx_GIVEREF(__pyx_n_s_key);
40762 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
40763 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2990; __pyx_clineno = __LINE__40763; goto __pyx_L1_error;}
40764 __Pyx_GOTREF(__pyx_t_1);
40765 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
40766 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40767 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40768 __pyx_t_1 = 0;
40769
40770 /* "rados.pyx":2992
40771 * key = cstr(key, 'key')
40772 * cdef:
40773 * char *_key = key # <<<<<<<<<<<<<<
40774 * uint64_t _size = size
40775 *
40776 */
40777 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2992; __pyx_clineno = __LINE__40777; goto __pyx_L1_error;}
40778 __pyx_v__key = __pyx_t_6;
40779
40780 /* "rados.pyx":2993
40781 * cdef:
40782 * char *_key = key
40783 * uint64_t _size = size # <<<<<<<<<<<<<<
40784 *
40785 * with nogil:
40786 */
40787 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_size); if (unlikely((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2993; __pyx_clineno = __LINE__40787; goto __pyx_L1_error;}
40788 __pyx_v__size = __pyx_t_7;
40789
40790 /* "rados.pyx":2995
40791 * uint64_t _size = size
40792 *
40793 * with nogil: # <<<<<<<<<<<<<<
40794 * ret = rados_trunc(self.io, _key, _size)
40795 * if ret < 0:
40796 */
40797 {
40798 #ifdef WITH_THREAD1
40799 PyThreadState *_save;
40800 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
40801 #endif
40802 /*try:*/ {
40803
40804 /* "rados.pyx":2996
40805 *
40806 * with nogil:
40807 * ret = rados_trunc(self.io, _key, _size) # <<<<<<<<<<<<<<
40808 * if ret < 0:
40809 * raise make_ex(ret, "Ioctx.trunc(%s): failed to truncate %s" % (self.name, key))
40810 */
40811 __pyx_v_ret = rados_trunc(__pyx_v_self->io, __pyx_v__key, __pyx_v__size);
40812 }
40813
40814 /* "rados.pyx":2995
40815 * uint64_t _size = size
40816 *
40817 * with nogil: # <<<<<<<<<<<<<<
40818 * ret = rados_trunc(self.io, _key, _size)
40819 * if ret < 0:
40820 */
40821 /*finally:*/ {
40822 /*normal exit:*/{
40823 #ifdef WITH_THREAD1
40824 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
40825 #endif
40826 goto __pyx_L5;
40827 }
40828 __pyx_L5:;
40829 }
40830 }
40831
40832 /* "rados.pyx":2997
40833 * with nogil:
40834 * ret = rados_trunc(self.io, _key, _size)
40835 * if ret < 0: # <<<<<<<<<<<<<<
40836 * raise make_ex(ret, "Ioctx.trunc(%s): failed to truncate %s" % (self.name, key))
40837 * return ret
40838 */
40839 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
40840 if (__pyx_t_8) {
40841
40842 /* "rados.pyx":2998
40843 * ret = rados_trunc(self.io, _key, _size)
40844 * if ret < 0:
40845 * raise make_ex(ret, "Ioctx.trunc(%s): failed to truncate %s" % (self.name, key)) # <<<<<<<<<<<<<<
40846 * return ret
40847 *
40848 */
40849 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__40849; goto __pyx_L1_error;}
40850 __Pyx_GOTREF(__pyx_t_1);
40851 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__40851; goto __pyx_L1_error;}
40852 __Pyx_GOTREF(__pyx_t_2);
40853 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
40854 __Pyx_GIVEREF(__pyx_v_self->name);
40855 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
40856 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
40857 __Pyx_GIVEREF(__pyx_v_key);
40858 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_key);
40859 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_trunc_s_failed_to_truncate, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_trunc_s_failed_to_truncate, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__40859; goto __pyx_L1_error;}
40860 __Pyx_GOTREF(__pyx_t_5);
40861 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40862 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__40862; goto __pyx_L1_error;}
40863 __Pyx_GOTREF(__pyx_t_2);
40864 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
40865 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
40866 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
40867 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40868 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__40868; goto __pyx_L1_error;}
40869
40870 /* "rados.pyx":2997
40871 * with nogil:
40872 * ret = rados_trunc(self.io, _key, _size)
40873 * if ret < 0: # <<<<<<<<<<<<<<
40874 * raise make_ex(ret, "Ioctx.trunc(%s): failed to truncate %s" % (self.name, key))
40875 * return ret
40876 */
40877 }
40878
40879 /* "rados.pyx":2999
40880 * if ret < 0:
40881 * raise make_ex(ret, "Ioctx.trunc(%s): failed to truncate %s" % (self.name, key))
40882 * return ret # <<<<<<<<<<<<<<
40883 *
40884 * @requires(('key', str_type))
40885 */
40886 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
40887 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__40887; goto __pyx_L1_error;}
40888 __Pyx_GOTREF(__pyx_t_2);
40889 __pyx_r = __pyx_t_2;
40890 __pyx_t_2 = 0;
40891 goto __pyx_L0;
40892
40893 /* "rados.pyx":2972
40894 *
40895 * @requires(('key', str_type))
40896 * def trunc(self, key, size): # <<<<<<<<<<<<<<
40897 * """
40898 * Resize an object
40899 */
40900
40901 /* function exit code */
40902 __pyx_L1_error:;
40903 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
40904 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
40905 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
40906 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
40907 __Pyx_AddTraceback("rados.Ioctx.trunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
40908 __pyx_r = NULL((void*)0);
40909 __pyx_L0:;
40910 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
40911 __Pyx_XGIVEREF(__pyx_r);
40912 __Pyx_RefNannyFinishContext();
40913 return __pyx_r;
40914}
40915
40916/* "rados.pyx":3002
40917 *
40918 * @requires(('key', str_type))
40919 * def stat(self, key): # <<<<<<<<<<<<<<
40920 * """
40921 * Get object stats (size/mtime)
40922 */
40923
40924/* Python wrapper */
40925static PyObject *__pyx_pw_5rados_5Ioctx_59stat(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
40926static char __pyx_doc_5rados_5Ioctx_58stat[] = "Ioctx.stat(self, key)\n\n Get object stats (size/mtime)\n\n :param key: the name of the object to get stats from\n :type key: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: (size,timestamp)\n ";
40927static PyObject *__pyx_pw_5rados_5Ioctx_59stat(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
40928 PyObject *__pyx_r = 0;
40929 __Pyx_RefNannyDeclarations
40930 __Pyx_RefNannySetupContext("stat (wrapper)", 0);
40931 __pyx_r = __pyx_pf_5rados_5Ioctx_58stat(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_key));
40932
40933 /* function exit code */
40934 __Pyx_RefNannyFinishContext();
40935 return __pyx_r;
40936}
40937
40938static PyObject *__pyx_pf_5rados_5Ioctx_58stat(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key) {
40939 char *__pyx_v__key;
40940 uint64_t __pyx_v_psize;
40941 time_t __pyx_v_pmtime;
40942 int __pyx_v_ret;
40943 PyObject *__pyx_r = NULL((void*)0);
40944 __Pyx_RefNannyDeclarations
40945 PyObject *__pyx_t_1 = NULL((void*)0);
40946 PyObject *__pyx_t_2 = NULL((void*)0);
40947 PyObject *__pyx_t_3 = NULL((void*)0);
40948 Py_ssize_t __pyx_t_4;
40949 PyObject *__pyx_t_5 = NULL((void*)0);
40950 char *__pyx_t_6;
40951 int __pyx_t_7;
40952 PyObject *__pyx_t_8 = NULL((void*)0);
40953 PyObject *__pyx_t_9 = NULL((void*)0);
40954 int __pyx_lineno = 0;
40955 const char *__pyx_filename = NULL((void*)0);
40956 int __pyx_clineno = 0;
40957 __Pyx_RefNannySetupContext("stat", 0);
40958 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
40959
40960 /* "rados.pyx":3013
40961 * :returns: (size,timestamp)
40962 * """
40963 * self.require_ioctx_open() # <<<<<<<<<<<<<<
40964 *
40965 * key = cstr(key, 'key')
40966 */
40967 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__40967; goto __pyx_L1_error;}
40968 __Pyx_GOTREF(__pyx_t_2);
40969 __pyx_t_3 = NULL((void*)0);
40970 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
40971 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
40972 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
40973 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
40974 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
40975 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
40976 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
40977 }
40978 }
40979 if (__pyx_t_3) {
40980 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__40980; goto __pyx_L1_error;}
40981 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
40982 } else {
40983 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__40983; goto __pyx_L1_error;}
40984 }
40985 __Pyx_GOTREF(__pyx_t_1);
40986 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
40987 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
40988
40989 /* "rados.pyx":3015
40990 * self.require_ioctx_open()
40991 *
40992 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
40993 * cdef:
40994 * char *_key = key
40995 */
40996 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__40996; goto __pyx_L1_error;}
40997 __Pyx_GOTREF(__pyx_t_2);
40998 __pyx_t_3 = NULL((void*)0);
40999 __pyx_t_4 = 0;
41000 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
41001 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41002 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
41003 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41004 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
41005 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41006 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41007 __pyx_t_4 = 1;
41008 }
41009 }
41010 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__41010; goto __pyx_L1_error;}
41011 __Pyx_GOTREF(__pyx_t_5);
41012 if (__pyx_t_3) {
41013 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
41014 }
41015 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
41016 __Pyx_GIVEREF(__pyx_v_key);
41017 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
41018 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
41019 __Pyx_GIVEREF(__pyx_n_s_key);
41020 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
41021 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__41021; goto __pyx_L1_error;}
41022 __Pyx_GOTREF(__pyx_t_1);
41023 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
41024 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41025 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41026 __pyx_t_1 = 0;
41027
41028 /* "rados.pyx":3017
41029 * key = cstr(key, 'key')
41030 * cdef:
41031 * char *_key = key # <<<<<<<<<<<<<<
41032 * uint64_t psize
41033 * time_t pmtime
41034 */
41035 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3017; __pyx_clineno = __LINE__41035; goto __pyx_L1_error;}
41036 __pyx_v__key = __pyx_t_6;
41037
41038 /* "rados.pyx":3021
41039 * time_t pmtime
41040 *
41041 * with nogil: # <<<<<<<<<<<<<<
41042 * ret = rados_stat(self.io, _key, &psize, &pmtime)
41043 * if ret < 0:
41044 */
41045 {
41046 #ifdef WITH_THREAD1
41047 PyThreadState *_save;
41048 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
41049 #endif
41050 /*try:*/ {
41051
41052 /* "rados.pyx":3022
41053 *
41054 * with nogil:
41055 * ret = rados_stat(self.io, _key, &psize, &pmtime) # <<<<<<<<<<<<<<
41056 * if ret < 0:
41057 * raise make_ex(ret, "Failed to stat %r" % key)
41058 */
41059 __pyx_v_ret = rados_stat(__pyx_v_self->io, __pyx_v__key, (&__pyx_v_psize), (&__pyx_v_pmtime));
41060 }
41061
41062 /* "rados.pyx":3021
41063 * time_t pmtime
41064 *
41065 * with nogil: # <<<<<<<<<<<<<<
41066 * ret = rados_stat(self.io, _key, &psize, &pmtime)
41067 * if ret < 0:
41068 */
41069 /*finally:*/ {
41070 /*normal exit:*/{
41071 #ifdef WITH_THREAD1
41072 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
41073 #endif
41074 goto __pyx_L5;
41075 }
41076 __pyx_L5:;
41077 }
41078 }
41079
41080 /* "rados.pyx":3023
41081 * with nogil:
41082 * ret = rados_stat(self.io, _key, &psize, &pmtime)
41083 * if ret < 0: # <<<<<<<<<<<<<<
41084 * raise make_ex(ret, "Failed to stat %r" % key)
41085 * return psize, time.localtime(pmtime)
41086 */
41087 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
41088 if (__pyx_t_7) {
41089
41090 /* "rados.pyx":3024
41091 * ret = rados_stat(self.io, _key, &psize, &pmtime)
41092 * if ret < 0:
41093 * raise make_ex(ret, "Failed to stat %r" % key) # <<<<<<<<<<<<<<
41094 * return psize, time.localtime(pmtime)
41095 *
41096 */
41097 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__41097; goto __pyx_L1_error;}
41098 __Pyx_GOTREF(__pyx_t_1);
41099 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_stat_r, __pyx_v_key)PyString_Format(__pyx_kp_s_Failed_to_stat_r, __pyx_v_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__41099; goto __pyx_L1_error;}
41100 __Pyx_GOTREF(__pyx_t_2);
41101 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__41101; goto __pyx_L1_error;}
41102 __Pyx_GOTREF(__pyx_t_5);
41103 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41104 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41105 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
41106 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
41107 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__41107; goto __pyx_L1_error;}
41108
41109 /* "rados.pyx":3023
41110 * with nogil:
41111 * ret = rados_stat(self.io, _key, &psize, &pmtime)
41112 * if ret < 0: # <<<<<<<<<<<<<<
41113 * raise make_ex(ret, "Failed to stat %r" % key)
41114 * return psize, time.localtime(pmtime)
41115 */
41116 }
41117
41118 /* "rados.pyx":3025
41119 * if ret < 0:
41120 * raise make_ex(ret, "Failed to stat %r" % key)
41121 * return psize, time.localtime(pmtime) # <<<<<<<<<<<<<<
41122 *
41123 * @requires(('key', str_type), ('xattr_name', str_type))
41124 */
41125 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
41126 __pyx_t_5 = __Pyx_PyInt_From_uint64_t(__pyx_v_psize); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41126; goto __pyx_L1_error;}
41127 __Pyx_GOTREF(__pyx_t_5);
41128 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_time); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41128; goto __pyx_L1_error;}
41129 __Pyx_GOTREF(__pyx_t_1);
41130 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_localtime); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41130; goto __pyx_L1_error;}
41131 __Pyx_GOTREF(__pyx_t_3);
41132 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41133 __pyx_t_1 = __Pyx_PyInt_From_time_t(__pyx_v_pmtime); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41133; goto __pyx_L1_error;}
41134 __Pyx_GOTREF(__pyx_t_1);
41135 __pyx_t_8 = NULL((void*)0);
41136 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
41137 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
41138 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
41139 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
41140 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
41141 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41142 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41143 }
41144 }
41145 if (!__pyx_t_8) {
41146 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41146; goto __pyx_L1_error;}
41147 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41148 __Pyx_GOTREF(__pyx_t_2);
41149 } else {
41150 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41150; goto __pyx_L1_error;}
41151 __Pyx_GOTREF(__pyx_t_9);
41152 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
41153 __Pyx_GIVEREF(__pyx_t_1);
41154 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_1);
41155 __pyx_t_1 = 0;
41156 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41156; goto __pyx_L1_error;}
41157 __Pyx_GOTREF(__pyx_t_2);
41158 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
41159 }
41160 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
41161 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3025; __pyx_clineno = __LINE__41161; goto __pyx_L1_error;}
41162 __Pyx_GOTREF(__pyx_t_3);
41163 __Pyx_GIVEREF(__pyx_t_5);
41164 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5);
41165 __Pyx_GIVEREF(__pyx_t_2);
41166 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_t_2);
41167 __pyx_t_5 = 0;
41168 __pyx_t_2 = 0;
41169 __pyx_r = __pyx_t_3;
41170 __pyx_t_3 = 0;
41171 goto __pyx_L0;
41172
41173 /* "rados.pyx":3002
41174 *
41175 * @requires(('key', str_type))
41176 * def stat(self, key): # <<<<<<<<<<<<<<
41177 * """
41178 * Get object stats (size/mtime)
41179 */
41180
41181 /* function exit code */
41182 __pyx_L1_error:;
41183 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
41184 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
41185 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
41186 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
41187 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
41188 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
41189 __Pyx_AddTraceback("rados.Ioctx.stat", __pyx_clineno, __pyx_lineno, __pyx_filename);
41190 __pyx_r = NULL((void*)0);
41191 __pyx_L0:;
41192 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
41193 __Pyx_XGIVEREF(__pyx_r);
41194 __Pyx_RefNannyFinishContext();
41195 return __pyx_r;
41196}
41197
41198/* "rados.pyx":3028
41199 *
41200 * @requires(('key', str_type), ('xattr_name', str_type))
41201 * def get_xattr(self, key, xattr_name): # <<<<<<<<<<<<<<
41202 * """
41203 * Get the value of an extended attribute on an object.
41204 */
41205
41206/* Python wrapper */
41207static PyObject *__pyx_pw_5rados_5Ioctx_61get_xattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
41208static char __pyx_doc_5rados_5Ioctx_60get_xattr[] = "Ioctx.get_xattr(self, key, xattr_name)\n\n Get the value of an extended attribute on an object.\n\n :param key: the name of the object to get xattr from\n :type key: str\n :param xattr_name: which extended attribute to read\n :type xattr_name: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: str - value of the xattr\n ";
41209static PyObject *__pyx_pw_5rados_5Ioctx_61get_xattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
41210 PyObject *__pyx_v_key = 0;
41211 PyObject *__pyx_v_xattr_name = 0;
41212 int __pyx_lineno = 0;
41213 const char *__pyx_filename = NULL((void*)0);
41214 int __pyx_clineno = 0;
41215 PyObject *__pyx_r = 0;
41216 __Pyx_RefNannyDeclarations
41217 __Pyx_RefNannySetupContext("get_xattr (wrapper)", 0);
41218 {
41219 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_xattr_name,0};
41220 PyObject* values[2] = {0,0};
41221 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
41222 Py_ssize_t kw_args;
41223 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
41224 switch (pos_args) {
41225 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
41226 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
41227 case 0: break;
41228 default: goto __pyx_L5_argtuple_error;
41229 }
41230 kw_args = PyDict_Size(__pyx_kwds);
41231 switch (pos_args) {
41232 case 0:
41233 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
41234 else goto __pyx_L5_argtuple_error;
41235 case 1:
41236 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name
)) != 0), 1)
) kw_args--;
41237 else {
41238 __Pyx_RaiseArgtupleInvalid("get_xattr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__41238; goto __pyx_L3_error;}
41239 }
41240 }
41241 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
41242 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_xattr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "get_xattr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__41242; goto __pyx_L3_error;}
41243 }
41244 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
41245 goto __pyx_L5_argtuple_error;
41246 } else {
41247 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
41248 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
41249 }
41250 __pyx_v_key = values[0];
41251 __pyx_v_xattr_name = values[1];
41252 }
41253 goto __pyx_L4_argument_unpacking_done;
41254 __pyx_L5_argtuple_error:;
41255 __Pyx_RaiseArgtupleInvalid("get_xattr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__41255; goto __pyx_L3_error;}
41256 __pyx_L3_error:;
41257 __Pyx_AddTraceback("rados.Ioctx.get_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
41258 __Pyx_RefNannyFinishContext();
41259 return NULL((void*)0);
41260 __pyx_L4_argument_unpacking_done:;
41261 __pyx_r = __pyx_pf_5rados_5Ioctx_60get_xattr(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_xattr_name);
41262
41263 /* function exit code */
41264 __Pyx_RefNannyFinishContext();
41265 return __pyx_r;
41266}
41267
41268static PyObject *__pyx_pf_5rados_5Ioctx_60get_xattr(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_xattr_name) {
41269 char *__pyx_v__key;
41270 char *__pyx_v__xattr_name;
41271 size_t __pyx_v_ret_length;
41272 char *__pyx_v_ret_buf;
41273 int __pyx_v_ret;
41274 PyObject *__pyx_r = NULL((void*)0);
41275 __Pyx_RefNannyDeclarations
41276 PyObject *__pyx_t_1 = NULL((void*)0);
41277 PyObject *__pyx_t_2 = NULL((void*)0);
41278 PyObject *__pyx_t_3 = NULL((void*)0);
41279 Py_ssize_t __pyx_t_4;
41280 PyObject *__pyx_t_5 = NULL((void*)0);
41281 char *__pyx_t_6;
41282 int __pyx_t_7;
41283 void *__pyx_t_8;
41284 int __pyx_t_9;
41285 int __pyx_t_10;
41286 char const *__pyx_t_11;
41287 PyObject *__pyx_t_12 = NULL((void*)0);
41288 PyObject *__pyx_t_13 = NULL((void*)0);
41289 PyObject *__pyx_t_14 = NULL((void*)0);
41290 PyObject *__pyx_t_15 = NULL((void*)0);
41291 PyObject *__pyx_t_16 = NULL((void*)0);
41292 PyObject *__pyx_t_17 = NULL((void*)0);
41293 int __pyx_lineno = 0;
41294 const char *__pyx_filename = NULL((void*)0);
41295 int __pyx_clineno = 0;
41296 __Pyx_RefNannySetupContext("get_xattr", 0);
41297 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
41298 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
41299
41300 /* "rados.pyx":3041
41301 * :returns: str - value of the xattr
41302 * """
41303 * self.require_ioctx_open() # <<<<<<<<<<<<<<
41304 *
41305 * key = cstr(key, 'key')
41306 */
41307 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__41307; goto __pyx_L1_error;}
41308 __Pyx_GOTREF(__pyx_t_2);
41309 __pyx_t_3 = NULL((void*)0);
41310 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
41311 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41312 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
41313 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41314 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
41315 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41316 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41317 }
41318 }
41319 if (__pyx_t_3) {
41320 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__41320; goto __pyx_L1_error;}
41321 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
41322 } else {
41323 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__41323; goto __pyx_L1_error;}
41324 }
41325 __Pyx_GOTREF(__pyx_t_1);
41326 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41327 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41328
41329 /* "rados.pyx":3043
41330 * self.require_ioctx_open()
41331 *
41332 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
41333 * xattr_name = cstr(xattr_name, 'xattr_name')
41334 * cdef:
41335 */
41336 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3043; __pyx_clineno = __LINE__41336; goto __pyx_L1_error;}
41337 __Pyx_GOTREF(__pyx_t_2);
41338 __pyx_t_3 = NULL((void*)0);
41339 __pyx_t_4 = 0;
41340 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
41341 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41342 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
41343 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41344 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
41345 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41346 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41347 __pyx_t_4 = 1;
41348 }
41349 }
41350 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3043; __pyx_clineno = __LINE__41350; goto __pyx_L1_error;}
41351 __Pyx_GOTREF(__pyx_t_5);
41352 if (__pyx_t_3) {
41353 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
41354 }
41355 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
41356 __Pyx_GIVEREF(__pyx_v_key);
41357 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
41358 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
41359 __Pyx_GIVEREF(__pyx_n_s_key);
41360 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
41361 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3043; __pyx_clineno = __LINE__41361; goto __pyx_L1_error;}
41362 __Pyx_GOTREF(__pyx_t_1);
41363 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
41364 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41365 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41366 __pyx_t_1 = 0;
41367
41368 /* "rados.pyx":3044
41369 *
41370 * key = cstr(key, 'key')
41371 * xattr_name = cstr(xattr_name, 'xattr_name') # <<<<<<<<<<<<<<
41372 * cdef:
41373 * char *_key = key
41374 */
41375 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3044; __pyx_clineno = __LINE__41375; goto __pyx_L1_error;}
41376 __Pyx_GOTREF(__pyx_t_2);
41377 __pyx_t_5 = NULL((void*)0);
41378 __pyx_t_4 = 0;
41379 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
41380 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41381 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
41382 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41383 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
41384 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41385 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41386 __pyx_t_4 = 1;
41387 }
41388 }
41389 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3044; __pyx_clineno = __LINE__41389; goto __pyx_L1_error;}
41390 __Pyx_GOTREF(__pyx_t_3);
41391 if (__pyx_t_5) {
41392 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
41393 }
41394 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
41395 __Pyx_GIVEREF(__pyx_v_xattr_name);
41396 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_xattr_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_xattr_name
)
;
41397 __Pyx_INCREF(__pyx_n_s_xattr_name)( ((PyObject*)(__pyx_n_s_xattr_name))->ob_refcnt++);
41398 __Pyx_GIVEREF(__pyx_n_s_xattr_name);
41399 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_xattr_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_xattr_name
)
;
41400 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3044; __pyx_clineno = __LINE__41400; goto __pyx_L1_error;}
41401 __Pyx_GOTREF(__pyx_t_1);
41402 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
41403 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41404 __Pyx_DECREF_SET(__pyx_v_xattr_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_xattr_name; __pyx_v_xattr_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
41405 __pyx_t_1 = 0;
41406
41407 /* "rados.pyx":3046
41408 * xattr_name = cstr(xattr_name, 'xattr_name')
41409 * cdef:
41410 * char *_key = key # <<<<<<<<<<<<<<
41411 * char *_xattr_name = xattr_name
41412 * size_t ret_length = 4096
41413 */
41414 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3046; __pyx_clineno = __LINE__41414; goto __pyx_L1_error;}
41415 __pyx_v__key = __pyx_t_6;
41416
41417 /* "rados.pyx":3047
41418 * cdef:
41419 * char *_key = key
41420 * char *_xattr_name = xattr_name # <<<<<<<<<<<<<<
41421 * size_t ret_length = 4096
41422 * char *ret_buf = NULL
41423 */
41424 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_xattr_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3047; __pyx_clineno = __LINE__41424; goto __pyx_L1_error;}
41425 __pyx_v__xattr_name = __pyx_t_6;
41426
41427 /* "rados.pyx":3048
41428 * char *_key = key
41429 * char *_xattr_name = xattr_name
41430 * size_t ret_length = 4096 # <<<<<<<<<<<<<<
41431 * char *ret_buf = NULL
41432 *
41433 */
41434 __pyx_v_ret_length = 0x1000;
41435
41436 /* "rados.pyx":3049
41437 * char *_xattr_name = xattr_name
41438 * size_t ret_length = 4096
41439 * char *ret_buf = NULL # <<<<<<<<<<<<<<
41440 *
41441 * try:
41442 */
41443 __pyx_v_ret_buf = NULL((void*)0);
41444
41445 /* "rados.pyx":3051
41446 * char *ret_buf = NULL
41447 *
41448 * try: # <<<<<<<<<<<<<<
41449 * while ret_length < 4096 * 1024 * 1024:
41450 * ret_buf = <char *>realloc_chk(ret_buf, ret_length)
41451 */
41452 /*try:*/ {
41453
41454 /* "rados.pyx":3052
41455 *
41456 * try:
41457 * while ret_length < 4096 * 1024 * 1024: # <<<<<<<<<<<<<<
41458 * ret_buf = <char *>realloc_chk(ret_buf, ret_length)
41459 * with nogil:
41460 */
41461 while (1) {
41462 __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_ret_length); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3052; __pyx_clineno = __LINE__41462; goto __pyx_L4_error;}
41463 __Pyx_GOTREF(__pyx_t_1);
41464 __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_4294967296, Py_LT0); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3052; __pyx_clineno = __LINE__41464; goto __pyx_L4_error;}
41465 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41466 __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)__builtin_expect(!!(__pyx_t_7 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3052; __pyx_clineno = __LINE__41466; goto __pyx_L4_error;}
41467 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41468 if (!__pyx_t_7) break;
41469
41470 /* "rados.pyx":3053
41471 * try:
41472 * while ret_length < 4096 * 1024 * 1024:
41473 * ret_buf = <char *>realloc_chk(ret_buf, ret_length) # <<<<<<<<<<<<<<
41474 * with nogil:
41475 * ret = rados_getxattr(self.io, _key, _xattr_name, ret_buf, ret_length)
41476 */
41477 __pyx_t_8 = __pyx_f_5rados_realloc_chk(__pyx_v_ret_buf, __pyx_v_ret_length); if (unlikely(__pyx_t_8 == NULL)__builtin_expect(!!(__pyx_t_8 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3053; __pyx_clineno = __LINE__41477; goto __pyx_L4_error;}
41478 __pyx_v_ret_buf = ((char *)__pyx_t_8);
41479
41480 /* "rados.pyx":3054
41481 * while ret_length < 4096 * 1024 * 1024:
41482 * ret_buf = <char *>realloc_chk(ret_buf, ret_length)
41483 * with nogil: # <<<<<<<<<<<<<<
41484 * ret = rados_getxattr(self.io, _key, _xattr_name, ret_buf, ret_length)
41485 * if ret == -errno.ERANGE:
41486 */
41487 {
41488 #ifdef WITH_THREAD1
41489 PyThreadState *_save;
41490 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
41491 #endif
41492 /*try:*/ {
41493
41494 /* "rados.pyx":3055
41495 * ret_buf = <char *>realloc_chk(ret_buf, ret_length)
41496 * with nogil:
41497 * ret = rados_getxattr(self.io, _key, _xattr_name, ret_buf, ret_length) # <<<<<<<<<<<<<<
41498 * if ret == -errno.ERANGE:
41499 * ret_length *= 2
41500 */
41501 __pyx_v_ret = rados_getxattr(__pyx_v_self->io, __pyx_v__key, __pyx_v__xattr_name, __pyx_v_ret_buf, __pyx_v_ret_length);
41502 }
41503
41504 /* "rados.pyx":3054
41505 * while ret_length < 4096 * 1024 * 1024:
41506 * ret_buf = <char *>realloc_chk(ret_buf, ret_length)
41507 * with nogil: # <<<<<<<<<<<<<<
41508 * ret = rados_getxattr(self.io, _key, _xattr_name, ret_buf, ret_length)
41509 * if ret == -errno.ERANGE:
41510 */
41511 /*finally:*/ {
41512 /*normal exit:*/{
41513 #ifdef WITH_THREAD1
41514 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
41515 #endif
41516 goto __pyx_L12;
41517 }
41518 __pyx_L12:;
41519 }
41520 }
41521
41522 /* "rados.pyx":3056
41523 * with nogil:
41524 * ret = rados_getxattr(self.io, _key, _xattr_name, ret_buf, ret_length)
41525 * if ret == -errno.ERANGE: # <<<<<<<<<<<<<<
41526 * ret_length *= 2
41527 * elif ret < 0:
41528 */
41529 __pyx_t_7 = ((__pyx_v_ret == (-ERANGE34)) != 0);
41530 if (__pyx_t_7) {
41531
41532 /* "rados.pyx":3057
41533 * ret = rados_getxattr(self.io, _key, _xattr_name, ret_buf, ret_length)
41534 * if ret == -errno.ERANGE:
41535 * ret_length *= 2 # <<<<<<<<<<<<<<
41536 * elif ret < 0:
41537 * raise make_ex(ret, "Failed to get xattr %r" % xattr_name)
41538 */
41539 __pyx_v_ret_length = (__pyx_v_ret_length * 2);
41540
41541 /* "rados.pyx":3056
41542 * with nogil:
41543 * ret = rados_getxattr(self.io, _key, _xattr_name, ret_buf, ret_length)
41544 * if ret == -errno.ERANGE: # <<<<<<<<<<<<<<
41545 * ret_length *= 2
41546 * elif ret < 0:
41547 */
41548 goto __pyx_L13;
41549 }
41550
41551 /* "rados.pyx":3058
41552 * if ret == -errno.ERANGE:
41553 * ret_length *= 2
41554 * elif ret < 0: # <<<<<<<<<<<<<<
41555 * raise make_ex(ret, "Failed to get xattr %r" % xattr_name)
41556 * else:
41557 */
41558 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
41559 if (__pyx_t_7) {
41560
41561 /* "rados.pyx":3059
41562 * ret_length *= 2
41563 * elif ret < 0:
41564 * raise make_ex(ret, "Failed to get xattr %r" % xattr_name) # <<<<<<<<<<<<<<
41565 * else:
41566 * break
41567 */
41568 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3059; __pyx_clineno = __LINE__41568; goto __pyx_L4_error;}
41569 __Pyx_GOTREF(__pyx_t_2);
41570 __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_get_xattr_r, __pyx_v_xattr_name)PyString_Format(__pyx_kp_s_Failed_to_get_xattr_r, __pyx_v_xattr_name
)
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3059; __pyx_clineno = __LINE__41570; goto __pyx_L4_error;}
41571 __Pyx_GOTREF(__pyx_t_1);
41572 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3059; __pyx_clineno = __LINE__41572; goto __pyx_L4_error;}
41573 __Pyx_GOTREF(__pyx_t_3);
41574 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41575 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41576 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
41577 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
41578 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3059; __pyx_clineno = __LINE__41578; goto __pyx_L4_error;}
41579
41580 /* "rados.pyx":3058
41581 * if ret == -errno.ERANGE:
41582 * ret_length *= 2
41583 * elif ret < 0: # <<<<<<<<<<<<<<
41584 * raise make_ex(ret, "Failed to get xattr %r" % xattr_name)
41585 * else:
41586 */
41587 }
41588
41589 /* "rados.pyx":3061
41590 * raise make_ex(ret, "Failed to get xattr %r" % xattr_name)
41591 * else:
41592 * break # <<<<<<<<<<<<<<
41593 * return ret_buf[:ret]
41594 * finally:
41595 */
41596 /*else*/ {
41597 goto __pyx_L7_break;
41598 }
41599 __pyx_L13:;
41600 }
41601 __pyx_L7_break:;
41602
41603 /* "rados.pyx":3062
41604 * else:
41605 * break
41606 * return ret_buf[:ret] # <<<<<<<<<<<<<<
41607 * finally:
41608 * free(ret_buf)
41609 */
41610 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
41611 __pyx_t_3 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_ret_buf + 0, __pyx_v_ret - 0); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3062; __pyx_clineno = __LINE__41611; goto __pyx_L4_error;}
41612 __Pyx_GOTREF(__pyx_t_3);
41613 __pyx_r = __pyx_t_3;
41614 __pyx_t_3 = 0;
41615 goto __pyx_L3_return;
41616 }
41617
41618 /* "rados.pyx":3064
41619 * return ret_buf[:ret]
41620 * finally:
41621 * free(ret_buf) # <<<<<<<<<<<<<<
41622 *
41623 * @requires(('oid', str_type))
41624 */
41625 /*finally:*/ {
41626 /*exception exit:*/{
41627 __pyx_L4_error:;
41628 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
41629 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
41630 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
41631 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
41632 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
41633 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
41634 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_12, &
__pyx_t_13, &__pyx_t_14) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
41635 __Pyx_XGOTREF(__pyx_t_12);
41636 __Pyx_XGOTREF(__pyx_t_13);
41637 __Pyx_XGOTREF(__pyx_t_14);
41638 __Pyx_XGOTREF(__pyx_t_15);
41639 __Pyx_XGOTREF(__pyx_t_16);
41640 __Pyx_XGOTREF(__pyx_t_17);
41641 __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename;
41642 {
41643 free(__pyx_v_ret_buf);
41644 }
41645 if (PY_MAJOR_VERSION2 >= 3) {
41646 __Pyx_XGIVEREF(__pyx_t_15);
41647 __Pyx_XGIVEREF(__pyx_t_16);
41648 __Pyx_XGIVEREF(__pyx_t_17);
41649 __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
41650 }
41651 __Pyx_XGIVEREF(__pyx_t_12);
41652 __Pyx_XGIVEREF(__pyx_t_13);
41653 __Pyx_XGIVEREF(__pyx_t_14);
41654 __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
41655 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
41656 __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11;
41657 goto __pyx_L1_error;
41658 }
41659 __pyx_L3_return: {
41660 __pyx_t_17 = __pyx_r;
41661 __pyx_r = 0;
41662 free(__pyx_v_ret_buf);
41663 __pyx_r = __pyx_t_17;
41664 __pyx_t_17 = 0;
41665 goto __pyx_L0;
41666 }
41667 }
41668
41669 /* "rados.pyx":3028
41670 *
41671 * @requires(('key', str_type), ('xattr_name', str_type))
41672 * def get_xattr(self, key, xattr_name): # <<<<<<<<<<<<<<
41673 * """
41674 * Get the value of an extended attribute on an object.
41675 */
41676
41677 /* function exit code */
41678 __pyx_L1_error:;
41679 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
41680 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
41681 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
41682 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
41683 __Pyx_AddTraceback("rados.Ioctx.get_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
41684 __pyx_r = NULL((void*)0);
41685 __pyx_L0:;
41686 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
41687 __Pyx_XDECREF(__pyx_v_xattr_name)do { if ((__pyx_v_xattr_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_xattr_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_xattr_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_xattr_name
)))); } while (0); } while (0)
;
41688 __Pyx_XGIVEREF(__pyx_r);
41689 __Pyx_RefNannyFinishContext();
41690 return __pyx_r;
41691}
41692
41693/* "rados.pyx":3067
41694 *
41695 * @requires(('oid', str_type))
41696 * def get_xattrs(self, oid): # <<<<<<<<<<<<<<
41697 * """
41698 * Start iterating over xattrs on an object.
41699 */
41700
41701/* Python wrapper */
41702static PyObject *__pyx_pw_5rados_5Ioctx_63get_xattrs(PyObject *__pyx_v_self, PyObject *__pyx_v_oid); /*proto*/
41703static char __pyx_doc_5rados_5Ioctx_62get_xattrs[] = "Ioctx.get_xattrs(self, oid)\n\n Start iterating over xattrs on an object.\n\n :param oid: the name of the object to get xattrs from\n :type oid: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: XattrIterator\n ";
41704static PyObject *__pyx_pw_5rados_5Ioctx_63get_xattrs(PyObject *__pyx_v_self, PyObject *__pyx_v_oid) {
41705 PyObject *__pyx_r = 0;
41706 __Pyx_RefNannyDeclarations
41707 __Pyx_RefNannySetupContext("get_xattrs (wrapper)", 0);
41708 __pyx_r = __pyx_pf_5rados_5Ioctx_62get_xattrs(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_oid));
41709
41710 /* function exit code */
41711 __Pyx_RefNannyFinishContext();
41712 return __pyx_r;
41713}
41714
41715static PyObject *__pyx_pf_5rados_5Ioctx_62get_xattrs(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oid) {
41716 PyObject *__pyx_r = NULL((void*)0);
41717 __Pyx_RefNannyDeclarations
41718 PyObject *__pyx_t_1 = NULL((void*)0);
41719 PyObject *__pyx_t_2 = NULL((void*)0);
41720 PyObject *__pyx_t_3 = NULL((void*)0);
41721 int __pyx_lineno = 0;
41722 const char *__pyx_filename = NULL((void*)0);
41723 int __pyx_clineno = 0;
41724 __Pyx_RefNannySetupContext("get_xattrs", 0);
41725
41726 /* "rados.pyx":3078
41727 * :returns: XattrIterator
41728 * """
41729 * self.require_ioctx_open() # <<<<<<<<<<<<<<
41730 * return XattrIterator(self, oid)
41731 *
41732 */
41733 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3078; __pyx_clineno = __LINE__41733; goto __pyx_L1_error;}
41734 __Pyx_GOTREF(__pyx_t_2);
41735 __pyx_t_3 = NULL((void*)0);
41736 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
41737 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41738 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
41739 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41740 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
41741 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41742 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41743 }
41744 }
41745 if (__pyx_t_3) {
41746 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3078; __pyx_clineno = __LINE__41746; goto __pyx_L1_error;}
41747 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
41748 } else {
41749 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3078; __pyx_clineno = __LINE__41749; goto __pyx_L1_error;}
41750 }
41751 __Pyx_GOTREF(__pyx_t_1);
41752 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41753 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41754
41755 /* "rados.pyx":3079
41756 * """
41757 * self.require_ioctx_open()
41758 * return XattrIterator(self, oid) # <<<<<<<<<<<<<<
41759 *
41760 * @requires(('key', str_type), ('xattr_name', str_type), ('xattr_value', bytes))
41761 */
41762 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
41763 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3079; __pyx_clineno = __LINE__41763; goto __pyx_L1_error;}
41764 __Pyx_GOTREF(__pyx_t_1);
41765 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
41766 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
41767 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
41768 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
41769 __Pyx_GIVEREF(__pyx_v_oid);
41770 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_v_oid);
41771 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_XattrIterator), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3079; __pyx_clineno = __LINE__41771; goto __pyx_L1_error;}
41772 __Pyx_GOTREF(__pyx_t_2);
41773 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41774 __pyx_r = __pyx_t_2;
41775 __pyx_t_2 = 0;
41776 goto __pyx_L0;
41777
41778 /* "rados.pyx":3067
41779 *
41780 * @requires(('oid', str_type))
41781 * def get_xattrs(self, oid): # <<<<<<<<<<<<<<
41782 * """
41783 * Start iterating over xattrs on an object.
41784 */
41785
41786 /* function exit code */
41787 __pyx_L1_error:;
41788 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
41789 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
41790 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
41791 __Pyx_AddTraceback("rados.Ioctx.get_xattrs", __pyx_clineno, __pyx_lineno, __pyx_filename);
41792 __pyx_r = NULL((void*)0);
41793 __pyx_L0:;
41794 __Pyx_XGIVEREF(__pyx_r);
41795 __Pyx_RefNannyFinishContext();
41796 return __pyx_r;
41797}
41798
41799/* "rados.pyx":3082
41800 *
41801 * @requires(('key', str_type), ('xattr_name', str_type), ('xattr_value', bytes))
41802 * def set_xattr(self, key, xattr_name, xattr_value): # <<<<<<<<<<<<<<
41803 * """
41804 * Set an extended attribute on an object.
41805 */
41806
41807/* Python wrapper */
41808static PyObject *__pyx_pw_5rados_5Ioctx_65set_xattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
41809static char __pyx_doc_5rados_5Ioctx_64set_xattr[] = "Ioctx.set_xattr(self, key, xattr_name, xattr_value)\n\n Set an extended attribute on an object.\n\n :param key: the name of the object to set xattr to\n :type key: str\n :param xattr_name: which extended attribute to set\n :type xattr_name: str\n :param xattr_value: the value of the extended attribute\n :type xattr_value: bytes\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: bool - True on success, otherwise raise an error\n ";
41810static PyObject *__pyx_pw_5rados_5Ioctx_65set_xattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
41811 PyObject *__pyx_v_key = 0;
41812 PyObject *__pyx_v_xattr_name = 0;
41813 PyObject *__pyx_v_xattr_value = 0;
41814 int __pyx_lineno = 0;
41815 const char *__pyx_filename = NULL((void*)0);
41816 int __pyx_clineno = 0;
41817 PyObject *__pyx_r = 0;
41818 __Pyx_RefNannyDeclarations
41819 __Pyx_RefNannySetupContext("set_xattr (wrapper)", 0);
41820 {
41821 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_xattr_name,&__pyx_n_s_xattr_value,0};
41822 PyObject* values[3] = {0,0,0};
41823 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
41824 Py_ssize_t kw_args;
41825 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
41826 switch (pos_args) {
41827 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
41828 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
41829 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
41830 case 0: break;
41831 default: goto __pyx_L5_argtuple_error;
41832 }
41833 kw_args = PyDict_Size(__pyx_kwds);
41834 switch (pos_args) {
41835 case 0:
41836 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
41837 else goto __pyx_L5_argtuple_error;
41838 case 1:
41839 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name
)) != 0), 1)
) kw_args--;
41840 else {
41841 __Pyx_RaiseArgtupleInvalid("set_xattr", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__41841; goto __pyx_L3_error;}
41842 }
41843 case 2:
41844 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_value)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_value
)) != 0), 1)
) kw_args--;
41845 else {
41846 __Pyx_RaiseArgtupleInvalid("set_xattr", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__41846; goto __pyx_L3_error;}
41847 }
41848 }
41849 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
41850 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_xattr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "set_xattr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__41850; goto __pyx_L3_error;}
41851 }
41852 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
41853 goto __pyx_L5_argtuple_error;
41854 } else {
41855 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
41856 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
41857 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
41858 }
41859 __pyx_v_key = values[0];
41860 __pyx_v_xattr_name = values[1];
41861 __pyx_v_xattr_value = values[2];
41862 }
41863 goto __pyx_L4_argument_unpacking_done;
41864 __pyx_L5_argtuple_error:;
41865 __Pyx_RaiseArgtupleInvalid("set_xattr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__41865; goto __pyx_L3_error;}
41866 __pyx_L3_error:;
41867 __Pyx_AddTraceback("rados.Ioctx.set_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
41868 __Pyx_RefNannyFinishContext();
41869 return NULL((void*)0);
41870 __pyx_L4_argument_unpacking_done:;
41871 __pyx_r = __pyx_pf_5rados_5Ioctx_64set_xattr(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_xattr_name, __pyx_v_xattr_value);
41872
41873 /* function exit code */
41874 __Pyx_RefNannyFinishContext();
41875 return __pyx_r;
41876}
41877
41878static PyObject *__pyx_pf_5rados_5Ioctx_64set_xattr(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_xattr_name, PyObject *__pyx_v_xattr_value) {
41879 char *__pyx_v__key;
41880 char *__pyx_v__xattr_name;
41881 char *__pyx_v__xattr_value;
41882 size_t __pyx_v__xattr_value_len;
41883 int __pyx_v_ret;
41884 PyObject *__pyx_r = NULL((void*)0);
41885 __Pyx_RefNannyDeclarations
41886 PyObject *__pyx_t_1 = NULL((void*)0);
41887 PyObject *__pyx_t_2 = NULL((void*)0);
41888 PyObject *__pyx_t_3 = NULL((void*)0);
41889 Py_ssize_t __pyx_t_4;
41890 PyObject *__pyx_t_5 = NULL((void*)0);
41891 char *__pyx_t_6;
41892 int __pyx_t_7;
41893 int __pyx_lineno = 0;
41894 const char *__pyx_filename = NULL((void*)0);
41895 int __pyx_clineno = 0;
41896 __Pyx_RefNannySetupContext("set_xattr", 0);
41897 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
41898 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
41899
41900 /* "rados.pyx":3097
41901 * :returns: bool - True on success, otherwise raise an error
41902 * """
41903 * self.require_ioctx_open() # <<<<<<<<<<<<<<
41904 *
41905 * key = cstr(key, 'key')
41906 */
41907 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3097; __pyx_clineno = __LINE__41907; goto __pyx_L1_error;}
41908 __Pyx_GOTREF(__pyx_t_2);
41909 __pyx_t_3 = NULL((void*)0);
41910 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
41911 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41912 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
41913 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41914 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
41915 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41916 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41917 }
41918 }
41919 if (__pyx_t_3) {
41920 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3097; __pyx_clineno = __LINE__41920; goto __pyx_L1_error;}
41921 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
41922 } else {
41923 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3097; __pyx_clineno = __LINE__41923; goto __pyx_L1_error;}
41924 }
41925 __Pyx_GOTREF(__pyx_t_1);
41926 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41927 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
41928
41929 /* "rados.pyx":3099
41930 * self.require_ioctx_open()
41931 *
41932 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
41933 * xattr_name = cstr(xattr_name, 'xattr_name')
41934 * cdef:
41935 */
41936 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__41936; goto __pyx_L1_error;}
41937 __Pyx_GOTREF(__pyx_t_2);
41938 __pyx_t_3 = NULL((void*)0);
41939 __pyx_t_4 = 0;
41940 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
41941 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41942 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
41943 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41944 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
41945 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41946 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41947 __pyx_t_4 = 1;
41948 }
41949 }
41950 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__41950; goto __pyx_L1_error;}
41951 __Pyx_GOTREF(__pyx_t_5);
41952 if (__pyx_t_3) {
41953 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
41954 }
41955 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
41956 __Pyx_GIVEREF(__pyx_v_key);
41957 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
41958 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
41959 __Pyx_GIVEREF(__pyx_n_s_key);
41960 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
41961 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3099; __pyx_clineno = __LINE__41961; goto __pyx_L1_error;}
41962 __Pyx_GOTREF(__pyx_t_1);
41963 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
41964 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
41965 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41966 __pyx_t_1 = 0;
41967
41968 /* "rados.pyx":3100
41969 *
41970 * key = cstr(key, 'key')
41971 * xattr_name = cstr(xattr_name, 'xattr_name') # <<<<<<<<<<<<<<
41972 * cdef:
41973 * char *_key = key
41974 */
41975 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__41975; goto __pyx_L1_error;}
41976 __Pyx_GOTREF(__pyx_t_2);
41977 __pyx_t_5 = NULL((void*)0);
41978 __pyx_t_4 = 0;
41979 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
41980 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
41981 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
41982 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
41983 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
41984 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
41985 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
41986 __pyx_t_4 = 1;
41987 }
41988 }
41989 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__41989; goto __pyx_L1_error;}
41990 __Pyx_GOTREF(__pyx_t_3);
41991 if (__pyx_t_5) {
41992 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
41993 }
41994 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
41995 __Pyx_GIVEREF(__pyx_v_xattr_name);
41996 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_xattr_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_xattr_name
)
;
41997 __Pyx_INCREF(__pyx_n_s_xattr_name)( ((PyObject*)(__pyx_n_s_xattr_name))->ob_refcnt++);
41998 __Pyx_GIVEREF(__pyx_n_s_xattr_name);
41999 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_xattr_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_xattr_name
)
;
42000 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__42000; goto __pyx_L1_error;}
42001 __Pyx_GOTREF(__pyx_t_1);
42002 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42003 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42004 __Pyx_DECREF_SET(__pyx_v_xattr_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_xattr_name; __pyx_v_xattr_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
42005 __pyx_t_1 = 0;
42006
42007 /* "rados.pyx":3102
42008 * xattr_name = cstr(xattr_name, 'xattr_name')
42009 * cdef:
42010 * char *_key = key # <<<<<<<<<<<<<<
42011 * char *_xattr_name = xattr_name
42012 * char *_xattr_value = xattr_value
42013 */
42014 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3102; __pyx_clineno = __LINE__42014; goto __pyx_L1_error;}
42015 __pyx_v__key = __pyx_t_6;
42016
42017 /* "rados.pyx":3103
42018 * cdef:
42019 * char *_key = key
42020 * char *_xattr_name = xattr_name # <<<<<<<<<<<<<<
42021 * char *_xattr_value = xattr_value
42022 * size_t _xattr_value_len = len(xattr_value)
42023 */
42024 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_xattr_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__42024; goto __pyx_L1_error;}
42025 __pyx_v__xattr_name = __pyx_t_6;
42026
42027 /* "rados.pyx":3104
42028 * char *_key = key
42029 * char *_xattr_name = xattr_name
42030 * char *_xattr_value = xattr_value # <<<<<<<<<<<<<<
42031 * size_t _xattr_value_len = len(xattr_value)
42032 *
42033 */
42034 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_xattr_value); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3104; __pyx_clineno = __LINE__42034; goto __pyx_L1_error;}
42035 __pyx_v__xattr_value = __pyx_t_6;
42036
42037 /* "rados.pyx":3105
42038 * char *_xattr_name = xattr_name
42039 * char *_xattr_value = xattr_value
42040 * size_t _xattr_value_len = len(xattr_value) # <<<<<<<<<<<<<<
42041 *
42042 * with nogil:
42043 */
42044 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_xattr_value); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3105; __pyx_clineno = __LINE__42044; goto __pyx_L1_error;}
42045 __pyx_v__xattr_value_len = __pyx_t_4;
42046
42047 /* "rados.pyx":3107
42048 * size_t _xattr_value_len = len(xattr_value)
42049 *
42050 * with nogil: # <<<<<<<<<<<<<<
42051 * ret = rados_setxattr(self.io, _key, _xattr_name,
42052 * _xattr_value, _xattr_value_len)
42053 */
42054 {
42055 #ifdef WITH_THREAD1
42056 PyThreadState *_save;
42057 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
42058 #endif
42059 /*try:*/ {
42060
42061 /* "rados.pyx":3108
42062 *
42063 * with nogil:
42064 * ret = rados_setxattr(self.io, _key, _xattr_name, # <<<<<<<<<<<<<<
42065 * _xattr_value, _xattr_value_len)
42066 * if ret < 0:
42067 */
42068 __pyx_v_ret = rados_setxattr(__pyx_v_self->io, __pyx_v__key, __pyx_v__xattr_name, __pyx_v__xattr_value, __pyx_v__xattr_value_len);
42069 }
42070
42071 /* "rados.pyx":3107
42072 * size_t _xattr_value_len = len(xattr_value)
42073 *
42074 * with nogil: # <<<<<<<<<<<<<<
42075 * ret = rados_setxattr(self.io, _key, _xattr_name,
42076 * _xattr_value, _xattr_value_len)
42077 */
42078 /*finally:*/ {
42079 /*normal exit:*/{
42080 #ifdef WITH_THREAD1
42081 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
42082 #endif
42083 goto __pyx_L5;
42084 }
42085 __pyx_L5:;
42086 }
42087 }
42088
42089 /* "rados.pyx":3110
42090 * ret = rados_setxattr(self.io, _key, _xattr_name,
42091 * _xattr_value, _xattr_value_len)
42092 * if ret < 0: # <<<<<<<<<<<<<<
42093 * raise make_ex(ret, "Failed to set xattr %r" % xattr_name)
42094 * return True
42095 */
42096 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
42097 if (__pyx_t_7) {
42098
42099 /* "rados.pyx":3111
42100 * _xattr_value, _xattr_value_len)
42101 * if ret < 0:
42102 * raise make_ex(ret, "Failed to set xattr %r" % xattr_name) # <<<<<<<<<<<<<<
42103 * return True
42104 *
42105 */
42106 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3111; __pyx_clineno = __LINE__42106; goto __pyx_L1_error;}
42107 __Pyx_GOTREF(__pyx_t_1);
42108 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_set_xattr_r, __pyx_v_xattr_name)PyString_Format(__pyx_kp_s_Failed_to_set_xattr_r, __pyx_v_xattr_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3111; __pyx_clineno = __LINE__42108; goto __pyx_L1_error;}
42109 __Pyx_GOTREF(__pyx_t_2);
42110 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3111; __pyx_clineno = __LINE__42110; goto __pyx_L1_error;}
42111 __Pyx_GOTREF(__pyx_t_3);
42112 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
42113 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42114 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
42115 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42116 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3111; __pyx_clineno = __LINE__42116; goto __pyx_L1_error;}
42117
42118 /* "rados.pyx":3110
42119 * ret = rados_setxattr(self.io, _key, _xattr_name,
42120 * _xattr_value, _xattr_value_len)
42121 * if ret < 0: # <<<<<<<<<<<<<<
42122 * raise make_ex(ret, "Failed to set xattr %r" % xattr_name)
42123 * return True
42124 */
42125 }
42126
42127 /* "rados.pyx":3112
42128 * if ret < 0:
42129 * raise make_ex(ret, "Failed to set xattr %r" % xattr_name)
42130 * return True # <<<<<<<<<<<<<<
42131 *
42132 * @requires(('key', str_type), ('xattr_name', str_type))
42133 */
42134 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
42135 __Pyx_INCREF(Py_True)( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->ob_refcnt
++)
;
42136 __pyx_r = Py_True((PyObject *) &_Py_TrueStruct);
42137 goto __pyx_L0;
42138
42139 /* "rados.pyx":3082
42140 *
42141 * @requires(('key', str_type), ('xattr_name', str_type), ('xattr_value', bytes))
42142 * def set_xattr(self, key, xattr_name, xattr_value): # <<<<<<<<<<<<<<
42143 * """
42144 * Set an extended attribute on an object.
42145 */
42146
42147 /* function exit code */
42148 __pyx_L1_error:;
42149 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
42150 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
42151 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
42152 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
42153 __Pyx_AddTraceback("rados.Ioctx.set_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
42154 __pyx_r = NULL((void*)0);
42155 __pyx_L0:;
42156 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
42157 __Pyx_XDECREF(__pyx_v_xattr_name)do { if ((__pyx_v_xattr_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_xattr_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_xattr_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_xattr_name
)))); } while (0); } while (0)
;
42158 __Pyx_XGIVEREF(__pyx_r);
42159 __Pyx_RefNannyFinishContext();
42160 return __pyx_r;
42161}
42162
42163/* "rados.pyx":3115
42164 *
42165 * @requires(('key', str_type), ('xattr_name', str_type))
42166 * def rm_xattr(self, key, xattr_name): # <<<<<<<<<<<<<<
42167 * """
42168 * Removes an extended attribute on from an object.
42169 */
42170
42171/* Python wrapper */
42172static PyObject *__pyx_pw_5rados_5Ioctx_67rm_xattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
42173static char __pyx_doc_5rados_5Ioctx_66rm_xattr[] = "Ioctx.rm_xattr(self, key, xattr_name)\n\n Removes an extended attribute on from an object.\n\n :param key: the name of the object to remove xattr from\n :type key: str\n :param xattr_name: which extended attribute to remove\n :type xattr_name: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: bool - True on success, otherwise raise an error\n ";
42174static PyObject *__pyx_pw_5rados_5Ioctx_67rm_xattr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
42175 PyObject *__pyx_v_key = 0;
42176 PyObject *__pyx_v_xattr_name = 0;
42177 int __pyx_lineno = 0;
42178 const char *__pyx_filename = NULL((void*)0);
42179 int __pyx_clineno = 0;
42180 PyObject *__pyx_r = 0;
42181 __Pyx_RefNannyDeclarations
42182 __Pyx_RefNannySetupContext("rm_xattr (wrapper)", 0);
42183 {
42184 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_xattr_name,0};
42185 PyObject* values[2] = {0,0};
42186 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
42187 Py_ssize_t kw_args;
42188 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
42189 switch (pos_args) {
42190 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
42191 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
42192 case 0: break;
42193 default: goto __pyx_L5_argtuple_error;
42194 }
42195 kw_args = PyDict_Size(__pyx_kwds);
42196 switch (pos_args) {
42197 case 0:
42198 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
42199 else goto __pyx_L5_argtuple_error;
42200 case 1:
42201 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name
)) != 0), 1)
) kw_args--;
42202 else {
42203 __Pyx_RaiseArgtupleInvalid("rm_xattr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3115; __pyx_clineno = __LINE__42203; goto __pyx_L3_error;}
42204 }
42205 }
42206 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
42207 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rm_xattr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "rm_xattr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3115; __pyx_clineno = __LINE__42207; goto __pyx_L3_error;}
42208 }
42209 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
42210 goto __pyx_L5_argtuple_error;
42211 } else {
42212 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
42213 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
42214 }
42215 __pyx_v_key = values[0];
42216 __pyx_v_xattr_name = values[1];
42217 }
42218 goto __pyx_L4_argument_unpacking_done;
42219 __pyx_L5_argtuple_error:;
42220 __Pyx_RaiseArgtupleInvalid("rm_xattr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3115; __pyx_clineno = __LINE__42220; goto __pyx_L3_error;}
42221 __pyx_L3_error:;
42222 __Pyx_AddTraceback("rados.Ioctx.rm_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
42223 __Pyx_RefNannyFinishContext();
42224 return NULL((void*)0);
42225 __pyx_L4_argument_unpacking_done:;
42226 __pyx_r = __pyx_pf_5rados_5Ioctx_66rm_xattr(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_xattr_name);
42227
42228 /* function exit code */
42229 __Pyx_RefNannyFinishContext();
42230 return __pyx_r;
42231}
42232
42233static PyObject *__pyx_pf_5rados_5Ioctx_66rm_xattr(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_xattr_name) {
42234 char *__pyx_v__key;
42235 char *__pyx_v__xattr_name;
42236 int __pyx_v_ret;
42237 PyObject *__pyx_r = NULL((void*)0);
42238 __Pyx_RefNannyDeclarations
42239 PyObject *__pyx_t_1 = NULL((void*)0);
42240 PyObject *__pyx_t_2 = NULL((void*)0);
42241 PyObject *__pyx_t_3 = NULL((void*)0);
42242 Py_ssize_t __pyx_t_4;
42243 PyObject *__pyx_t_5 = NULL((void*)0);
42244 char *__pyx_t_6;
42245 int __pyx_t_7;
42246 int __pyx_lineno = 0;
42247 const char *__pyx_filename = NULL((void*)0);
42248 int __pyx_clineno = 0;
42249 __Pyx_RefNannySetupContext("rm_xattr", 0);
42250 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
42251 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
42252
42253 /* "rados.pyx":3128
42254 * :returns: bool - True on success, otherwise raise an error
42255 * """
42256 * self.require_ioctx_open() # <<<<<<<<<<<<<<
42257 *
42258 * key = cstr(key, 'key')
42259 */
42260 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__42260; goto __pyx_L1_error;}
42261 __Pyx_GOTREF(__pyx_t_2);
42262 __pyx_t_3 = NULL((void*)0);
42263 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
42264 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
42265 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
42266 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
42267 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
42268 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
42269 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42270 }
42271 }
42272 if (__pyx_t_3) {
42273 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__42273; goto __pyx_L1_error;}
42274 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42275 } else {
42276 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__42276; goto __pyx_L1_error;}
42277 }
42278 __Pyx_GOTREF(__pyx_t_1);
42279 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42280 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
42281
42282 /* "rados.pyx":3130
42283 * self.require_ioctx_open()
42284 *
42285 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
42286 * xattr_name = cstr(xattr_name, 'xattr_name')
42287 * cdef:
42288 */
42289 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__42289; goto __pyx_L1_error;}
42290 __Pyx_GOTREF(__pyx_t_2);
42291 __pyx_t_3 = NULL((void*)0);
42292 __pyx_t_4 = 0;
42293 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
42294 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
42295 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
42296 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
42297 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
42298 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
42299 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42300 __pyx_t_4 = 1;
42301 }
42302 }
42303 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__42303; goto __pyx_L1_error;}
42304 __Pyx_GOTREF(__pyx_t_5);
42305 if (__pyx_t_3) {
42306 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
42307 }
42308 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
42309 __Pyx_GIVEREF(__pyx_v_key);
42310 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
42311 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
42312 __Pyx_GIVEREF(__pyx_n_s_key);
42313 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
42314 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__42314; goto __pyx_L1_error;}
42315 __Pyx_GOTREF(__pyx_t_1);
42316 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
42317 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42318 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42319 __pyx_t_1 = 0;
42320
42321 /* "rados.pyx":3131
42322 *
42323 * key = cstr(key, 'key')
42324 * xattr_name = cstr(xattr_name, 'xattr_name') # <<<<<<<<<<<<<<
42325 * cdef:
42326 * char *_key = key
42327 */
42328 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3131; __pyx_clineno = __LINE__42328; goto __pyx_L1_error;}
42329 __Pyx_GOTREF(__pyx_t_2);
42330 __pyx_t_5 = NULL((void*)0);
42331 __pyx_t_4 = 0;
42332 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
42333 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
42334 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
42335 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
42336 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
42337 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
42338 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42339 __pyx_t_4 = 1;
42340 }
42341 }
42342 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3131; __pyx_clineno = __LINE__42342; goto __pyx_L1_error;}
42343 __Pyx_GOTREF(__pyx_t_3);
42344 if (__pyx_t_5) {
42345 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
42346 }
42347 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
42348 __Pyx_GIVEREF(__pyx_v_xattr_name);
42349 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_xattr_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_xattr_name
)
;
42350 __Pyx_INCREF(__pyx_n_s_xattr_name)( ((PyObject*)(__pyx_n_s_xattr_name))->ob_refcnt++);
42351 __Pyx_GIVEREF(__pyx_n_s_xattr_name);
42352 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_xattr_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_xattr_name
)
;
42353 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3131; __pyx_clineno = __LINE__42353; goto __pyx_L1_error;}
42354 __Pyx_GOTREF(__pyx_t_1);
42355 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42356 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42357 __Pyx_DECREF_SET(__pyx_v_xattr_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_xattr_name; __pyx_v_xattr_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
42358 __pyx_t_1 = 0;
42359
42360 /* "rados.pyx":3133
42361 * xattr_name = cstr(xattr_name, 'xattr_name')
42362 * cdef:
42363 * char *_key = key # <<<<<<<<<<<<<<
42364 * char *_xattr_name = xattr_name
42365 *
42366 */
42367 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3133; __pyx_clineno = __LINE__42367; goto __pyx_L1_error;}
42368 __pyx_v__key = __pyx_t_6;
42369
42370 /* "rados.pyx":3134
42371 * cdef:
42372 * char *_key = key
42373 * char *_xattr_name = xattr_name # <<<<<<<<<<<<<<
42374 *
42375 * with nogil:
42376 */
42377 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_xattr_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3134; __pyx_clineno = __LINE__42377; goto __pyx_L1_error;}
42378 __pyx_v__xattr_name = __pyx_t_6;
42379
42380 /* "rados.pyx":3136
42381 * char *_xattr_name = xattr_name
42382 *
42383 * with nogil: # <<<<<<<<<<<<<<
42384 * ret = rados_rmxattr(self.io, _key, _xattr_name)
42385 * if ret < 0:
42386 */
42387 {
42388 #ifdef WITH_THREAD1
42389 PyThreadState *_save;
42390 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
42391 #endif
42392 /*try:*/ {
42393
42394 /* "rados.pyx":3137
42395 *
42396 * with nogil:
42397 * ret = rados_rmxattr(self.io, _key, _xattr_name) # <<<<<<<<<<<<<<
42398 * if ret < 0:
42399 * raise make_ex(ret, "Failed to delete key %r xattr %r" %
42400 */
42401 __pyx_v_ret = rados_rmxattr(__pyx_v_self->io, __pyx_v__key, __pyx_v__xattr_name);
42402 }
42403
42404 /* "rados.pyx":3136
42405 * char *_xattr_name = xattr_name
42406 *
42407 * with nogil: # <<<<<<<<<<<<<<
42408 * ret = rados_rmxattr(self.io, _key, _xattr_name)
42409 * if ret < 0:
42410 */
42411 /*finally:*/ {
42412 /*normal exit:*/{
42413 #ifdef WITH_THREAD1
42414 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
42415 #endif
42416 goto __pyx_L5;
42417 }
42418 __pyx_L5:;
42419 }
42420 }
42421
42422 /* "rados.pyx":3138
42423 * with nogil:
42424 * ret = rados_rmxattr(self.io, _key, _xattr_name)
42425 * if ret < 0: # <<<<<<<<<<<<<<
42426 * raise make_ex(ret, "Failed to delete key %r xattr %r" %
42427 * (key, xattr_name))
42428 */
42429 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
42430 if (__pyx_t_7) {
42431
42432 /* "rados.pyx":3139
42433 * ret = rados_rmxattr(self.io, _key, _xattr_name)
42434 * if ret < 0:
42435 * raise make_ex(ret, "Failed to delete key %r xattr %r" % # <<<<<<<<<<<<<<
42436 * (key, xattr_name))
42437 * return True
42438 */
42439 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__42439; goto __pyx_L1_error;}
42440 __Pyx_GOTREF(__pyx_t_1);
42441
42442 /* "rados.pyx":3140
42443 * if ret < 0:
42444 * raise make_ex(ret, "Failed to delete key %r xattr %r" %
42445 * (key, xattr_name)) # <<<<<<<<<<<<<<
42446 * return True
42447 *
42448 */
42449 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3140; __pyx_clineno = __LINE__42449; goto __pyx_L1_error;}
42450 __Pyx_GOTREF(__pyx_t_2);
42451 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
42452 __Pyx_GIVEREF(__pyx_v_key);
42453 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_key);
42454 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
42455 __Pyx_GIVEREF(__pyx_v_xattr_name);
42456 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_xattr_name)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_xattr_name
)
;
42457
42458 /* "rados.pyx":3139
42459 * ret = rados_rmxattr(self.io, _key, _xattr_name)
42460 * if ret < 0:
42461 * raise make_ex(ret, "Failed to delete key %r xattr %r" % # <<<<<<<<<<<<<<
42462 * (key, xattr_name))
42463 * return True
42464 */
42465 __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_delete_key_r_xattr_r, __pyx_t_2)PyString_Format(__pyx_kp_s_Failed_to_delete_key_r_xattr_r, __pyx_t_2
)
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__42465; goto __pyx_L1_error;}
42466 __Pyx_GOTREF(__pyx_t_3);
42467 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42468 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__42468; goto __pyx_L1_error;}
42469 __Pyx_GOTREF(__pyx_t_2);
42470 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
42471 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42472 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
42473 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42474 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__42474; goto __pyx_L1_error;}
42475
42476 /* "rados.pyx":3138
42477 * with nogil:
42478 * ret = rados_rmxattr(self.io, _key, _xattr_name)
42479 * if ret < 0: # <<<<<<<<<<<<<<
42480 * raise make_ex(ret, "Failed to delete key %r xattr %r" %
42481 * (key, xattr_name))
42482 */
42483 }
42484
42485 /* "rados.pyx":3141
42486 * raise make_ex(ret, "Failed to delete key %r xattr %r" %
42487 * (key, xattr_name))
42488 * return True # <<<<<<<<<<<<<<
42489 *
42490 * @requires(('obj', str_type), ('msg', str_type), ('timeout_ms', int))
42491 */
42492 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
42493 __Pyx_INCREF(Py_True)( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->ob_refcnt
++)
;
42494 __pyx_r = Py_True((PyObject *) &_Py_TrueStruct);
42495 goto __pyx_L0;
42496
42497 /* "rados.pyx":3115
42498 *
42499 * @requires(('key', str_type), ('xattr_name', str_type))
42500 * def rm_xattr(self, key, xattr_name): # <<<<<<<<<<<<<<
42501 * """
42502 * Removes an extended attribute on from an object.
42503 */
42504
42505 /* function exit code */
42506 __pyx_L1_error:;
42507 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
42508 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
42509 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
42510 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
42511 __Pyx_AddTraceback("rados.Ioctx.rm_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
42512 __pyx_r = NULL((void*)0);
42513 __pyx_L0:;
42514 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
42515 __Pyx_XDECREF(__pyx_v_xattr_name)do { if ((__pyx_v_xattr_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_xattr_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_xattr_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_xattr_name
)))); } while (0); } while (0)
;
42516 __Pyx_XGIVEREF(__pyx_r);
42517 __Pyx_RefNannyFinishContext();
42518 return __pyx_r;
42519}
42520
42521/* "rados.pyx":3144
42522 *
42523 * @requires(('obj', str_type), ('msg', str_type), ('timeout_ms', int))
42524 * def notify(self, obj, msg='', timeout_ms=5000): # <<<<<<<<<<<<<<
42525 * """
42526 * Send a rados notification to an object.
42527 */
42528
42529/* Python wrapper */
42530static PyObject *__pyx_pw_5rados_5Ioctx_69notify(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
42531static char __pyx_doc_5rados_5Ioctx_68notify[] = "Ioctx.notify(self, obj, msg='', timeout_ms=5000)\n\n Send a rados notification to an object.\n\n :param obj: the name of the object to notify\n :type obj: str\n :param msg: optional message to send in the notification\n :type msg: str\n :param timeout_ms: notify timeout (in ms)\n :type timeout_ms: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: bool - True on success, otherwise raise an error\n ";
42532static PyObject *__pyx_pw_5rados_5Ioctx_69notify(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
42533 PyObject *__pyx_v_obj = 0;
42534 PyObject *__pyx_v_msg = 0;
42535 PyObject *__pyx_v_timeout_ms = 0;
42536 int __pyx_lineno = 0;
42537 const char *__pyx_filename = NULL((void*)0);
42538 int __pyx_clineno = 0;
42539 PyObject *__pyx_r = 0;
42540 __Pyx_RefNannyDeclarations
42541 __Pyx_RefNannySetupContext("notify (wrapper)", 0);
42542 {
42543 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_msg,&__pyx_n_s_timeout_ms,0};
42544 PyObject* values[3] = {0,0,0};
42545 values[1] = ((PyObject *)__pyx_kp_s__10);
42546 values[2] = ((PyObject *)__pyx_int_5000);
42547 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
42548 Py_ssize_t kw_args;
42549 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
42550 switch (pos_args) {
42551 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
42552 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
42553 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
42554 case 0: break;
42555 default: goto __pyx_L5_argtuple_error;
42556 }
42557 kw_args = PyDict_Size(__pyx_kwds);
42558 switch (pos_args) {
42559 case 0:
42560 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_obj)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_obj
)) != 0), 1)
) kw_args--;
42561 else goto __pyx_L5_argtuple_error;
42562 case 1:
42563 if (kw_args > 0) {
42564 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_msg);
42565 if (value) { values[1] = value; kw_args--; }
42566 }
42567 case 2:
42568 if (kw_args > 0) {
42569 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_timeout_ms);
42570 if (value) { values[2] = value; kw_args--; }
42571 }
42572 }
42573 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
42574 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "notify") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "notify") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3144; __pyx_clineno = __LINE__42574; goto __pyx_L3_error;}
42575 }
42576 } else {
42577 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
42578 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
42579 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
42580 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
42581 break;
42582 default: goto __pyx_L5_argtuple_error;
42583 }
42584 }
42585 __pyx_v_obj = values[0];
42586 __pyx_v_msg = values[1];
42587 __pyx_v_timeout_ms = values[2];
42588 }
42589 goto __pyx_L4_argument_unpacking_done;
42590 __pyx_L5_argtuple_error:;
42591 __Pyx_RaiseArgtupleInvalid("notify", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3144; __pyx_clineno = __LINE__42591; goto __pyx_L3_error;}
42592 __pyx_L3_error:;
42593 __Pyx_AddTraceback("rados.Ioctx.notify", __pyx_clineno, __pyx_lineno, __pyx_filename);
42594 __Pyx_RefNannyFinishContext();
42595 return NULL((void*)0);
42596 __pyx_L4_argument_unpacking_done:;
42597 __pyx_r = __pyx_pf_5rados_5Ioctx_68notify(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_obj, __pyx_v_msg, __pyx_v_timeout_ms);
42598
42599 /* function exit code */
42600 __Pyx_RefNannyFinishContext();
42601 return __pyx_r;
42602}
42603
42604static PyObject *__pyx_pf_5rados_5Ioctx_68notify(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_obj, PyObject *__pyx_v_msg, PyObject *__pyx_v_timeout_ms) {
42605 Py_ssize_t __pyx_v_msglen;
42606 char *__pyx_v__obj;
42607 char *__pyx_v__msg;
42608 int __pyx_v__msglen;
42609 uint64_t __pyx_v__timeout_ms;
42610 int __pyx_v_ret;
42611 PyObject *__pyx_r = NULL((void*)0);
42612 __Pyx_RefNannyDeclarations
42613 PyObject *__pyx_t_1 = NULL((void*)0);
42614 PyObject *__pyx_t_2 = NULL((void*)0);
42615 PyObject *__pyx_t_3 = NULL((void*)0);
42616 Py_ssize_t __pyx_t_4;
42617 PyObject *__pyx_t_5 = NULL((void*)0);
42618 char *__pyx_t_6;
42619 uint64_t __pyx_t_7;
42620 int __pyx_t_8;
42621 int __pyx_lineno = 0;
42622 const char *__pyx_filename = NULL((void*)0);
42623 int __pyx_clineno = 0;
42624 __Pyx_RefNannySetupContext("notify", 0);
42625 __Pyx_INCREF(__pyx_v_obj)( ((PyObject*)(__pyx_v_obj))->ob_refcnt++);
42626 __Pyx_INCREF(__pyx_v_msg)( ((PyObject*)(__pyx_v_msg))->ob_refcnt++);
42627
42628 /* "rados.pyx":3159
42629 * :returns: bool - True on success, otherwise raise an error
42630 * """
42631 * self.require_ioctx_open() # <<<<<<<<<<<<<<
42632 *
42633 * msglen = len(msg)
42634 */
42635 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3159; __pyx_clineno = __LINE__42635; goto __pyx_L1_error;}
42636 __Pyx_GOTREF(__pyx_t_2);
42637 __pyx_t_3 = NULL((void*)0);
42638 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
42639 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
42640 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
42641 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
42642 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
42643 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
42644 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42645 }
42646 }
42647 if (__pyx_t_3) {
42648 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3159; __pyx_clineno = __LINE__42648; goto __pyx_L1_error;}
42649 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42650 } else {
42651 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3159; __pyx_clineno = __LINE__42651; goto __pyx_L1_error;}
42652 }
42653 __Pyx_GOTREF(__pyx_t_1);
42654 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42655 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
42656
42657 /* "rados.pyx":3161
42658 * self.require_ioctx_open()
42659 *
42660 * msglen = len(msg) # <<<<<<<<<<<<<<
42661 * obj = cstr(obj, 'obj')
42662 * msg = cstr(msg, 'msg')
42663 */
42664 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_msg); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3161; __pyx_clineno = __LINE__42664; goto __pyx_L1_error;}
42665 __pyx_v_msglen = __pyx_t_4;
42666
42667 /* "rados.pyx":3162
42668 *
42669 * msglen = len(msg)
42670 * obj = cstr(obj, 'obj') # <<<<<<<<<<<<<<
42671 * msg = cstr(msg, 'msg')
42672 * cdef:
42673 */
42674 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__42674; goto __pyx_L1_error;}
42675 __Pyx_GOTREF(__pyx_t_2);
42676 __pyx_t_3 = NULL((void*)0);
42677 __pyx_t_4 = 0;
42678 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
42679 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
42680 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
42681 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
42682 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
42683 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
42684 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42685 __pyx_t_4 = 1;
42686 }
42687 }
42688 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__42688; goto __pyx_L1_error;}
42689 __Pyx_GOTREF(__pyx_t_5);
42690 if (__pyx_t_3) {
42691 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
42692 }
42693 __Pyx_INCREF(__pyx_v_obj)( ((PyObject*)(__pyx_v_obj))->ob_refcnt++);
42694 __Pyx_GIVEREF(__pyx_v_obj);
42695 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_obj)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_obj
)
;
42696 __Pyx_INCREF(__pyx_n_s_obj)( ((PyObject*)(__pyx_n_s_obj))->ob_refcnt++);
42697 __Pyx_GIVEREF(__pyx_n_s_obj);
42698 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_obj)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_obj
)
;
42699 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__42699; goto __pyx_L1_error;}
42700 __Pyx_GOTREF(__pyx_t_1);
42701 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
42702 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42703 __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_obj; __pyx_v_obj = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42704 __pyx_t_1 = 0;
42705
42706 /* "rados.pyx":3163
42707 * msglen = len(msg)
42708 * obj = cstr(obj, 'obj')
42709 * msg = cstr(msg, 'msg') # <<<<<<<<<<<<<<
42710 * cdef:
42711 * char *_obj = obj
42712 */
42713 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3163; __pyx_clineno = __LINE__42713; goto __pyx_L1_error;}
42714 __Pyx_GOTREF(__pyx_t_2);
42715 __pyx_t_5 = NULL((void*)0);
42716 __pyx_t_4 = 0;
42717 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
42718 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
42719 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
42720 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
42721 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
42722 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
42723 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42724 __pyx_t_4 = 1;
42725 }
42726 }
42727 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3163; __pyx_clineno = __LINE__42727; goto __pyx_L1_error;}
42728 __Pyx_GOTREF(__pyx_t_3);
42729 if (__pyx_t_5) {
42730 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
42731 }
42732 __Pyx_INCREF(__pyx_v_msg)( ((PyObject*)(__pyx_v_msg))->ob_refcnt++);
42733 __Pyx_GIVEREF(__pyx_v_msg);
42734 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_msg)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_msg
)
;
42735 __Pyx_INCREF(__pyx_n_s_msg)( ((PyObject*)(__pyx_n_s_msg))->ob_refcnt++);
42736 __Pyx_GIVEREF(__pyx_n_s_msg);
42737 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_msg)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_msg
)
;
42738 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3163; __pyx_clineno = __LINE__42738; goto __pyx_L1_error;}
42739 __Pyx_GOTREF(__pyx_t_1);
42740 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42741 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42742 __Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_msg; __pyx_v_msg = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42743 __pyx_t_1 = 0;
42744
42745 /* "rados.pyx":3165
42746 * msg = cstr(msg, 'msg')
42747 * cdef:
42748 * char *_obj = obj # <<<<<<<<<<<<<<
42749 * char *_msg = msg
42750 * int _msglen = msglen
42751 */
42752 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_obj); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3165; __pyx_clineno = __LINE__42752; goto __pyx_L1_error;}
42753 __pyx_v__obj = __pyx_t_6;
42754
42755 /* "rados.pyx":3166
42756 * cdef:
42757 * char *_obj = obj
42758 * char *_msg = msg # <<<<<<<<<<<<<<
42759 * int _msglen = msglen
42760 * uint64_t _timeout_ms = timeout_ms
42761 */
42762 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_msg); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3166; __pyx_clineno = __LINE__42762; goto __pyx_L1_error;}
42763 __pyx_v__msg = __pyx_t_6;
42764
42765 /* "rados.pyx":3167
42766 * char *_obj = obj
42767 * char *_msg = msg
42768 * int _msglen = msglen # <<<<<<<<<<<<<<
42769 * uint64_t _timeout_ms = timeout_ms
42770 *
42771 */
42772 __pyx_v__msglen = __pyx_v_msglen;
42773
42774 /* "rados.pyx":3168
42775 * char *_msg = msg
42776 * int _msglen = msglen
42777 * uint64_t _timeout_ms = timeout_ms # <<<<<<<<<<<<<<
42778 *
42779 * with nogil:
42780 */
42781 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_timeout_ms); if (unlikely((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint64_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__42781; goto __pyx_L1_error;}
42782 __pyx_v__timeout_ms = __pyx_t_7;
42783
42784 /* "rados.pyx":3170
42785 * uint64_t _timeout_ms = timeout_ms
42786 *
42787 * with nogil: # <<<<<<<<<<<<<<
42788 * ret = rados_notify2(self.io, _obj, _msg, _msglen, _timeout_ms,
42789 * NULL, NULL)
42790 */
42791 {
42792 #ifdef WITH_THREAD1
42793 PyThreadState *_save;
42794 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
42795 #endif
42796 /*try:*/ {
42797
42798 /* "rados.pyx":3171
42799 *
42800 * with nogil:
42801 * ret = rados_notify2(self.io, _obj, _msg, _msglen, _timeout_ms, # <<<<<<<<<<<<<<
42802 * NULL, NULL)
42803 * if ret < 0:
42804 */
42805 __pyx_v_ret = rados_notify2(__pyx_v_self->io, __pyx_v__obj, __pyx_v__msg, __pyx_v__msglen, __pyx_v__timeout_ms, NULL((void*)0), NULL((void*)0));
42806 }
42807
42808 /* "rados.pyx":3170
42809 * uint64_t _timeout_ms = timeout_ms
42810 *
42811 * with nogil: # <<<<<<<<<<<<<<
42812 * ret = rados_notify2(self.io, _obj, _msg, _msglen, _timeout_ms,
42813 * NULL, NULL)
42814 */
42815 /*finally:*/ {
42816 /*normal exit:*/{
42817 #ifdef WITH_THREAD1
42818 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
42819 #endif
42820 goto __pyx_L5;
42821 }
42822 __pyx_L5:;
42823 }
42824 }
42825
42826 /* "rados.pyx":3173
42827 * ret = rados_notify2(self.io, _obj, _msg, _msglen, _timeout_ms,
42828 * NULL, NULL)
42829 * if ret < 0: # <<<<<<<<<<<<<<
42830 * raise make_ex(ret, "Failed to notify %r" % (obj))
42831 * return True
42832 */
42833 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
42834 if (__pyx_t_8) {
42835
42836 /* "rados.pyx":3174
42837 * NULL, NULL)
42838 * if ret < 0:
42839 * raise make_ex(ret, "Failed to notify %r" % (obj)) # <<<<<<<<<<<<<<
42840 * return True
42841 *
42842 */
42843 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3174; __pyx_clineno = __LINE__42843; goto __pyx_L1_error;}
42844 __Pyx_GOTREF(__pyx_t_1);
42845 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_notify_r, __pyx_v_obj)PyString_Format(__pyx_kp_s_Failed_to_notify_r, __pyx_v_obj); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3174; __pyx_clineno = __LINE__42845; goto __pyx_L1_error;}
42846 __Pyx_GOTREF(__pyx_t_2);
42847 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3174; __pyx_clineno = __LINE__42847; goto __pyx_L1_error;}
42848 __Pyx_GOTREF(__pyx_t_3);
42849 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
42850 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42851 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
42852 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42853 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3174; __pyx_clineno = __LINE__42853; goto __pyx_L1_error;}
42854
42855 /* "rados.pyx":3173
42856 * ret = rados_notify2(self.io, _obj, _msg, _msglen, _timeout_ms,
42857 * NULL, NULL)
42858 * if ret < 0: # <<<<<<<<<<<<<<
42859 * raise make_ex(ret, "Failed to notify %r" % (obj))
42860 * return True
42861 */
42862 }
42863
42864 /* "rados.pyx":3175
42865 * if ret < 0:
42866 * raise make_ex(ret, "Failed to notify %r" % (obj))
42867 * return True # <<<<<<<<<<<<<<
42868 *
42869 * def list_objects(self):
42870 */
42871 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
42872 __Pyx_INCREF(Py_True)( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->ob_refcnt
++)
;
42873 __pyx_r = Py_True((PyObject *) &_Py_TrueStruct);
42874 goto __pyx_L0;
42875
42876 /* "rados.pyx":3144
42877 *
42878 * @requires(('obj', str_type), ('msg', str_type), ('timeout_ms', int))
42879 * def notify(self, obj, msg='', timeout_ms=5000): # <<<<<<<<<<<<<<
42880 * """
42881 * Send a rados notification to an object.
42882 */
42883
42884 /* function exit code */
42885 __pyx_L1_error:;
42886 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
42887 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
42888 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
42889 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
42890 __Pyx_AddTraceback("rados.Ioctx.notify", __pyx_clineno, __pyx_lineno, __pyx_filename);
42891 __pyx_r = NULL((void*)0);
42892 __pyx_L0:;
42893 __Pyx_XDECREF(__pyx_v_obj)do { if ((__pyx_v_obj) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_obj))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_obj)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_obj)))); } while (0); } while (0)
;
42894 __Pyx_XDECREF(__pyx_v_msg)do { if ((__pyx_v_msg) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_msg))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_msg)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_msg)))); } while (0); } while (0)
;
42895 __Pyx_XGIVEREF(__pyx_r);
42896 __Pyx_RefNannyFinishContext();
42897 return __pyx_r;
42898}
42899
42900/* "rados.pyx":3177
42901 * return True
42902 *
42903 * def list_objects(self): # <<<<<<<<<<<<<<
42904 * """
42905 * Get ObjectIterator on rados.Ioctx object.
42906 */
42907
42908/* Python wrapper */
42909static PyObject *__pyx_pw_5rados_5Ioctx_71list_objects(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
42910static char __pyx_doc_5rados_5Ioctx_70list_objects[] = "Ioctx.list_objects(self)\n\n Get ObjectIterator on rados.Ioctx object.\n\n :returns: ObjectIterator\n ";
42911static PyObject *__pyx_pw_5rados_5Ioctx_71list_objects(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
42912 PyObject *__pyx_r = 0;
42913 __Pyx_RefNannyDeclarations
42914 __Pyx_RefNannySetupContext("list_objects (wrapper)", 0);
42915 __pyx_r = __pyx_pf_5rados_5Ioctx_70list_objects(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
42916
42917 /* function exit code */
42918 __Pyx_RefNannyFinishContext();
42919 return __pyx_r;
42920}
42921
42922static PyObject *__pyx_pf_5rados_5Ioctx_70list_objects(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
42923 PyObject *__pyx_r = NULL((void*)0);
42924 __Pyx_RefNannyDeclarations
42925 PyObject *__pyx_t_1 = NULL((void*)0);
42926 PyObject *__pyx_t_2 = NULL((void*)0);
42927 PyObject *__pyx_t_3 = NULL((void*)0);
42928 int __pyx_lineno = 0;
42929 const char *__pyx_filename = NULL((void*)0);
42930 int __pyx_clineno = 0;
42931 __Pyx_RefNannySetupContext("list_objects", 0);
42932
42933 /* "rados.pyx":3183
42934 * :returns: ObjectIterator
42935 * """
42936 * self.require_ioctx_open() # <<<<<<<<<<<<<<
42937 * return ObjectIterator(self)
42938 *
42939 */
42940 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__42940; goto __pyx_L1_error;}
42941 __Pyx_GOTREF(__pyx_t_2);
42942 __pyx_t_3 = NULL((void*)0);
42943 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
42944 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
42945 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
42946 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
42947 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
42948 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
42949 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
42950 }
42951 }
42952 if (__pyx_t_3) {
42953 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__42953; goto __pyx_L1_error;}
42954 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
42955 } else {
42956 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3183; __pyx_clineno = __LINE__42956; goto __pyx_L1_error;}
42957 }
42958 __Pyx_GOTREF(__pyx_t_1);
42959 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
42960 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
42961
42962 /* "rados.pyx":3184
42963 * """
42964 * self.require_ioctx_open()
42965 * return ObjectIterator(self) # <<<<<<<<<<<<<<
42966 *
42967 * def list_snaps(self):
42968 */
42969 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
42970 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3184; __pyx_clineno = __LINE__42970; goto __pyx_L1_error;}
42971 __Pyx_GOTREF(__pyx_t_1);
42972 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
42973 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
42974 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
42975 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_ObjectIterator), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3184; __pyx_clineno = __LINE__42975; goto __pyx_L1_error;}
42976 __Pyx_GOTREF(__pyx_t_2);
42977 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
42978 __pyx_r = __pyx_t_2;
42979 __pyx_t_2 = 0;
42980 goto __pyx_L0;
42981
42982 /* "rados.pyx":3177
42983 * return True
42984 *
42985 * def list_objects(self): # <<<<<<<<<<<<<<
42986 * """
42987 * Get ObjectIterator on rados.Ioctx object.
42988 */
42989
42990 /* function exit code */
42991 __pyx_L1_error:;
42992 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
42993 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
42994 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
42995 __Pyx_AddTraceback("rados.Ioctx.list_objects", __pyx_clineno, __pyx_lineno, __pyx_filename);
42996 __pyx_r = NULL((void*)0);
42997 __pyx_L0:;
42998 __Pyx_XGIVEREF(__pyx_r);
42999 __Pyx_RefNannyFinishContext();
43000 return __pyx_r;
43001}
43002
43003/* "rados.pyx":3186
43004 * return ObjectIterator(self)
43005 *
43006 * def list_snaps(self): # <<<<<<<<<<<<<<
43007 * """
43008 * Get SnapIterator on rados.Ioctx object.
43009 */
43010
43011/* Python wrapper */
43012static PyObject *__pyx_pw_5rados_5Ioctx_73list_snaps(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
43013static char __pyx_doc_5rados_5Ioctx_72list_snaps[] = "Ioctx.list_snaps(self)\n\n Get SnapIterator on rados.Ioctx object.\n\n :returns: SnapIterator\n ";
43014static PyObject *__pyx_pw_5rados_5Ioctx_73list_snaps(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
43015 PyObject *__pyx_r = 0;
43016 __Pyx_RefNannyDeclarations
43017 __Pyx_RefNannySetupContext("list_snaps (wrapper)", 0);
43018 __pyx_r = __pyx_pf_5rados_5Ioctx_72list_snaps(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
43019
43020 /* function exit code */
43021 __Pyx_RefNannyFinishContext();
43022 return __pyx_r;
43023}
43024
43025static PyObject *__pyx_pf_5rados_5Ioctx_72list_snaps(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
43026 PyObject *__pyx_r = NULL((void*)0);
43027 __Pyx_RefNannyDeclarations
43028 PyObject *__pyx_t_1 = NULL((void*)0);
43029 PyObject *__pyx_t_2 = NULL((void*)0);
43030 PyObject *__pyx_t_3 = NULL((void*)0);
43031 int __pyx_lineno = 0;
43032 const char *__pyx_filename = NULL((void*)0);
43033 int __pyx_clineno = 0;
43034 __Pyx_RefNannySetupContext("list_snaps", 0);
43035
43036 /* "rados.pyx":3192
43037 * :returns: SnapIterator
43038 * """
43039 * self.require_ioctx_open() # <<<<<<<<<<<<<<
43040 * return SnapIterator(self)
43041 *
43042 */
43043 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__43043; goto __pyx_L1_error;}
43044 __Pyx_GOTREF(__pyx_t_2);
43045 __pyx_t_3 = NULL((void*)0);
43046 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
43047 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43048 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43049 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43050 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43051 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43052 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43053 }
43054 }
43055 if (__pyx_t_3) {
43056 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__43056; goto __pyx_L1_error;}
43057 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
43058 } else {
43059 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3192; __pyx_clineno = __LINE__43059; goto __pyx_L1_error;}
43060 }
43061 __Pyx_GOTREF(__pyx_t_1);
43062 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43063 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43064
43065 /* "rados.pyx":3193
43066 * """
43067 * self.require_ioctx_open()
43068 * return SnapIterator(self) # <<<<<<<<<<<<<<
43069 *
43070 * @requires(('snap_name', str_type))
43071 */
43072 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
43073 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3193; __pyx_clineno = __LINE__43073; goto __pyx_L1_error;}
43074 __Pyx_GOTREF(__pyx_t_1);
43075 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
43076 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
43077 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
43078 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_SnapIterator), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3193; __pyx_clineno = __LINE__43078; goto __pyx_L1_error;}
43079 __Pyx_GOTREF(__pyx_t_2);
43080 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43081 __pyx_r = __pyx_t_2;
43082 __pyx_t_2 = 0;
43083 goto __pyx_L0;
43084
43085 /* "rados.pyx":3186
43086 * return ObjectIterator(self)
43087 *
43088 * def list_snaps(self): # <<<<<<<<<<<<<<
43089 * """
43090 * Get SnapIterator on rados.Ioctx object.
43091 */
43092
43093 /* function exit code */
43094 __pyx_L1_error:;
43095 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
43096 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
43097 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
43098 __Pyx_AddTraceback("rados.Ioctx.list_snaps", __pyx_clineno, __pyx_lineno, __pyx_filename);
43099 __pyx_r = NULL((void*)0);
43100 __pyx_L0:;
43101 __Pyx_XGIVEREF(__pyx_r);
43102 __Pyx_RefNannyFinishContext();
43103 return __pyx_r;
43104}
43105
43106/* "rados.pyx":3196
43107 *
43108 * @requires(('snap_name', str_type))
43109 * def create_snap(self, snap_name): # <<<<<<<<<<<<<<
43110 * """
43111 * Create a pool-wide snapshot
43112 */
43113
43114/* Python wrapper */
43115static PyObject *__pyx_pw_5rados_5Ioctx_75create_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_name); /*proto*/
43116static char __pyx_doc_5rados_5Ioctx_74create_snap[] = "Ioctx.create_snap(self, snap_name)\n\n Create a pool-wide snapshot\n\n :param snap_name: the name of the snapshot\n :type snap_name: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
43117static PyObject *__pyx_pw_5rados_5Ioctx_75create_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_name) {
43118 PyObject *__pyx_r = 0;
43119 __Pyx_RefNannyDeclarations
43120 __Pyx_RefNannySetupContext("create_snap (wrapper)", 0);
43121 __pyx_r = __pyx_pf_5rados_5Ioctx_74create_snap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_snap_name));
43122
43123 /* function exit code */
43124 __Pyx_RefNannyFinishContext();
43125 return __pyx_r;
43126}
43127
43128static PyObject *__pyx_pf_5rados_5Ioctx_74create_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_name) {
43129 char *__pyx_v__snap_name;
43130 int __pyx_v_ret;
43131 PyObject *__pyx_r = NULL((void*)0);
43132 __Pyx_RefNannyDeclarations
43133 PyObject *__pyx_t_1 = NULL((void*)0);
43134 PyObject *__pyx_t_2 = NULL((void*)0);
43135 PyObject *__pyx_t_3 = NULL((void*)0);
43136 Py_ssize_t __pyx_t_4;
43137 PyObject *__pyx_t_5 = NULL((void*)0);
43138 char *__pyx_t_6;
43139 int __pyx_t_7;
43140 int __pyx_lineno = 0;
43141 const char *__pyx_filename = NULL((void*)0);
43142 int __pyx_clineno = 0;
43143 __Pyx_RefNannySetupContext("create_snap", 0);
43144 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43145
43146 /* "rados.pyx":3206
43147 * :raises: :class:`Error`
43148 * """
43149 * self.require_ioctx_open() # <<<<<<<<<<<<<<
43150 * snap_name = cstr(snap_name, 'snap_name')
43151 * cdef char *_snap_name = snap_name
43152 */
43153 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3206; __pyx_clineno = __LINE__43153; goto __pyx_L1_error;}
43154 __Pyx_GOTREF(__pyx_t_2);
43155 __pyx_t_3 = NULL((void*)0);
43156 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
43157 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43158 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43159 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43160 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43161 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43162 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43163 }
43164 }
43165 if (__pyx_t_3) {
43166 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3206; __pyx_clineno = __LINE__43166; goto __pyx_L1_error;}
43167 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
43168 } else {
43169 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3206; __pyx_clineno = __LINE__43169; goto __pyx_L1_error;}
43170 }
43171 __Pyx_GOTREF(__pyx_t_1);
43172 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43173 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43174
43175 /* "rados.pyx":3207
43176 * """
43177 * self.require_ioctx_open()
43178 * snap_name = cstr(snap_name, 'snap_name') # <<<<<<<<<<<<<<
43179 * cdef char *_snap_name = snap_name
43180 *
43181 */
43182 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3207; __pyx_clineno = __LINE__43182; goto __pyx_L1_error;}
43183 __Pyx_GOTREF(__pyx_t_2);
43184 __pyx_t_3 = NULL((void*)0);
43185 __pyx_t_4 = 0;
43186 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
43187 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43188 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43189 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43190 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43191 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43192 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43193 __pyx_t_4 = 1;
43194 }
43195 }
43196 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3207; __pyx_clineno = __LINE__43196; goto __pyx_L1_error;}
43197 __Pyx_GOTREF(__pyx_t_5);
43198 if (__pyx_t_3) {
43199 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
43200 }
43201 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43202 __Pyx_GIVEREF(__pyx_v_snap_name);
43203 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_snap_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_snap_name
)
;
43204 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
43205 __Pyx_GIVEREF(__pyx_n_s_snap_name);
43206 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_snap_name
)
;
43207 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3207; __pyx_clineno = __LINE__43207; goto __pyx_L1_error;}
43208 __Pyx_GOTREF(__pyx_t_1);
43209 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
43210 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43211 __Pyx_DECREF_SET(__pyx_v_snap_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_snap_name; __pyx_v_snap_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
43212 __pyx_t_1 = 0;
43213
43214 /* "rados.pyx":3208
43215 * self.require_ioctx_open()
43216 * snap_name = cstr(snap_name, 'snap_name')
43217 * cdef char *_snap_name = snap_name # <<<<<<<<<<<<<<
43218 *
43219 * with nogil:
43220 */
43221 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_snap_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3208; __pyx_clineno = __LINE__43221; goto __pyx_L1_error;}
43222 __pyx_v__snap_name = __pyx_t_6;
43223
43224 /* "rados.pyx":3210
43225 * cdef char *_snap_name = snap_name
43226 *
43227 * with nogil: # <<<<<<<<<<<<<<
43228 * ret = rados_ioctx_snap_create(self.io, _snap_name)
43229 * if ret != 0:
43230 */
43231 {
43232 #ifdef WITH_THREAD1
43233 PyThreadState *_save;
43234 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
43235 #endif
43236 /*try:*/ {
43237
43238 /* "rados.pyx":3211
43239 *
43240 * with nogil:
43241 * ret = rados_ioctx_snap_create(self.io, _snap_name) # <<<<<<<<<<<<<<
43242 * if ret != 0:
43243 * raise make_ex(ret, "Failed to create snap %s" % snap_name)
43244 */
43245 __pyx_v_ret = rados_ioctx_snap_create(__pyx_v_self->io, __pyx_v__snap_name);
43246 }
43247
43248 /* "rados.pyx":3210
43249 * cdef char *_snap_name = snap_name
43250 *
43251 * with nogil: # <<<<<<<<<<<<<<
43252 * ret = rados_ioctx_snap_create(self.io, _snap_name)
43253 * if ret != 0:
43254 */
43255 /*finally:*/ {
43256 /*normal exit:*/{
43257 #ifdef WITH_THREAD1
43258 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
43259 #endif
43260 goto __pyx_L5;
43261 }
43262 __pyx_L5:;
43263 }
43264 }
43265
43266 /* "rados.pyx":3212
43267 * with nogil:
43268 * ret = rados_ioctx_snap_create(self.io, _snap_name)
43269 * if ret != 0: # <<<<<<<<<<<<<<
43270 * raise make_ex(ret, "Failed to create snap %s" % snap_name)
43271 *
43272 */
43273 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
43274 if (__pyx_t_7) {
43275
43276 /* "rados.pyx":3213
43277 * ret = rados_ioctx_snap_create(self.io, _snap_name)
43278 * if ret != 0:
43279 * raise make_ex(ret, "Failed to create snap %s" % snap_name) # <<<<<<<<<<<<<<
43280 *
43281 * @requires(('snap_name', str_type))
43282 */
43283 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__43283; goto __pyx_L1_error;}
43284 __Pyx_GOTREF(__pyx_t_1);
43285 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_create_snap_s, __pyx_v_snap_name)PyString_Format(__pyx_kp_s_Failed_to_create_snap_s, __pyx_v_snap_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__43285; goto __pyx_L1_error;}
43286 __Pyx_GOTREF(__pyx_t_2);
43287 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__43287; goto __pyx_L1_error;}
43288 __Pyx_GOTREF(__pyx_t_5);
43289 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43290 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43291 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
43292 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
43293 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3213; __pyx_clineno = __LINE__43293; goto __pyx_L1_error;}
43294
43295 /* "rados.pyx":3212
43296 * with nogil:
43297 * ret = rados_ioctx_snap_create(self.io, _snap_name)
43298 * if ret != 0: # <<<<<<<<<<<<<<
43299 * raise make_ex(ret, "Failed to create snap %s" % snap_name)
43300 *
43301 */
43302 }
43303
43304 /* "rados.pyx":3196
43305 *
43306 * @requires(('snap_name', str_type))
43307 * def create_snap(self, snap_name): # <<<<<<<<<<<<<<
43308 * """
43309 * Create a pool-wide snapshot
43310 */
43311
43312 /* function exit code */
43313 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
43314 goto __pyx_L0;
43315 __pyx_L1_error:;
43316 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
43317 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
43318 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
43319 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
43320 __Pyx_AddTraceback("rados.Ioctx.create_snap", __pyx_clineno, __pyx_lineno, __pyx_filename);
43321 __pyx_r = NULL((void*)0);
43322 __pyx_L0:;
43323 __Pyx_XDECREF(__pyx_v_snap_name)do { if ((__pyx_v_snap_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_snap_name))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_snap_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_snap_name
)))); } while (0); } while (0)
;
43324 __Pyx_XGIVEREF(__pyx_r);
43325 __Pyx_RefNannyFinishContext();
43326 return __pyx_r;
43327}
43328
43329/* "rados.pyx":3216
43330 *
43331 * @requires(('snap_name', str_type))
43332 * def remove_snap(self, snap_name): # <<<<<<<<<<<<<<
43333 * """
43334 * Removes a pool-wide snapshot
43335 */
43336
43337/* Python wrapper */
43338static PyObject *__pyx_pw_5rados_5Ioctx_77remove_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_name); /*proto*/
43339static char __pyx_doc_5rados_5Ioctx_76remove_snap[] = "Ioctx.remove_snap(self, snap_name)\n\n Removes a pool-wide snapshot\n\n :param snap_name: the name of the snapshot\n :type snap_name: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
43340static PyObject *__pyx_pw_5rados_5Ioctx_77remove_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_name) {
43341 PyObject *__pyx_r = 0;
43342 __Pyx_RefNannyDeclarations
43343 __Pyx_RefNannySetupContext("remove_snap (wrapper)", 0);
43344 __pyx_r = __pyx_pf_5rados_5Ioctx_76remove_snap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_snap_name));
43345
43346 /* function exit code */
43347 __Pyx_RefNannyFinishContext();
43348 return __pyx_r;
43349}
43350
43351static PyObject *__pyx_pf_5rados_5Ioctx_76remove_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_name) {
43352 char *__pyx_v__snap_name;
43353 int __pyx_v_ret;
43354 PyObject *__pyx_r = NULL((void*)0);
43355 __Pyx_RefNannyDeclarations
43356 PyObject *__pyx_t_1 = NULL((void*)0);
43357 PyObject *__pyx_t_2 = NULL((void*)0);
43358 PyObject *__pyx_t_3 = NULL((void*)0);
43359 Py_ssize_t __pyx_t_4;
43360 PyObject *__pyx_t_5 = NULL((void*)0);
43361 char *__pyx_t_6;
43362 int __pyx_t_7;
43363 int __pyx_lineno = 0;
43364 const char *__pyx_filename = NULL((void*)0);
43365 int __pyx_clineno = 0;
43366 __Pyx_RefNannySetupContext("remove_snap", 0);
43367 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43368
43369 /* "rados.pyx":3226
43370 * :raises: :class:`Error`
43371 * """
43372 * self.require_ioctx_open() # <<<<<<<<<<<<<<
43373 * snap_name = cstr(snap_name, 'snap_name')
43374 * cdef char *_snap_name = snap_name
43375 */
43376 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3226; __pyx_clineno = __LINE__43376; goto __pyx_L1_error;}
43377 __Pyx_GOTREF(__pyx_t_2);
43378 __pyx_t_3 = NULL((void*)0);
43379 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
43380 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43381 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43382 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43383 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43384 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43385 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43386 }
43387 }
43388 if (__pyx_t_3) {
43389 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3226; __pyx_clineno = __LINE__43389; goto __pyx_L1_error;}
43390 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
43391 } else {
43392 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3226; __pyx_clineno = __LINE__43392; goto __pyx_L1_error;}
43393 }
43394 __Pyx_GOTREF(__pyx_t_1);
43395 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43396 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43397
43398 /* "rados.pyx":3227
43399 * """
43400 * self.require_ioctx_open()
43401 * snap_name = cstr(snap_name, 'snap_name') # <<<<<<<<<<<<<<
43402 * cdef char *_snap_name = snap_name
43403 *
43404 */
43405 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3227; __pyx_clineno = __LINE__43405; goto __pyx_L1_error;}
43406 __Pyx_GOTREF(__pyx_t_2);
43407 __pyx_t_3 = NULL((void*)0);
43408 __pyx_t_4 = 0;
43409 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
43410 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43411 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43412 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43413 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43414 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43415 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43416 __pyx_t_4 = 1;
43417 }
43418 }
43419 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3227; __pyx_clineno = __LINE__43419; goto __pyx_L1_error;}
43420 __Pyx_GOTREF(__pyx_t_5);
43421 if (__pyx_t_3) {
43422 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
43423 }
43424 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43425 __Pyx_GIVEREF(__pyx_v_snap_name);
43426 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_snap_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_snap_name
)
;
43427 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
43428 __Pyx_GIVEREF(__pyx_n_s_snap_name);
43429 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_snap_name
)
;
43430 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3227; __pyx_clineno = __LINE__43430; goto __pyx_L1_error;}
43431 __Pyx_GOTREF(__pyx_t_1);
43432 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
43433 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43434 __Pyx_DECREF_SET(__pyx_v_snap_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_snap_name; __pyx_v_snap_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
43435 __pyx_t_1 = 0;
43436
43437 /* "rados.pyx":3228
43438 * self.require_ioctx_open()
43439 * snap_name = cstr(snap_name, 'snap_name')
43440 * cdef char *_snap_name = snap_name # <<<<<<<<<<<<<<
43441 *
43442 * with nogil:
43443 */
43444 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_snap_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3228; __pyx_clineno = __LINE__43444; goto __pyx_L1_error;}
43445 __pyx_v__snap_name = __pyx_t_6;
43446
43447 /* "rados.pyx":3230
43448 * cdef char *_snap_name = snap_name
43449 *
43450 * with nogil: # <<<<<<<<<<<<<<
43451 * ret = rados_ioctx_snap_remove(self.io, _snap_name)
43452 * if ret != 0:
43453 */
43454 {
43455 #ifdef WITH_THREAD1
43456 PyThreadState *_save;
43457 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
43458 #endif
43459 /*try:*/ {
43460
43461 /* "rados.pyx":3231
43462 *
43463 * with nogil:
43464 * ret = rados_ioctx_snap_remove(self.io, _snap_name) # <<<<<<<<<<<<<<
43465 * if ret != 0:
43466 * raise make_ex(ret, "Failed to remove snap %s" % snap_name)
43467 */
43468 __pyx_v_ret = rados_ioctx_snap_remove(__pyx_v_self->io, __pyx_v__snap_name);
43469 }
43470
43471 /* "rados.pyx":3230
43472 * cdef char *_snap_name = snap_name
43473 *
43474 * with nogil: # <<<<<<<<<<<<<<
43475 * ret = rados_ioctx_snap_remove(self.io, _snap_name)
43476 * if ret != 0:
43477 */
43478 /*finally:*/ {
43479 /*normal exit:*/{
43480 #ifdef WITH_THREAD1
43481 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
43482 #endif
43483 goto __pyx_L5;
43484 }
43485 __pyx_L5:;
43486 }
43487 }
43488
43489 /* "rados.pyx":3232
43490 * with nogil:
43491 * ret = rados_ioctx_snap_remove(self.io, _snap_name)
43492 * if ret != 0: # <<<<<<<<<<<<<<
43493 * raise make_ex(ret, "Failed to remove snap %s" % snap_name)
43494 *
43495 */
43496 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
43497 if (__pyx_t_7) {
43498
43499 /* "rados.pyx":3233
43500 * ret = rados_ioctx_snap_remove(self.io, _snap_name)
43501 * if ret != 0:
43502 * raise make_ex(ret, "Failed to remove snap %s" % snap_name) # <<<<<<<<<<<<<<
43503 *
43504 * @requires(('snap_name', str_type))
43505 */
43506 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__43506; goto __pyx_L1_error;}
43507 __Pyx_GOTREF(__pyx_t_1);
43508 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_remove_snap_s, __pyx_v_snap_name)PyString_Format(__pyx_kp_s_Failed_to_remove_snap_s, __pyx_v_snap_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__43508; goto __pyx_L1_error;}
43509 __Pyx_GOTREF(__pyx_t_2);
43510 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__43510; goto __pyx_L1_error;}
43511 __Pyx_GOTREF(__pyx_t_5);
43512 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43513 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43514 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
43515 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
43516 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__43516; goto __pyx_L1_error;}
43517
43518 /* "rados.pyx":3232
43519 * with nogil:
43520 * ret = rados_ioctx_snap_remove(self.io, _snap_name)
43521 * if ret != 0: # <<<<<<<<<<<<<<
43522 * raise make_ex(ret, "Failed to remove snap %s" % snap_name)
43523 *
43524 */
43525 }
43526
43527 /* "rados.pyx":3216
43528 *
43529 * @requires(('snap_name', str_type))
43530 * def remove_snap(self, snap_name): # <<<<<<<<<<<<<<
43531 * """
43532 * Removes a pool-wide snapshot
43533 */
43534
43535 /* function exit code */
43536 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
43537 goto __pyx_L0;
43538 __pyx_L1_error:;
43539 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
43540 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
43541 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
43542 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
43543 __Pyx_AddTraceback("rados.Ioctx.remove_snap", __pyx_clineno, __pyx_lineno, __pyx_filename);
43544 __pyx_r = NULL((void*)0);
43545 __pyx_L0:;
43546 __Pyx_XDECREF(__pyx_v_snap_name)do { if ((__pyx_v_snap_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_snap_name))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_snap_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_snap_name
)))); } while (0); } while (0)
;
43547 __Pyx_XGIVEREF(__pyx_r);
43548 __Pyx_RefNannyFinishContext();
43549 return __pyx_r;
43550}
43551
43552/* "rados.pyx":3236
43553 *
43554 * @requires(('snap_name', str_type))
43555 * def lookup_snap(self, snap_name): # <<<<<<<<<<<<<<
43556 * """
43557 * Get the id of a pool snapshot
43558 */
43559
43560/* Python wrapper */
43561static PyObject *__pyx_pw_5rados_5Ioctx_79lookup_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_name); /*proto*/
43562static char __pyx_doc_5rados_5Ioctx_78lookup_snap[] = "Ioctx.lookup_snap(self, snap_name)\n\n Get the id of a pool snapshot\n\n :param snap_name: the name of the snapshot to lookop\n :type snap_name: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n :returns: Snap - on success\n ";
43563static PyObject *__pyx_pw_5rados_5Ioctx_79lookup_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_name) {
43564 PyObject *__pyx_r = 0;
43565 __Pyx_RefNannyDeclarations
43566 __Pyx_RefNannySetupContext("lookup_snap (wrapper)", 0);
43567 __pyx_r = __pyx_pf_5rados_5Ioctx_78lookup_snap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_snap_name));
43568
43569 /* function exit code */
43570 __Pyx_RefNannyFinishContext();
43571 return __pyx_r;
43572}
43573
43574static PyObject *__pyx_pf_5rados_5Ioctx_78lookup_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_name) {
43575 PyObject *__pyx_v_csnap_name = NULL((void*)0);
43576 char *__pyx_v__snap_name;
43577 rados_snap_t __pyx_v_snap_id;
43578 int __pyx_v_ret;
43579 PyObject *__pyx_r = NULL((void*)0);
43580 __Pyx_RefNannyDeclarations
43581 PyObject *__pyx_t_1 = NULL((void*)0);
43582 PyObject *__pyx_t_2 = NULL((void*)0);
43583 PyObject *__pyx_t_3 = NULL((void*)0);
43584 Py_ssize_t __pyx_t_4;
43585 PyObject *__pyx_t_5 = NULL((void*)0);
43586 char *__pyx_t_6;
43587 int __pyx_t_7;
43588 int __pyx_lineno = 0;
43589 const char *__pyx_filename = NULL((void*)0);
43590 int __pyx_clineno = 0;
43591 __Pyx_RefNannySetupContext("lookup_snap", 0);
43592
43593 /* "rados.pyx":3247
43594 * :returns: Snap - on success
43595 * """
43596 * self.require_ioctx_open() # <<<<<<<<<<<<<<
43597 * csnap_name = cstr(snap_name, 'snap_name')
43598 * cdef:
43599 */
43600 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3247; __pyx_clineno = __LINE__43600; goto __pyx_L1_error;}
43601 __Pyx_GOTREF(__pyx_t_2);
43602 __pyx_t_3 = NULL((void*)0);
43603 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
43604 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43605 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43606 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43607 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43608 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43609 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43610 }
43611 }
43612 if (__pyx_t_3) {
43613 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3247; __pyx_clineno = __LINE__43613; goto __pyx_L1_error;}
43614 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
43615 } else {
43616 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3247; __pyx_clineno = __LINE__43616; goto __pyx_L1_error;}
43617 }
43618 __Pyx_GOTREF(__pyx_t_1);
43619 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43620 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43621
43622 /* "rados.pyx":3248
43623 * """
43624 * self.require_ioctx_open()
43625 * csnap_name = cstr(snap_name, 'snap_name') # <<<<<<<<<<<<<<
43626 * cdef:
43627 * char *_snap_name = csnap_name
43628 */
43629 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3248; __pyx_clineno = __LINE__43629; goto __pyx_L1_error;}
43630 __Pyx_GOTREF(__pyx_t_2);
43631 __pyx_t_3 = NULL((void*)0);
43632 __pyx_t_4 = 0;
43633 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
43634 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43635 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43636 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43637 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43638 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43639 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43640 __pyx_t_4 = 1;
43641 }
43642 }
43643 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3248; __pyx_clineno = __LINE__43643; goto __pyx_L1_error;}
43644 __Pyx_GOTREF(__pyx_t_5);
43645 if (__pyx_t_3) {
43646 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
43647 }
43648 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43649 __Pyx_GIVEREF(__pyx_v_snap_name);
43650 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_snap_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_snap_name
)
;
43651 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
43652 __Pyx_GIVEREF(__pyx_n_s_snap_name);
43653 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_snap_name
)
;
43654 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3248; __pyx_clineno = __LINE__43654; goto __pyx_L1_error;}
43655 __Pyx_GOTREF(__pyx_t_1);
43656 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
43657 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43658 __pyx_v_csnap_name = __pyx_t_1;
43659 __pyx_t_1 = 0;
43660
43661 /* "rados.pyx":3250
43662 * csnap_name = cstr(snap_name, 'snap_name')
43663 * cdef:
43664 * char *_snap_name = csnap_name # <<<<<<<<<<<<<<
43665 * rados_snap_t snap_id
43666 *
43667 */
43668 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_csnap_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3250; __pyx_clineno = __LINE__43668; goto __pyx_L1_error;}
43669 __pyx_v__snap_name = __pyx_t_6;
43670
43671 /* "rados.pyx":3253
43672 * rados_snap_t snap_id
43673 *
43674 * with nogil: # <<<<<<<<<<<<<<
43675 * ret = rados_ioctx_snap_lookup(self.io, _snap_name, &snap_id)
43676 * if ret != 0:
43677 */
43678 {
43679 #ifdef WITH_THREAD1
43680 PyThreadState *_save;
43681 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
43682 #endif
43683 /*try:*/ {
43684
43685 /* "rados.pyx":3254
43686 *
43687 * with nogil:
43688 * ret = rados_ioctx_snap_lookup(self.io, _snap_name, &snap_id) # <<<<<<<<<<<<<<
43689 * if ret != 0:
43690 * raise make_ex(ret, "Failed to lookup snap %s" % snap_name)
43691 */
43692 __pyx_v_ret = rados_ioctx_snap_lookup(__pyx_v_self->io, __pyx_v__snap_name, (&__pyx_v_snap_id));
43693 }
43694
43695 /* "rados.pyx":3253
43696 * rados_snap_t snap_id
43697 *
43698 * with nogil: # <<<<<<<<<<<<<<
43699 * ret = rados_ioctx_snap_lookup(self.io, _snap_name, &snap_id)
43700 * if ret != 0:
43701 */
43702 /*finally:*/ {
43703 /*normal exit:*/{
43704 #ifdef WITH_THREAD1
43705 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
43706 #endif
43707 goto __pyx_L5;
43708 }
43709 __pyx_L5:;
43710 }
43711 }
43712
43713 /* "rados.pyx":3255
43714 * with nogil:
43715 * ret = rados_ioctx_snap_lookup(self.io, _snap_name, &snap_id)
43716 * if ret != 0: # <<<<<<<<<<<<<<
43717 * raise make_ex(ret, "Failed to lookup snap %s" % snap_name)
43718 * return Snap(self, snap_name, int(snap_id))
43719 */
43720 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
43721 if (__pyx_t_7) {
43722
43723 /* "rados.pyx":3256
43724 * ret = rados_ioctx_snap_lookup(self.io, _snap_name, &snap_id)
43725 * if ret != 0:
43726 * raise make_ex(ret, "Failed to lookup snap %s" % snap_name) # <<<<<<<<<<<<<<
43727 * return Snap(self, snap_name, int(snap_id))
43728 *
43729 */
43730 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3256; __pyx_clineno = __LINE__43730; goto __pyx_L1_error;}
43731 __Pyx_GOTREF(__pyx_t_1);
43732 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_lookup_snap_s, __pyx_v_snap_name)PyString_Format(__pyx_kp_s_Failed_to_lookup_snap_s, __pyx_v_snap_name
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3256; __pyx_clineno = __LINE__43732; goto __pyx_L1_error;}
43733 __Pyx_GOTREF(__pyx_t_2);
43734 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3256; __pyx_clineno = __LINE__43734; goto __pyx_L1_error;}
43735 __Pyx_GOTREF(__pyx_t_5);
43736 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43737 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43738 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
43739 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
43740 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3256; __pyx_clineno = __LINE__43740; goto __pyx_L1_error;}
43741
43742 /* "rados.pyx":3255
43743 * with nogil:
43744 * ret = rados_ioctx_snap_lookup(self.io, _snap_name, &snap_id)
43745 * if ret != 0: # <<<<<<<<<<<<<<
43746 * raise make_ex(ret, "Failed to lookup snap %s" % snap_name)
43747 * return Snap(self, snap_name, int(snap_id))
43748 */
43749 }
43750
43751 /* "rados.pyx":3257
43752 * if ret != 0:
43753 * raise make_ex(ret, "Failed to lookup snap %s" % snap_name)
43754 * return Snap(self, snap_name, int(snap_id)) # <<<<<<<<<<<<<<
43755 *
43756 * @requires(('oid', str_type), ('snap_name', str_type))
43757 */
43758 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
43759 __pyx_t_5 = __Pyx_PyInt_From_uint64_t(__pyx_v_snap_id); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3257; __pyx_clineno = __LINE__43759; goto __pyx_L1_error;}
43760 __Pyx_GOTREF(__pyx_t_5);
43761 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3257; __pyx_clineno = __LINE__43761; goto __pyx_L1_error;}
43762 __Pyx_GOTREF(__pyx_t_2);
43763 __Pyx_GIVEREF(__pyx_t_5);
43764 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_t_5);
43765 __pyx_t_5 = 0;
43766 __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3257; __pyx_clineno = __LINE__43766; goto __pyx_L1_error;}
43767 __Pyx_GOTREF(__pyx_t_5);
43768 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43769 __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3257; __pyx_clineno = __LINE__43769; goto __pyx_L1_error;}
43770 __Pyx_GOTREF(__pyx_t_2);
43771 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
43772 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
43773 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
43774 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43775 __Pyx_GIVEREF(__pyx_v_snap_name);
43776 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_snap_name)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_snap_name
)
;
43777 __Pyx_GIVEREF(__pyx_t_5);
43778 PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5)(((PyTupleObject *)(__pyx_t_2))->ob_item[2] = __pyx_t_5);
43779 __pyx_t_5 = 0;
43780 __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_Snap), __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3257; __pyx_clineno = __LINE__43780; goto __pyx_L1_error;}
43781 __Pyx_GOTREF(__pyx_t_5);
43782 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43783 __pyx_r = __pyx_t_5;
43784 __pyx_t_5 = 0;
43785 goto __pyx_L0;
43786
43787 /* "rados.pyx":3236
43788 *
43789 * @requires(('snap_name', str_type))
43790 * def lookup_snap(self, snap_name): # <<<<<<<<<<<<<<
43791 * """
43792 * Get the id of a pool snapshot
43793 */
43794
43795 /* function exit code */
43796 __pyx_L1_error:;
43797 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
43798 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
43799 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
43800 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
43801 __Pyx_AddTraceback("rados.Ioctx.lookup_snap", __pyx_clineno, __pyx_lineno, __pyx_filename);
43802 __pyx_r = NULL((void*)0);
43803 __pyx_L0:;
43804 __Pyx_XDECREF(__pyx_v_csnap_name)do { if ((__pyx_v_csnap_name) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_csnap_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_csnap_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_csnap_name
)))); } while (0); } while (0)
;
43805 __Pyx_XGIVEREF(__pyx_r);
43806 __Pyx_RefNannyFinishContext();
43807 return __pyx_r;
43808}
43809
43810/* "rados.pyx":3260
43811 *
43812 * @requires(('oid', str_type), ('snap_name', str_type))
43813 * def snap_rollback(self, oid, snap_name): # <<<<<<<<<<<<<<
43814 * """
43815 * Rollback an object to a snapshot
43816 */
43817
43818/* Python wrapper */
43819static PyObject *__pyx_pw_5rados_5Ioctx_81snap_rollback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
43820static char __pyx_doc_5rados_5Ioctx_80snap_rollback[] = "Ioctx.snap_rollback(self, oid, snap_name)\n\n Rollback an object to a snapshot\n\n :param oid: the name of the object\n :type oid: str\n :param snap_name: the name of the snapshot\n :type snap_name: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
43821static PyObject *__pyx_pw_5rados_5Ioctx_81snap_rollback(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
43822 PyObject *__pyx_v_oid = 0;
43823 PyObject *__pyx_v_snap_name = 0;
43824 int __pyx_lineno = 0;
43825 const char *__pyx_filename = NULL((void*)0);
43826 int __pyx_clineno = 0;
43827 PyObject *__pyx_r = 0;
43828 __Pyx_RefNannyDeclarations
43829 __Pyx_RefNannySetupContext("snap_rollback (wrapper)", 0);
43830 {
43831 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_oid,&__pyx_n_s_snap_name,0};
43832 PyObject* values[2] = {0,0};
43833 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
43834 Py_ssize_t kw_args;
43835 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
43836 switch (pos_args) {
43837 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
43838 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
43839 case 0: break;
43840 default: goto __pyx_L5_argtuple_error;
43841 }
43842 kw_args = PyDict_Size(__pyx_kwds);
43843 switch (pos_args) {
43844 case 0:
43845 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid
)) != 0), 1)
) kw_args--;
43846 else goto __pyx_L5_argtuple_error;
43847 case 1:
43848 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_snap_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_snap_name
)) != 0), 1)
) kw_args--;
43849 else {
43850 __Pyx_RaiseArgtupleInvalid("snap_rollback", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3260; __pyx_clineno = __LINE__43850; goto __pyx_L3_error;}
43851 }
43852 }
43853 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
43854 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "snap_rollback") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "snap_rollback") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3260; __pyx_clineno = __LINE__43854; goto __pyx_L3_error;}
43855 }
43856 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
43857 goto __pyx_L5_argtuple_error;
43858 } else {
43859 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
43860 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
43861 }
43862 __pyx_v_oid = values[0];
43863 __pyx_v_snap_name = values[1];
43864 }
43865 goto __pyx_L4_argument_unpacking_done;
43866 __pyx_L5_argtuple_error:;
43867 __Pyx_RaiseArgtupleInvalid("snap_rollback", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3260; __pyx_clineno = __LINE__43867; goto __pyx_L3_error;}
43868 __pyx_L3_error:;
43869 __Pyx_AddTraceback("rados.Ioctx.snap_rollback", __pyx_clineno, __pyx_lineno, __pyx_filename);
43870 __Pyx_RefNannyFinishContext();
43871 return NULL((void*)0);
43872 __pyx_L4_argument_unpacking_done:;
43873 __pyx_r = __pyx_pf_5rados_5Ioctx_80snap_rollback(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_oid, __pyx_v_snap_name);
43874
43875 /* function exit code */
43876 __Pyx_RefNannyFinishContext();
43877 return __pyx_r;
43878}
43879
43880static PyObject *__pyx_pf_5rados_5Ioctx_80snap_rollback(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oid, PyObject *__pyx_v_snap_name) {
43881 char *__pyx_v__snap_name;
43882 char *__pyx_v__oid;
43883 int __pyx_v_ret;
43884 PyObject *__pyx_r = NULL((void*)0);
43885 __Pyx_RefNannyDeclarations
43886 PyObject *__pyx_t_1 = NULL((void*)0);
43887 PyObject *__pyx_t_2 = NULL((void*)0);
43888 PyObject *__pyx_t_3 = NULL((void*)0);
43889 Py_ssize_t __pyx_t_4;
43890 PyObject *__pyx_t_5 = NULL((void*)0);
43891 char *__pyx_t_6;
43892 int __pyx_t_7;
43893 int __pyx_lineno = 0;
43894 const char *__pyx_filename = NULL((void*)0);
43895 int __pyx_clineno = 0;
43896 __Pyx_RefNannySetupContext("snap_rollback", 0);
43897 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
43898 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43899
43900 /* "rados.pyx":3272
43901 * :raises: :class:`Error`
43902 * """
43903 * self.require_ioctx_open() # <<<<<<<<<<<<<<
43904 * oid = cstr(oid, 'oid')
43905 * snap_name = cstr(snap_name, 'snap_name')
43906 */
43907 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__43907; goto __pyx_L1_error;}
43908 __Pyx_GOTREF(__pyx_t_2);
43909 __pyx_t_3 = NULL((void*)0);
43910 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
43911 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43912 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43913 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43914 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43915 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43916 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43917 }
43918 }
43919 if (__pyx_t_3) {
43920 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__43920; goto __pyx_L1_error;}
43921 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
43922 } else {
43923 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__43923; goto __pyx_L1_error;}
43924 }
43925 __Pyx_GOTREF(__pyx_t_1);
43926 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43927 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
43928
43929 /* "rados.pyx":3273
43930 * """
43931 * self.require_ioctx_open()
43932 * oid = cstr(oid, 'oid') # <<<<<<<<<<<<<<
43933 * snap_name = cstr(snap_name, 'snap_name')
43934 * cdef:
43935 */
43936 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__43936; goto __pyx_L1_error;}
43937 __Pyx_GOTREF(__pyx_t_2);
43938 __pyx_t_3 = NULL((void*)0);
43939 __pyx_t_4 = 0;
43940 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
43941 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43942 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
43943 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43944 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
43945 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43946 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43947 __pyx_t_4 = 1;
43948 }
43949 }
43950 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__43950; goto __pyx_L1_error;}
43951 __Pyx_GOTREF(__pyx_t_5);
43952 if (__pyx_t_3) {
43953 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
43954 }
43955 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
43956 __Pyx_GIVEREF(__pyx_v_oid);
43957 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_oid
)
;
43958 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
43959 __Pyx_GIVEREF(__pyx_n_s_oid);
43960 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_oid
)
;
43961 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3273; __pyx_clineno = __LINE__43961; goto __pyx_L1_error;}
43962 __Pyx_GOTREF(__pyx_t_1);
43963 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
43964 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
43965 __Pyx_DECREF_SET(__pyx_v_oid, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_oid; __pyx_v_oid = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43966 __pyx_t_1 = 0;
43967
43968 /* "rados.pyx":3274
43969 * self.require_ioctx_open()
43970 * oid = cstr(oid, 'oid')
43971 * snap_name = cstr(snap_name, 'snap_name') # <<<<<<<<<<<<<<
43972 * cdef:
43973 * char *_snap_name = snap_name
43974 */
43975 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__43975; goto __pyx_L1_error;}
43976 __Pyx_GOTREF(__pyx_t_2);
43977 __pyx_t_5 = NULL((void*)0);
43978 __pyx_t_4 = 0;
43979 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
43980 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
43981 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
43982 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
43983 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
43984 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
43985 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
43986 __pyx_t_4 = 1;
43987 }
43988 }
43989 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__43989; goto __pyx_L1_error;}
43990 __Pyx_GOTREF(__pyx_t_3);
43991 if (__pyx_t_5) {
43992 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
43993 }
43994 __Pyx_INCREF(__pyx_v_snap_name)( ((PyObject*)(__pyx_v_snap_name))->ob_refcnt++);
43995 __Pyx_GIVEREF(__pyx_v_snap_name);
43996 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_snap_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_snap_name
)
;
43997 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
43998 __Pyx_GIVEREF(__pyx_n_s_snap_name);
43999 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_snap_name
)
;
44000 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__44000; goto __pyx_L1_error;}
44001 __Pyx_GOTREF(__pyx_t_1);
44002 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44003 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44004 __Pyx_DECREF_SET(__pyx_v_snap_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_snap_name; __pyx_v_snap_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
44005 __pyx_t_1 = 0;
44006
44007 /* "rados.pyx":3276
44008 * snap_name = cstr(snap_name, 'snap_name')
44009 * cdef:
44010 * char *_snap_name = snap_name # <<<<<<<<<<<<<<
44011 * char *_oid = oid
44012 *
44013 */
44014 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_snap_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3276; __pyx_clineno = __LINE__44014; goto __pyx_L1_error;}
44015 __pyx_v__snap_name = __pyx_t_6;
44016
44017 /* "rados.pyx":3277
44018 * cdef:
44019 * char *_snap_name = snap_name
44020 * char *_oid = oid # <<<<<<<<<<<<<<
44021 *
44022 * with nogil:
44023 */
44024 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_oid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3277; __pyx_clineno = __LINE__44024; goto __pyx_L1_error;}
44025 __pyx_v__oid = __pyx_t_6;
44026
44027 /* "rados.pyx":3279
44028 * char *_oid = oid
44029 *
44030 * with nogil: # <<<<<<<<<<<<<<
44031 * ret = rados_ioctx_snap_rollback(self.io, _oid, _snap_name)
44032 * if ret != 0:
44033 */
44034 {
44035 #ifdef WITH_THREAD1
44036 PyThreadState *_save;
44037 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
44038 #endif
44039 /*try:*/ {
44040
44041 /* "rados.pyx":3280
44042 *
44043 * with nogil:
44044 * ret = rados_ioctx_snap_rollback(self.io, _oid, _snap_name) # <<<<<<<<<<<<<<
44045 * if ret != 0:
44046 * raise make_ex(ret, "Failed to rollback %s" % oid)
44047 */
44048 __pyx_v_ret = rados_ioctx_snap_rollback(__pyx_v_self->io, __pyx_v__oid, __pyx_v__snap_name);
44049 }
44050
44051 /* "rados.pyx":3279
44052 * char *_oid = oid
44053 *
44054 * with nogil: # <<<<<<<<<<<<<<
44055 * ret = rados_ioctx_snap_rollback(self.io, _oid, _snap_name)
44056 * if ret != 0:
44057 */
44058 /*finally:*/ {
44059 /*normal exit:*/{
44060 #ifdef WITH_THREAD1
44061 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
44062 #endif
44063 goto __pyx_L5;
44064 }
44065 __pyx_L5:;
44066 }
44067 }
44068
44069 /* "rados.pyx":3281
44070 * with nogil:
44071 * ret = rados_ioctx_snap_rollback(self.io, _oid, _snap_name)
44072 * if ret != 0: # <<<<<<<<<<<<<<
44073 * raise make_ex(ret, "Failed to rollback %s" % oid)
44074 *
44075 */
44076 __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
44077 if (__pyx_t_7) {
44078
44079 /* "rados.pyx":3282
44080 * ret = rados_ioctx_snap_rollback(self.io, _oid, _snap_name)
44081 * if ret != 0:
44082 * raise make_ex(ret, "Failed to rollback %s" % oid) # <<<<<<<<<<<<<<
44083 *
44084 * def create_self_managed_snap(self):
44085 */
44086 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__44086; goto __pyx_L1_error;}
44087 __Pyx_GOTREF(__pyx_t_1);
44088 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_rollback_s, __pyx_v_oid)PyString_Format(__pyx_kp_s_Failed_to_rollback_s, __pyx_v_oid); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__44088; goto __pyx_L1_error;}
44089 __Pyx_GOTREF(__pyx_t_2);
44090 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__44090; goto __pyx_L1_error;}
44091 __Pyx_GOTREF(__pyx_t_3);
44092 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44093 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44094 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
44095 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44096 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3282; __pyx_clineno = __LINE__44096; goto __pyx_L1_error;}
44097
44098 /* "rados.pyx":3281
44099 * with nogil:
44100 * ret = rados_ioctx_snap_rollback(self.io, _oid, _snap_name)
44101 * if ret != 0: # <<<<<<<<<<<<<<
44102 * raise make_ex(ret, "Failed to rollback %s" % oid)
44103 *
44104 */
44105 }
44106
44107 /* "rados.pyx":3260
44108 *
44109 * @requires(('oid', str_type), ('snap_name', str_type))
44110 * def snap_rollback(self, oid, snap_name): # <<<<<<<<<<<<<<
44111 * """
44112 * Rollback an object to a snapshot
44113 */
44114
44115 /* function exit code */
44116 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
44117 goto __pyx_L0;
44118 __pyx_L1_error:;
44119 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
44120 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
44121 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
44122 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
44123 __Pyx_AddTraceback("rados.Ioctx.snap_rollback", __pyx_clineno, __pyx_lineno, __pyx_filename);
44124 __pyx_r = NULL((void*)0);
44125 __pyx_L0:;
44126 __Pyx_XDECREF(__pyx_v_oid)do { if ((__pyx_v_oid) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_oid))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_oid)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_oid)))); } while (0); } while (0)
;
44127 __Pyx_XDECREF(__pyx_v_snap_name)do { if ((__pyx_v_snap_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_snap_name))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_snap_name)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_snap_name
)))); } while (0); } while (0)
;
44128 __Pyx_XGIVEREF(__pyx_r);
44129 __Pyx_RefNannyFinishContext();
44130 return __pyx_r;
44131}
44132
44133/* "rados.pyx":3284
44134 * raise make_ex(ret, "Failed to rollback %s" % oid)
44135 *
44136 * def create_self_managed_snap(self): # <<<<<<<<<<<<<<
44137 * """
44138 * Creates a self-managed snapshot
44139 */
44140
44141/* Python wrapper */
44142static PyObject *__pyx_pw_5rados_5Ioctx_83create_self_managed_snap(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
44143static char __pyx_doc_5rados_5Ioctx_82create_self_managed_snap[] = "Ioctx.create_self_managed_snap(self)\n\n Creates a self-managed snapshot\n\n :returns: snap id on success\n\n :raises: :class:`Error`\n ";
44144static PyObject *__pyx_pw_5rados_5Ioctx_83create_self_managed_snap(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
44145 PyObject *__pyx_r = 0;
44146 __Pyx_RefNannyDeclarations
44147 __Pyx_RefNannySetupContext("create_self_managed_snap (wrapper)", 0);
44148 __pyx_r = __pyx_pf_5rados_5Ioctx_82create_self_managed_snap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
44149
44150 /* function exit code */
44151 __Pyx_RefNannyFinishContext();
44152 return __pyx_r;
44153}
44154
44155static PyObject *__pyx_pf_5rados_5Ioctx_82create_self_managed_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
44156 rados_snap_t __pyx_v__snap_id;
44157 int __pyx_v_ret;
44158 PyObject *__pyx_r = NULL((void*)0);
44159 __Pyx_RefNannyDeclarations
44160 PyObject *__pyx_t_1 = NULL((void*)0);
44161 PyObject *__pyx_t_2 = NULL((void*)0);
44162 PyObject *__pyx_t_3 = NULL((void*)0);
44163 int __pyx_t_4;
44164 int __pyx_lineno = 0;
44165 const char *__pyx_filename = NULL((void*)0);
44166 int __pyx_clineno = 0;
44167 __Pyx_RefNannySetupContext("create_self_managed_snap", 0);
44168
44169 /* "rados.pyx":3292
44170 * :raises: :class:`Error`
44171 * """
44172 * self.require_ioctx_open() # <<<<<<<<<<<<<<
44173 * cdef:
44174 * rados_snap_t _snap_id
44175 */
44176 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__44176; goto __pyx_L1_error;}
44177 __Pyx_GOTREF(__pyx_t_2);
44178 __pyx_t_3 = NULL((void*)0);
44179 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
44180 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
44181 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
44182 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
44183 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
44184 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
44185 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
44186 }
44187 }
44188 if (__pyx_t_3) {
44189 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__44189; goto __pyx_L1_error;}
44190 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44191 } else {
44192 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3292; __pyx_clineno = __LINE__44192; goto __pyx_L1_error;}
44193 }
44194 __Pyx_GOTREF(__pyx_t_1);
44195 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44196 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44197
44198 /* "rados.pyx":3295
44199 * cdef:
44200 * rados_snap_t _snap_id
44201 * with nogil: # <<<<<<<<<<<<<<
44202 * ret = rados_ioctx_selfmanaged_snap_create(self.io, &_snap_id)
44203 * if ret != 0:
44204 */
44205 {
44206 #ifdef WITH_THREAD1
44207 PyThreadState *_save;
44208 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
44209 #endif
44210 /*try:*/ {
44211
44212 /* "rados.pyx":3296
44213 * rados_snap_t _snap_id
44214 * with nogil:
44215 * ret = rados_ioctx_selfmanaged_snap_create(self.io, &_snap_id) # <<<<<<<<<<<<<<
44216 * if ret != 0:
44217 * raise make_ex(ret, "Failed to create self-managed snapshot")
44218 */
44219 __pyx_v_ret = rados_ioctx_selfmanaged_snap_create(__pyx_v_self->io, (&__pyx_v__snap_id));
44220 }
44221
44222 /* "rados.pyx":3295
44223 * cdef:
44224 * rados_snap_t _snap_id
44225 * with nogil: # <<<<<<<<<<<<<<
44226 * ret = rados_ioctx_selfmanaged_snap_create(self.io, &_snap_id)
44227 * if ret != 0:
44228 */
44229 /*finally:*/ {
44230 /*normal exit:*/{
44231 #ifdef WITH_THREAD1
44232 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
44233 #endif
44234 goto __pyx_L5;
44235 }
44236 __pyx_L5:;
44237 }
44238 }
44239
44240 /* "rados.pyx":3297
44241 * with nogil:
44242 * ret = rados_ioctx_selfmanaged_snap_create(self.io, &_snap_id)
44243 * if ret != 0: # <<<<<<<<<<<<<<
44244 * raise make_ex(ret, "Failed to create self-managed snapshot")
44245 * return int(_snap_id)
44246 */
44247 __pyx_t_4 = ((__pyx_v_ret != 0) != 0);
44248 if (__pyx_t_4) {
44249
44250 /* "rados.pyx":3298
44251 * ret = rados_ioctx_selfmanaged_snap_create(self.io, &_snap_id)
44252 * if ret != 0:
44253 * raise make_ex(ret, "Failed to create self-managed snapshot") # <<<<<<<<<<<<<<
44254 * return int(_snap_id)
44255 *
44256 */
44257 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__44257; goto __pyx_L1_error;}
44258 __Pyx_GOTREF(__pyx_t_1);
44259 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_Failed_to_create_self_managed_sn); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__44259; goto __pyx_L1_error;}
44260 __Pyx_GOTREF(__pyx_t_2);
44261 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44262 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
44263 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44264 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3298; __pyx_clineno = __LINE__44264; goto __pyx_L1_error;}
44265
44266 /* "rados.pyx":3297
44267 * with nogil:
44268 * ret = rados_ioctx_selfmanaged_snap_create(self.io, &_snap_id)
44269 * if ret != 0: # <<<<<<<<<<<<<<
44270 * raise make_ex(ret, "Failed to create self-managed snapshot")
44271 * return int(_snap_id)
44272 */
44273 }
44274
44275 /* "rados.pyx":3299
44276 * if ret != 0:
44277 * raise make_ex(ret, "Failed to create self-managed snapshot")
44278 * return int(_snap_id) # <<<<<<<<<<<<<<
44279 *
44280 * @requires(('snap_id', int))
44281 */
44282 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
44283 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v__snap_id); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__44283; goto __pyx_L1_error;}
44284 __Pyx_GOTREF(__pyx_t_2);
44285 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__44285; goto __pyx_L1_error;}
44286 __Pyx_GOTREF(__pyx_t_1);
44287 __Pyx_GIVEREF(__pyx_t_2);
44288 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_2);
44289 __pyx_t_2 = 0;
44290 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3299; __pyx_clineno = __LINE__44290; goto __pyx_L1_error;}
44291 __Pyx_GOTREF(__pyx_t_2);
44292 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44293 __pyx_r = __pyx_t_2;
44294 __pyx_t_2 = 0;
44295 goto __pyx_L0;
44296
44297 /* "rados.pyx":3284
44298 * raise make_ex(ret, "Failed to rollback %s" % oid)
44299 *
44300 * def create_self_managed_snap(self): # <<<<<<<<<<<<<<
44301 * """
44302 * Creates a self-managed snapshot
44303 */
44304
44305 /* function exit code */
44306 __pyx_L1_error:;
44307 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
44308 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
44309 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
44310 __Pyx_AddTraceback("rados.Ioctx.create_self_managed_snap", __pyx_clineno, __pyx_lineno, __pyx_filename);
44311 __pyx_r = NULL((void*)0);
44312 __pyx_L0:;
44313 __Pyx_XGIVEREF(__pyx_r);
44314 __Pyx_RefNannyFinishContext();
44315 return __pyx_r;
44316}
44317
44318/* "rados.pyx":3302
44319 *
44320 * @requires(('snap_id', int))
44321 * def remove_self_managed_snap(self, snap_id): # <<<<<<<<<<<<<<
44322 * """
44323 * Removes a self-managed snapshot
44324 */
44325
44326/* Python wrapper */
44327static PyObject *__pyx_pw_5rados_5Ioctx_85remove_self_managed_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_id); /*proto*/
44328static char __pyx_doc_5rados_5Ioctx_84remove_self_managed_snap[] = "Ioctx.remove_self_managed_snap(self, snap_id)\n\n Removes a self-managed snapshot\n\n :param snap_id: the name of the snapshot\n :type snap_id: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
44329static PyObject *__pyx_pw_5rados_5Ioctx_85remove_self_managed_snap(PyObject *__pyx_v_self, PyObject *__pyx_v_snap_id) {
44330 PyObject *__pyx_r = 0;
44331 __Pyx_RefNannyDeclarations
44332 __Pyx_RefNannySetupContext("remove_self_managed_snap (wrapper)", 0);
44333 __pyx_r = __pyx_pf_5rados_5Ioctx_84remove_self_managed_snap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_snap_id));
44334
44335 /* function exit code */
44336 __Pyx_RefNannyFinishContext();
44337 return __pyx_r;
44338}
44339
44340static PyObject *__pyx_pf_5rados_5Ioctx_84remove_self_managed_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snap_id) {
44341 rados_snap_t __pyx_v__snap_id;
44342 int __pyx_v_ret;
44343 PyObject *__pyx_r = NULL((void*)0);
44344 __Pyx_RefNannyDeclarations
44345 PyObject *__pyx_t_1 = NULL((void*)0);
44346 PyObject *__pyx_t_2 = NULL((void*)0);
44347 PyObject *__pyx_t_3 = NULL((void*)0);
44348 rados_snap_t __pyx_t_4;
44349 int __pyx_t_5;
44350 int __pyx_lineno = 0;
44351 const char *__pyx_filename = NULL((void*)0);
44352 int __pyx_clineno = 0;
44353 __Pyx_RefNannySetupContext("remove_self_managed_snap", 0);
44354
44355 /* "rados.pyx":3312
44356 * :raises: :class:`Error`
44357 * """
44358 * self.require_ioctx_open() # <<<<<<<<<<<<<<
44359 * cdef:
44360 * rados_snap_t _snap_id = snap_id
44361 */
44362 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3312; __pyx_clineno = __LINE__44362; goto __pyx_L1_error;}
44363 __Pyx_GOTREF(__pyx_t_2);
44364 __pyx_t_3 = NULL((void*)0);
44365 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
44366 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
44367 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
44368 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
44369 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
44370 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
44371 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
44372 }
44373 }
44374 if (__pyx_t_3) {
44375 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3312; __pyx_clineno = __LINE__44375; goto __pyx_L1_error;}
44376 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44377 } else {
44378 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3312; __pyx_clineno = __LINE__44378; goto __pyx_L1_error;}
44379 }
44380 __Pyx_GOTREF(__pyx_t_1);
44381 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44382 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44383
44384 /* "rados.pyx":3314
44385 * self.require_ioctx_open()
44386 * cdef:
44387 * rados_snap_t _snap_id = snap_id # <<<<<<<<<<<<<<
44388 * with nogil:
44389 * ret = rados_ioctx_selfmanaged_snap_remove(self.io, _snap_id)
44390 */
44391 __pyx_t_4 = __Pyx_PyInt_As_uint64_t(__pyx_v_snap_id); if (unlikely((__pyx_t_4 == (rados_snap_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_4 == (rados_snap_t)-1) &&
PyErr_Occurred()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3314; __pyx_clineno = __LINE__44391; goto __pyx_L1_error;}
44392 __pyx_v__snap_id = __pyx_t_4;
44393
44394 /* "rados.pyx":3315
44395 * cdef:
44396 * rados_snap_t _snap_id = snap_id
44397 * with nogil: # <<<<<<<<<<<<<<
44398 * ret = rados_ioctx_selfmanaged_snap_remove(self.io, _snap_id)
44399 * if ret != 0:
44400 */
44401 {
44402 #ifdef WITH_THREAD1
44403 PyThreadState *_save;
44404 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
44405 #endif
44406 /*try:*/ {
44407
44408 /* "rados.pyx":3316
44409 * rados_snap_t _snap_id = snap_id
44410 * with nogil:
44411 * ret = rados_ioctx_selfmanaged_snap_remove(self.io, _snap_id) # <<<<<<<<<<<<<<
44412 * if ret != 0:
44413 * raise make_ex(ret, "Failed to remove self-managed snapshot")
44414 */
44415 __pyx_v_ret = rados_ioctx_selfmanaged_snap_remove(__pyx_v_self->io, __pyx_v__snap_id);
44416 }
44417
44418 /* "rados.pyx":3315
44419 * cdef:
44420 * rados_snap_t _snap_id = snap_id
44421 * with nogil: # <<<<<<<<<<<<<<
44422 * ret = rados_ioctx_selfmanaged_snap_remove(self.io, _snap_id)
44423 * if ret != 0:
44424 */
44425 /*finally:*/ {
44426 /*normal exit:*/{
44427 #ifdef WITH_THREAD1
44428 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
44429 #endif
44430 goto __pyx_L5;
44431 }
44432 __pyx_L5:;
44433 }
44434 }
44435
44436 /* "rados.pyx":3317
44437 * with nogil:
44438 * ret = rados_ioctx_selfmanaged_snap_remove(self.io, _snap_id)
44439 * if ret != 0: # <<<<<<<<<<<<<<
44440 * raise make_ex(ret, "Failed to remove self-managed snapshot")
44441 *
44442 */
44443 __pyx_t_5 = ((__pyx_v_ret != 0) != 0);
44444 if (__pyx_t_5) {
44445
44446 /* "rados.pyx":3318
44447 * ret = rados_ioctx_selfmanaged_snap_remove(self.io, _snap_id)
44448 * if ret != 0:
44449 * raise make_ex(ret, "Failed to remove self-managed snapshot") # <<<<<<<<<<<<<<
44450 *
44451 * def set_self_managed_snap_write(self, snaps):
44452 */
44453 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3318; __pyx_clineno = __LINE__44453; goto __pyx_L1_error;}
44454 __Pyx_GOTREF(__pyx_t_1);
44455 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_Failed_to_remove_self_managed_sn); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3318; __pyx_clineno = __LINE__44455; goto __pyx_L1_error;}
44456 __Pyx_GOTREF(__pyx_t_2);
44457 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44458 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
44459 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44460 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3318; __pyx_clineno = __LINE__44460; goto __pyx_L1_error;}
44461
44462 /* "rados.pyx":3317
44463 * with nogil:
44464 * ret = rados_ioctx_selfmanaged_snap_remove(self.io, _snap_id)
44465 * if ret != 0: # <<<<<<<<<<<<<<
44466 * raise make_ex(ret, "Failed to remove self-managed snapshot")
44467 *
44468 */
44469 }
44470
44471 /* "rados.pyx":3302
44472 *
44473 * @requires(('snap_id', int))
44474 * def remove_self_managed_snap(self, snap_id): # <<<<<<<<<<<<<<
44475 * """
44476 * Removes a self-managed snapshot
44477 */
44478
44479 /* function exit code */
44480 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
44481 goto __pyx_L0;
44482 __pyx_L1_error:;
44483 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
44484 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
44485 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
44486 __Pyx_AddTraceback("rados.Ioctx.remove_self_managed_snap", __pyx_clineno, __pyx_lineno, __pyx_filename);
44487 __pyx_r = NULL((void*)0);
44488 __pyx_L0:;
44489 __Pyx_XGIVEREF(__pyx_r);
44490 __Pyx_RefNannyFinishContext();
44491 return __pyx_r;
44492}
44493
44494/* "rados.pyx":3320
44495 * raise make_ex(ret, "Failed to remove self-managed snapshot")
44496 *
44497 * def set_self_managed_snap_write(self, snaps): # <<<<<<<<<<<<<<
44498 * """
44499 * Updates the write context to the specified self-managed
44500 */
44501
44502/* Python wrapper */
44503static PyObject *__pyx_pw_5rados_5Ioctx_87set_self_managed_snap_write(PyObject *__pyx_v_self, PyObject *__pyx_v_snaps); /*proto*/
44504static char __pyx_doc_5rados_5Ioctx_86set_self_managed_snap_write[] = "Ioctx.set_self_managed_snap_write(self, snaps)\n\n Updates the write context to the specified self-managed\n snapshot ids.\n\n :param snaps: all associated self-managed snapshot ids\n :type snaps: list\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
44505static PyObject *__pyx_pw_5rados_5Ioctx_87set_self_managed_snap_write(PyObject *__pyx_v_self, PyObject *__pyx_v_snaps) {
44506 PyObject *__pyx_r = 0;
44507 __Pyx_RefNannyDeclarations
44508 __Pyx_RefNannySetupContext("set_self_managed_snap_write (wrapper)", 0);
44509 __pyx_r = __pyx_pf_5rados_5Ioctx_86set_self_managed_snap_write(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_snaps));
44510
44511 /* function exit code */
44512 __Pyx_RefNannyFinishContext();
44513 return __pyx_r;
44514}
44515
44516static PyObject *__pyx_pf_5rados_5Ioctx_86set_self_managed_snap_write(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_snaps) {
44517 PyObject *__pyx_v_sorted_snaps = NULL((void*)0);
44518 PyObject *__pyx_v_snap_seq = NULL((void*)0);
44519 rados_snap_t __pyx_v__snap_seq;
44520 rados_snap_t *__pyx_v__snaps;
44521 int __pyx_v__num_snaps;
44522 Py_ssize_t __pyx_v_i;
44523 int __pyx_v_ret;
44524 PyObject *__pyx_v_x = NULL((void*)0);
44525 PyObject *__pyx_r = NULL((void*)0);
44526 __Pyx_RefNannyDeclarations
44527 PyObject *__pyx_t_1 = NULL((void*)0);
44528 PyObject *__pyx_t_2 = NULL((void*)0);
44529 PyObject *__pyx_t_3 = NULL((void*)0);
44530 int __pyx_t_4;
44531 Py_ssize_t __pyx_t_5;
44532 PyObject *(*__pyx_t_6)(PyObject *);
44533 rados_snap_t __pyx_t_7;
44534 Py_ssize_t __pyx_t_8;
44535 int __pyx_t_9;
44536 int __pyx_t_10;
44537 char const *__pyx_t_11;
44538 PyObject *__pyx_t_12 = NULL((void*)0);
44539 PyObject *__pyx_t_13 = NULL((void*)0);
44540 PyObject *__pyx_t_14 = NULL((void*)0);
44541 PyObject *__pyx_t_15 = NULL((void*)0);
44542 PyObject *__pyx_t_16 = NULL((void*)0);
44543 PyObject *__pyx_t_17 = NULL((void*)0);
44544 int __pyx_lineno = 0;
44545 const char *__pyx_filename = NULL((void*)0);
44546 int __pyx_clineno = 0;
44547 __Pyx_RefNannySetupContext("set_self_managed_snap_write", 0);
44548
44549 /* "rados.pyx":3331
44550 * :raises: :class:`Error`
44551 * """
44552 * self.require_ioctx_open() # <<<<<<<<<<<<<<
44553 * sorted_snaps = []
44554 * snap_seq = 0
44555 */
44556 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3331; __pyx_clineno = __LINE__44556; goto __pyx_L1_error;}
44557 __Pyx_GOTREF(__pyx_t_2);
44558 __pyx_t_3 = NULL((void*)0);
44559 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
44560 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
44561 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
44562 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
44563 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
44564 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
44565 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
44566 }
44567 }
44568 if (__pyx_t_3) {
44569 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3331; __pyx_clineno = __LINE__44569; goto __pyx_L1_error;}
44570 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44571 } else {
44572 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3331; __pyx_clineno = __LINE__44572; goto __pyx_L1_error;}
44573 }
44574 __Pyx_GOTREF(__pyx_t_1);
44575 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44576 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44577
44578 /* "rados.pyx":3332
44579 * """
44580 * self.require_ioctx_open()
44581 * sorted_snaps = [] # <<<<<<<<<<<<<<
44582 * snap_seq = 0
44583 * if snaps:
44584 */
44585 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3332; __pyx_clineno = __LINE__44585; goto __pyx_L1_error;}
44586 __Pyx_GOTREF(__pyx_t_1);
44587 __pyx_v_sorted_snaps = __pyx_t_1;
44588 __pyx_t_1 = 0;
44589
44590 /* "rados.pyx":3333
44591 * self.require_ioctx_open()
44592 * sorted_snaps = []
44593 * snap_seq = 0 # <<<<<<<<<<<<<<
44594 * if snaps:
44595 * sorted_snaps = sorted([int(x) for x in snaps], reverse=True)
44596 */
44597 __Pyx_INCREF(__pyx_int_0)( ((PyObject*)(__pyx_int_0))->ob_refcnt++);
44598 __pyx_v_snap_seq = __pyx_int_0;
44599
44600 /* "rados.pyx":3334
44601 * sorted_snaps = []
44602 * snap_seq = 0
44603 * if snaps: # <<<<<<<<<<<<<<
44604 * sorted_snaps = sorted([int(x) for x in snaps], reverse=True)
44605 * snap_seq = sorted_snaps[0]
44606 */
44607 __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_snaps); if (unlikely(__pyx_t_4 < 0)__builtin_expect(!!(__pyx_t_4 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3334; __pyx_clineno = __LINE__44607; goto __pyx_L1_error;}
44608 if (__pyx_t_4) {
44609
44610 /* "rados.pyx":3335
44611 * snap_seq = 0
44612 * if snaps:
44613 * sorted_snaps = sorted([int(x) for x in snaps], reverse=True) # <<<<<<<<<<<<<<
44614 * snap_seq = sorted_snaps[0]
44615 *
44616 */
44617 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44617; goto __pyx_L1_error;}
44618 __Pyx_GOTREF(__pyx_t_1);
44619 if (likely(PyList_CheckExact(__pyx_v_snaps))__builtin_expect(!!(((((PyObject*)(__pyx_v_snaps))->ob_type
) == &PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_v_snaps)((((PyObject*)(__pyx_v_snaps))->ob_type) == &PyTuple_Type
)
) {
44620 __pyx_t_2 = __pyx_v_snaps; __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_5 = 0;
44621 __pyx_t_6 = NULL((void*)0);
44622 } else {
44623 __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_snaps); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44623; goto __pyx_L1_error;}
44624 __Pyx_GOTREF(__pyx_t_2);
44625 __pyx_t_6 = Py_TYPE(__pyx_t_2)(((PyObject*)(__pyx_t_2))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44625; goto __pyx_L1_error;}
44626 }
44627 for (;;) {
44628 if (likely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 1)) {
44629 if (likely(PyList_CheckExact(__pyx_t_2))__builtin_expect(!!(((((PyObject*)(__pyx_t_2))->ob_type) ==
&PyList_Type)), 1)
) {
44630 if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
44631 #if CYTHON_COMPILING_IN_CPYTHON1
44632 __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5)(((PyListObject *)(__pyx_t_2))->ob_item[__pyx_t_5]); __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++); __pyx_t_5++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44632; goto __pyx_L1_error;}
44633 #else
44634 __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_5)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_5) )
; __pyx_t_5++; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44634; goto __pyx_L1_error;}
44635 __Pyx_GOTREF(__pyx_t_3);
44636 #endif
44637 } else {
44638 if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
44639 #if CYTHON_COMPILING_IN_CPYTHON1
44640 __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5)(((PyTupleObject *)(__pyx_t_2))->ob_item[__pyx_t_5]); __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++); __pyx_t_5++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44640; goto __pyx_L1_error;}
44641 #else
44642 __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_5)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_5) )
; __pyx_t_5++; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44642; goto __pyx_L1_error;}
44643 __Pyx_GOTREF(__pyx_t_3);
44644 #endif
44645 }
44646 } else {
44647 __pyx_t_3 = __pyx_t_6(__pyx_t_2);
44648 if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {
44649 PyObject* exc_type = PyErr_Occurred();
44650 if (exc_type) {
44651 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
44652 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44652; goto __pyx_L1_error;}
44653 }
44654 break;
44655 }
44656 __Pyx_GOTREF(__pyx_t_3);
44657 }
44658 __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3)do { PyObject *tmp = (PyObject *) __pyx_v_x; __pyx_v_x = __pyx_t_3
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
44659 __pyx_t_3 = 0;
44660 __pyx_t_3 = PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44660; goto __pyx_L1_error;}
44661 __Pyx_GOTREF(__pyx_t_3);
44662 if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_1, (PyObject
*)__pyx_t_3)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44662; goto __pyx_L1_error;}
44663 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44664 }
44665 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44666 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44666; goto __pyx_L1_error;}
44667 __Pyx_GOTREF(__pyx_t_2);
44668 __Pyx_GIVEREF(__pyx_t_1);
44669 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_t_1);
44670 __pyx_t_1 = 0;
44671 __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44671; goto __pyx_L1_error;}
44672 __Pyx_GOTREF(__pyx_t_1);
44673 if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_reverse, Py_True((PyObject *) &_Py_TrueStruct)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44673; goto __pyx_L1_error;}
44674 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__44674; goto __pyx_L1_error;}
44675 __Pyx_GOTREF(__pyx_t_3);
44676 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
44677 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44678 __Pyx_DECREF_SET(__pyx_v_sorted_snaps, __pyx_t_3)do { PyObject *tmp = (PyObject *) __pyx_v_sorted_snaps; __pyx_v_sorted_snaps
= __pyx_t_3; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
44679 __pyx_t_3 = 0;
44680
44681 /* "rados.pyx":3336
44682 * if snaps:
44683 * sorted_snaps = sorted([int(x) for x in snaps], reverse=True)
44684 * snap_seq = sorted_snaps[0] # <<<<<<<<<<<<<<
44685 *
44686 * cdef:
44687 */
44688 __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_sorted_snaps, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1)(( (sizeof(long) < sizeof(Py_ssize_t)) || (sizeof(long) >
sizeof(Py_ssize_t) && __builtin_expect(!!(0 < (long
)((Py_ssize_t)(((size_t)-1)>>1)) || 0 == (long)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!1 || __builtin_expect
(!!(0 > (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
0 == (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(long) == sizeof(Py_ssize_t) && (1 || __builtin_expect
(!!(0 < (long)((Py_ssize_t)(((size_t)-1)>>1)) || 0 ==
(long)((Py_ssize_t)(((size_t)-1)>>1))), 1))) ) ? __Pyx_GetItemInt_Fast
(__pyx_v_sorted_snaps, (Py_ssize_t)0, 0, 0, 1) : (0 ? (PyErr_SetString
(PyExc_IndexError, "list index out of range"), (PyObject*)((void
*)0)) : __Pyx_GetItemInt_Generic(__pyx_v_sorted_snaps, __Pyx_PyInt_From_long
(0))))
; if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3336; __pyx_clineno = __LINE__44688; goto __pyx_L1_error;};
44689 __Pyx_GOTREF(__pyx_t_3);
44690 __Pyx_DECREF_SET(__pyx_v_snap_seq, __pyx_t_3)do { PyObject *tmp = (PyObject *) __pyx_v_snap_seq; __pyx_v_snap_seq
= __pyx_t_3; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
44691 __pyx_t_3 = 0;
44692
44693 /* "rados.pyx":3334
44694 * sorted_snaps = []
44695 * snap_seq = 0
44696 * if snaps: # <<<<<<<<<<<<<<
44697 * sorted_snaps = sorted([int(x) for x in snaps], reverse=True)
44698 * snap_seq = sorted_snaps[0]
44699 */
44700 }
44701
44702 /* "rados.pyx":3339
44703 *
44704 * cdef:
44705 * rados_snap_t _snap_seq = snap_seq # <<<<<<<<<<<<<<
44706 * rados_snap_t *_snaps = NULL
44707 * int _num_snaps = len(sorted_snaps)
44708 */
44709 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_snap_seq); if (unlikely((__pyx_t_7 == (rados_snap_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (rados_snap_t)-1) &&
PyErr_Occurred()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3339; __pyx_clineno = __LINE__44709; goto __pyx_L1_error;}
44710 __pyx_v__snap_seq = __pyx_t_7;
44711
44712 /* "rados.pyx":3340
44713 * cdef:
44714 * rados_snap_t _snap_seq = snap_seq
44715 * rados_snap_t *_snaps = NULL # <<<<<<<<<<<<<<
44716 * int _num_snaps = len(sorted_snaps)
44717 * try:
44718 */
44719 __pyx_v__snaps = NULL((void*)0);
44720
44721 /* "rados.pyx":3341
44722 * rados_snap_t _snap_seq = snap_seq
44723 * rados_snap_t *_snaps = NULL
44724 * int _num_snaps = len(sorted_snaps) # <<<<<<<<<<<<<<
44725 * try:
44726 * _snaps = <rados_snap_t *>malloc(_num_snaps * sizeof(rados_snap_t))
44727 */
44728 __pyx_t_5 = PyObject_LengthPyObject_Size(__pyx_v_sorted_snaps); if (unlikely(__pyx_t_5 == -1)__builtin_expect(!!(__pyx_t_5 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3341; __pyx_clineno = __LINE__44728; goto __pyx_L1_error;}
44729 __pyx_v__num_snaps = __pyx_t_5;
44730
44731 /* "rados.pyx":3342
44732 * rados_snap_t *_snaps = NULL
44733 * int _num_snaps = len(sorted_snaps)
44734 * try: # <<<<<<<<<<<<<<
44735 * _snaps = <rados_snap_t *>malloc(_num_snaps * sizeof(rados_snap_t))
44736 * for i in range(len(sorted_snaps)):
44737 */
44738 /*try:*/ {
44739
44740 /* "rados.pyx":3343
44741 * int _num_snaps = len(sorted_snaps)
44742 * try:
44743 * _snaps = <rados_snap_t *>malloc(_num_snaps * sizeof(rados_snap_t)) # <<<<<<<<<<<<<<
44744 * for i in range(len(sorted_snaps)):
44745 * _snaps[i] = sorted_snaps[i]
44746 */
44747 __pyx_v__snaps = ((rados_snap_t *)malloc((__pyx_v__num_snaps * (sizeof(rados_snap_t)))));
44748
44749 /* "rados.pyx":3344
44750 * try:
44751 * _snaps = <rados_snap_t *>malloc(_num_snaps * sizeof(rados_snap_t))
44752 * for i in range(len(sorted_snaps)): # <<<<<<<<<<<<<<
44753 * _snaps[i] = sorted_snaps[i]
44754 * with nogil:
44755 */
44756 __pyx_t_5 = PyObject_LengthPyObject_Size(__pyx_v_sorted_snaps); if (unlikely(__pyx_t_5 == -1)__builtin_expect(!!(__pyx_t_5 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3344; __pyx_clineno = __LINE__44756; goto __pyx_L7_error;}
44757 for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_5; __pyx_t_8+=1) {
44758 __pyx_v_i = __pyx_t_8;
44759
44760 /* "rados.pyx":3345
44761 * _snaps = <rados_snap_t *>malloc(_num_snaps * sizeof(rados_snap_t))
44762 * for i in range(len(sorted_snaps)):
44763 * _snaps[i] = sorted_snaps[i] # <<<<<<<<<<<<<<
44764 * with nogil:
44765 * ret = rados_ioctx_selfmanaged_snap_set_write_ctx(self.io,
44766 */
44767 __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_sorted_snaps, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1)(( (sizeof(Py_ssize_t) < sizeof(Py_ssize_t)) || (sizeof(Py_ssize_t
) > sizeof(Py_ssize_t) && __builtin_expect(!!(__pyx_v_i
< (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>1)) || __pyx_v_i
== (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>1))), 1) &&
(!1 || __builtin_expect(!!(__pyx_v_i > (Py_ssize_t)(-((Py_ssize_t
)(((size_t)-1)>>1))-1) || __pyx_v_i == (Py_ssize_t)(-((
Py_ssize_t)(((size_t)-1)>>1))-1)), 1))) || (sizeof(Py_ssize_t
) == sizeof(Py_ssize_t) && (1 || __builtin_expect(!!(
__pyx_v_i < (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>
1)) || __pyx_v_i == (Py_ssize_t)((Py_ssize_t)(((size_t)-1)>>
1))), 1))) ) ? __Pyx_GetItemInt_Fast(__pyx_v_sorted_snaps, (Py_ssize_t
)__pyx_v_i, 0, 1, 1) : (0 ? (PyErr_SetString(PyExc_IndexError
, "list index out of range"), (PyObject*)((void*)0)) : __Pyx_GetItemInt_Generic
(__pyx_v_sorted_snaps, PyInt_FromSsize_t(__pyx_v_i))))
; if (unlikely(__pyx_t_3 == NULL)__builtin_expect(!!(__pyx_t_3 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3345; __pyx_clineno = __LINE__44767; goto __pyx_L7_error;};
44768 __Pyx_GOTREF(__pyx_t_3);
44769 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_t_3); if (unlikely((__pyx_t_7 == (rados_snap_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (rados_snap_t)-1) &&
PyErr_Occurred()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3345; __pyx_clineno = __LINE__44769; goto __pyx_L7_error;}
44770 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44771 (__pyx_v__snaps[__pyx_v_i]) = __pyx_t_7;
44772 }
44773
44774 /* "rados.pyx":3346
44775 * for i in range(len(sorted_snaps)):
44776 * _snaps[i] = sorted_snaps[i]
44777 * with nogil: # <<<<<<<<<<<<<<
44778 * ret = rados_ioctx_selfmanaged_snap_set_write_ctx(self.io,
44779 * _snap_seq,
44780 */
44781 {
44782 #ifdef WITH_THREAD1
44783 PyThreadState *_save;
44784 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
44785 #endif
44786 /*try:*/ {
44787
44788 /* "rados.pyx":3347
44789 * _snaps[i] = sorted_snaps[i]
44790 * with nogil:
44791 * ret = rados_ioctx_selfmanaged_snap_set_write_ctx(self.io, # <<<<<<<<<<<<<<
44792 * _snap_seq,
44793 * _snaps,
44794 */
44795 __pyx_v_ret = rados_ioctx_selfmanaged_snap_set_write_ctx(__pyx_v_self->io, __pyx_v__snap_seq, __pyx_v__snaps, __pyx_v__num_snaps);
44796 }
44797
44798 /* "rados.pyx":3346
44799 * for i in range(len(sorted_snaps)):
44800 * _snaps[i] = sorted_snaps[i]
44801 * with nogil: # <<<<<<<<<<<<<<
44802 * ret = rados_ioctx_selfmanaged_snap_set_write_ctx(self.io,
44803 * _snap_seq,
44804 */
44805 /*finally:*/ {
44806 /*normal exit:*/{
44807 #ifdef WITH_THREAD1
44808 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
44809 #endif
44810 goto __pyx_L13;
44811 }
44812 __pyx_L13:;
44813 }
44814 }
44815
44816 /* "rados.pyx":3351
44817 * _snaps,
44818 * _num_snaps)
44819 * if ret != 0: # <<<<<<<<<<<<<<
44820 * raise make_ex(ret, "Failed to update snapshot write context")
44821 * finally:
44822 */
44823 __pyx_t_4 = ((__pyx_v_ret != 0) != 0);
44824 if (__pyx_t_4) {
44825
44826 /* "rados.pyx":3352
44827 * _num_snaps)
44828 * if ret != 0:
44829 * raise make_ex(ret, "Failed to update snapshot write context") # <<<<<<<<<<<<<<
44830 * finally:
44831 * free(_snaps)
44832 */
44833 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3352; __pyx_clineno = __LINE__44833; goto __pyx_L7_error;}
44834 __Pyx_GOTREF(__pyx_t_3);
44835 __pyx_t_1 = __pyx_f_5rados_make_ex(__pyx_t_3, __pyx_kp_s_Failed_to_update_snapshot_write); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3352; __pyx_clineno = __LINE__44835; goto __pyx_L7_error;}
44836 __Pyx_GOTREF(__pyx_t_1);
44837 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
44838 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
44839 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
44840 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3352; __pyx_clineno = __LINE__44840; goto __pyx_L7_error;}
44841
44842 /* "rados.pyx":3351
44843 * _snaps,
44844 * _num_snaps)
44845 * if ret != 0: # <<<<<<<<<<<<<<
44846 * raise make_ex(ret, "Failed to update snapshot write context")
44847 * finally:
44848 */
44849 }
44850 }
44851
44852 /* "rados.pyx":3354
44853 * raise make_ex(ret, "Failed to update snapshot write context")
44854 * finally:
44855 * free(_snaps) # <<<<<<<<<<<<<<
44856 *
44857 * @requires(('oid', str_type), ('snap_id', int))
44858 */
44859 /*finally:*/ {
44860 /*normal exit:*/{
44861 free(__pyx_v__snaps);
44862 goto __pyx_L8;
44863 }
44864 /*exception exit:*/{
44865 __pyx_L7_error:;
44866 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
44867 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
44868 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
44869 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
44870 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
44871 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_12, &
__pyx_t_13, &__pyx_t_14) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
44872 __Pyx_XGOTREF(__pyx_t_12);
44873 __Pyx_XGOTREF(__pyx_t_13);
44874 __Pyx_XGOTREF(__pyx_t_14);
44875 __Pyx_XGOTREF(__pyx_t_15);
44876 __Pyx_XGOTREF(__pyx_t_16);
44877 __Pyx_XGOTREF(__pyx_t_17);
44878 __pyx_t_9 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_11 = __pyx_filename;
44879 {
44880 free(__pyx_v__snaps);
44881 }
44882 if (PY_MAJOR_VERSION2 >= 3) {
44883 __Pyx_XGIVEREF(__pyx_t_15);
44884 __Pyx_XGIVEREF(__pyx_t_16);
44885 __Pyx_XGIVEREF(__pyx_t_17);
44886 __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17);
44887 }
44888 __Pyx_XGIVEREF(__pyx_t_12);
44889 __Pyx_XGIVEREF(__pyx_t_13);
44890 __Pyx_XGIVEREF(__pyx_t_14);
44891 __Pyx_ErrRestore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
44892 __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0;
44893 __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_11;
44894 goto __pyx_L1_error;
44895 }
44896 __pyx_L8:;
44897 }
44898
44899 /* "rados.pyx":3320
44900 * raise make_ex(ret, "Failed to remove self-managed snapshot")
44901 *
44902 * def set_self_managed_snap_write(self, snaps): # <<<<<<<<<<<<<<
44903 * """
44904 * Updates the write context to the specified self-managed
44905 */
44906
44907 /* function exit code */
44908 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
44909 goto __pyx_L0;
44910 __pyx_L1_error:;
44911 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
44912 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
44913 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
44914 __Pyx_AddTraceback("rados.Ioctx.set_self_managed_snap_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
44915 __pyx_r = NULL((void*)0);
44916 __pyx_L0:;
44917 __Pyx_XDECREF(__pyx_v_sorted_snaps)do { if ((__pyx_v_sorted_snaps) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_sorted_snaps))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_sorted_snaps)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_sorted_snaps
)))); } while (0); } while (0)
;
44918 __Pyx_XDECREF(__pyx_v_snap_seq)do { if ((__pyx_v_snap_seq) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_snap_seq))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_snap_seq)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_snap_seq)))); }
while (0); } while (0)
;
44919 __Pyx_XDECREF(__pyx_v_x)do { if ((__pyx_v_x) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_x))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_v_x)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_x)))); } while (0); } while (0)
;
44920 __Pyx_XGIVEREF(__pyx_r);
44921 __Pyx_RefNannyFinishContext();
44922 return __pyx_r;
44923}
44924
44925/* "rados.pyx":3357
44926 *
44927 * @requires(('oid', str_type), ('snap_id', int))
44928 * def rollback_self_managed_snap(self, oid, snap_id): # <<<<<<<<<<<<<<
44929 * """
44930 * Rolls an specific object back to a self-managed snapshot revision
44931 */
44932
44933/* Python wrapper */
44934static PyObject *__pyx_pw_5rados_5Ioctx_89rollback_self_managed_snap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
44935static char __pyx_doc_5rados_5Ioctx_88rollback_self_managed_snap[] = "Ioctx.rollback_self_managed_snap(self, oid, snap_id)\n\n Rolls an specific object back to a self-managed snapshot revision\n\n :param oid: the name of the object\n :type oid: str\n :param snap_id: the name of the snapshot\n :type snap_id: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
44936static PyObject *__pyx_pw_5rados_5Ioctx_89rollback_self_managed_snap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
44937 PyObject *__pyx_v_oid = 0;
44938 PyObject *__pyx_v_snap_id = 0;
44939 int __pyx_lineno = 0;
44940 const char *__pyx_filename = NULL((void*)0);
44941 int __pyx_clineno = 0;
44942 PyObject *__pyx_r = 0;
44943 __Pyx_RefNannyDeclarations
44944 __Pyx_RefNannySetupContext("rollback_self_managed_snap (wrapper)", 0);
44945 {
44946 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_oid,&__pyx_n_s_snap_id,0};
44947 PyObject* values[2] = {0,0};
44948 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
44949 Py_ssize_t kw_args;
44950 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
44951 switch (pos_args) {
44952 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
44953 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
44954 case 0: break;
44955 default: goto __pyx_L5_argtuple_error;
44956 }
44957 kw_args = PyDict_Size(__pyx_kwds);
44958 switch (pos_args) {
44959 case 0:
44960 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid
)) != 0), 1)
) kw_args--;
44961 else goto __pyx_L5_argtuple_error;
44962 case 1:
44963 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_snap_id)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_snap_id
)) != 0), 1)
) kw_args--;
44964 else {
44965 __Pyx_RaiseArgtupleInvalid("rollback_self_managed_snap", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3357; __pyx_clineno = __LINE__44965; goto __pyx_L3_error;}
44966 }
44967 }
44968 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
44969 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rollback_self_managed_snap") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "rollback_self_managed_snap") < 0),
0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3357; __pyx_clineno = __LINE__44969; goto __pyx_L3_error;}
44970 }
44971 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
44972 goto __pyx_L5_argtuple_error;
44973 } else {
44974 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
44975 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
44976 }
44977 __pyx_v_oid = values[0];
44978 __pyx_v_snap_id = values[1];
44979 }
44980 goto __pyx_L4_argument_unpacking_done;
44981 __pyx_L5_argtuple_error:;
44982 __Pyx_RaiseArgtupleInvalid("rollback_self_managed_snap", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3357; __pyx_clineno = __LINE__44982; goto __pyx_L3_error;}
44983 __pyx_L3_error:;
44984 __Pyx_AddTraceback("rados.Ioctx.rollback_self_managed_snap", __pyx_clineno, __pyx_lineno, __pyx_filename);
44985 __Pyx_RefNannyFinishContext();
44986 return NULL((void*)0);
44987 __pyx_L4_argument_unpacking_done:;
44988 __pyx_r = __pyx_pf_5rados_5Ioctx_88rollback_self_managed_snap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_oid, __pyx_v_snap_id);
44989
44990 /* function exit code */
44991 __Pyx_RefNannyFinishContext();
44992 return __pyx_r;
44993}
44994
44995static PyObject *__pyx_pf_5rados_5Ioctx_88rollback_self_managed_snap(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_oid, PyObject *__pyx_v_snap_id) {
44996 char *__pyx_v__oid;
44997 rados_snap_t __pyx_v__snap_id;
44998 int __pyx_v_ret;
44999 PyObject *__pyx_r = NULL((void*)0);
45000 __Pyx_RefNannyDeclarations
45001 PyObject *__pyx_t_1 = NULL((void*)0);
45002 PyObject *__pyx_t_2 = NULL((void*)0);
45003 PyObject *__pyx_t_3 = NULL((void*)0);
45004 Py_ssize_t __pyx_t_4;
45005 PyObject *__pyx_t_5 = NULL((void*)0);
45006 char *__pyx_t_6;
45007 rados_snap_t __pyx_t_7;
45008 int __pyx_t_8;
45009 int __pyx_lineno = 0;
45010 const char *__pyx_filename = NULL((void*)0);
45011 int __pyx_clineno = 0;
45012 __Pyx_RefNannySetupContext("rollback_self_managed_snap", 0);
45013 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
45014
45015 /* "rados.pyx":3369
45016 * :raises: :class:`Error`
45017 * """
45018 * self.require_ioctx_open() # <<<<<<<<<<<<<<
45019 * oid = cstr(oid, 'oid')
45020 * cdef:
45021 */
45022 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3369; __pyx_clineno = __LINE__45022; goto __pyx_L1_error;}
45023 __Pyx_GOTREF(__pyx_t_2);
45024 __pyx_t_3 = NULL((void*)0);
45025 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
45026 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
45027 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
45028 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
45029 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
45030 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45031 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45032 }
45033 }
45034 if (__pyx_t_3) {
45035 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3369; __pyx_clineno = __LINE__45035; goto __pyx_L1_error;}
45036 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
45037 } else {
45038 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3369; __pyx_clineno = __LINE__45038; goto __pyx_L1_error;}
45039 }
45040 __Pyx_GOTREF(__pyx_t_1);
45041 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45042 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
45043
45044 /* "rados.pyx":3370
45045 * """
45046 * self.require_ioctx_open()
45047 * oid = cstr(oid, 'oid') # <<<<<<<<<<<<<<
45048 * cdef:
45049 * char *_oid = oid
45050 */
45051 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3370; __pyx_clineno = __LINE__45051; goto __pyx_L1_error;}
45052 __Pyx_GOTREF(__pyx_t_2);
45053 __pyx_t_3 = NULL((void*)0);
45054 __pyx_t_4 = 0;
45055 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
45056 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
45057 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
45058 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
45059 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
45060 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45061 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45062 __pyx_t_4 = 1;
45063 }
45064 }
45065 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3370; __pyx_clineno = __LINE__45065; goto __pyx_L1_error;}
45066 __Pyx_GOTREF(__pyx_t_5);
45067 if (__pyx_t_3) {
45068 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
45069 }
45070 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
45071 __Pyx_GIVEREF(__pyx_v_oid);
45072 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_oid
)
;
45073 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
45074 __Pyx_GIVEREF(__pyx_n_s_oid);
45075 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_oid
)
;
45076 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3370; __pyx_clineno = __LINE__45076; goto __pyx_L1_error;}
45077 __Pyx_GOTREF(__pyx_t_1);
45078 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
45079 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45080 __Pyx_DECREF_SET(__pyx_v_oid, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_oid; __pyx_v_oid = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45081 __pyx_t_1 = 0;
45082
45083 /* "rados.pyx":3372
45084 * oid = cstr(oid, 'oid')
45085 * cdef:
45086 * char *_oid = oid # <<<<<<<<<<<<<<
45087 * rados_snap_t _snap_id = snap_id
45088 * with nogil:
45089 */
45090 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_oid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3372; __pyx_clineno = __LINE__45090; goto __pyx_L1_error;}
45091 __pyx_v__oid = __pyx_t_6;
45092
45093 /* "rados.pyx":3373
45094 * cdef:
45095 * char *_oid = oid
45096 * rados_snap_t _snap_id = snap_id # <<<<<<<<<<<<<<
45097 * with nogil:
45098 * ret = rados_ioctx_selfmanaged_snap_rollback(self.io, _oid, _snap_id)
45099 */
45100 __pyx_t_7 = __Pyx_PyInt_As_uint64_t(__pyx_v_snap_id); if (unlikely((__pyx_t_7 == (rados_snap_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (rados_snap_t)-1) &&
PyErr_Occurred()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3373; __pyx_clineno = __LINE__45100; goto __pyx_L1_error;}
45101 __pyx_v__snap_id = __pyx_t_7;
45102
45103 /* "rados.pyx":3374
45104 * char *_oid = oid
45105 * rados_snap_t _snap_id = snap_id
45106 * with nogil: # <<<<<<<<<<<<<<
45107 * ret = rados_ioctx_selfmanaged_snap_rollback(self.io, _oid, _snap_id)
45108 * if ret != 0:
45109 */
45110 {
45111 #ifdef WITH_THREAD1
45112 PyThreadState *_save;
45113 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
45114 #endif
45115 /*try:*/ {
45116
45117 /* "rados.pyx":3375
45118 * rados_snap_t _snap_id = snap_id
45119 * with nogil:
45120 * ret = rados_ioctx_selfmanaged_snap_rollback(self.io, _oid, _snap_id) # <<<<<<<<<<<<<<
45121 * if ret != 0:
45122 * raise make_ex(ret, "Failed to rollback %s" % oid)
45123 */
45124 __pyx_v_ret = rados_ioctx_selfmanaged_snap_rollback(__pyx_v_self->io, __pyx_v__oid, __pyx_v__snap_id);
45125 }
45126
45127 /* "rados.pyx":3374
45128 * char *_oid = oid
45129 * rados_snap_t _snap_id = snap_id
45130 * with nogil: # <<<<<<<<<<<<<<
45131 * ret = rados_ioctx_selfmanaged_snap_rollback(self.io, _oid, _snap_id)
45132 * if ret != 0:
45133 */
45134 /*finally:*/ {
45135 /*normal exit:*/{
45136 #ifdef WITH_THREAD1
45137 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
45138 #endif
45139 goto __pyx_L5;
45140 }
45141 __pyx_L5:;
45142 }
45143 }
45144
45145 /* "rados.pyx":3376
45146 * with nogil:
45147 * ret = rados_ioctx_selfmanaged_snap_rollback(self.io, _oid, _snap_id)
45148 * if ret != 0: # <<<<<<<<<<<<<<
45149 * raise make_ex(ret, "Failed to rollback %s" % oid)
45150 *
45151 */
45152 __pyx_t_8 = ((__pyx_v_ret != 0) != 0);
45153 if (__pyx_t_8) {
45154
45155 /* "rados.pyx":3377
45156 * ret = rados_ioctx_selfmanaged_snap_rollback(self.io, _oid, _snap_id)
45157 * if ret != 0:
45158 * raise make_ex(ret, "Failed to rollback %s" % oid) # <<<<<<<<<<<<<<
45159 *
45160 * def get_last_version(self):
45161 */
45162 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3377; __pyx_clineno = __LINE__45162; goto __pyx_L1_error;}
45163 __Pyx_GOTREF(__pyx_t_1);
45164 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_rollback_s, __pyx_v_oid)PyString_Format(__pyx_kp_s_Failed_to_rollback_s, __pyx_v_oid); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3377; __pyx_clineno = __LINE__45164; goto __pyx_L1_error;}
45165 __Pyx_GOTREF(__pyx_t_2);
45166 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3377; __pyx_clineno = __LINE__45166; goto __pyx_L1_error;}
45167 __Pyx_GOTREF(__pyx_t_5);
45168 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
45169 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45170 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
45171 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
45172 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3377; __pyx_clineno = __LINE__45172; goto __pyx_L1_error;}
45173
45174 /* "rados.pyx":3376
45175 * with nogil:
45176 * ret = rados_ioctx_selfmanaged_snap_rollback(self.io, _oid, _snap_id)
45177 * if ret != 0: # <<<<<<<<<<<<<<
45178 * raise make_ex(ret, "Failed to rollback %s" % oid)
45179 *
45180 */
45181 }
45182
45183 /* "rados.pyx":3357
45184 *
45185 * @requires(('oid', str_type), ('snap_id', int))
45186 * def rollback_self_managed_snap(self, oid, snap_id): # <<<<<<<<<<<<<<
45187 * """
45188 * Rolls an specific object back to a self-managed snapshot revision
45189 */
45190
45191 /* function exit code */
45192 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
45193 goto __pyx_L0;
45194 __pyx_L1_error:;
45195 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
45196 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
45197 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
45198 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
45199 __Pyx_AddTraceback("rados.Ioctx.rollback_self_managed_snap", __pyx_clineno, __pyx_lineno, __pyx_filename);
45200 __pyx_r = NULL((void*)0);
45201 __pyx_L0:;
45202 __Pyx_XDECREF(__pyx_v_oid)do { if ((__pyx_v_oid) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_oid))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_oid)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_oid)))); } while (0); } while (0)
;
45203 __Pyx_XGIVEREF(__pyx_r);
45204 __Pyx_RefNannyFinishContext();
45205 return __pyx_r;
45206}
45207
45208/* "rados.pyx":3379
45209 * raise make_ex(ret, "Failed to rollback %s" % oid)
45210 *
45211 * def get_last_version(self): # <<<<<<<<<<<<<<
45212 * """
45213 * Return the version of the last object read or written to.
45214 */
45215
45216/* Python wrapper */
45217static PyObject *__pyx_pw_5rados_5Ioctx_91get_last_version(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
45218static char __pyx_doc_5rados_5Ioctx_90get_last_version[] = "Ioctx.get_last_version(self)\n\n Return the version of the last object read or written to.\n\n This exposes the internal version number of the last object read or\n written via this io context\n\n :returns: version of the last object used\n ";
45219static PyObject *__pyx_pw_5rados_5Ioctx_91get_last_version(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
45220 PyObject *__pyx_r = 0;
45221 __Pyx_RefNannyDeclarations
45222 __Pyx_RefNannySetupContext("get_last_version (wrapper)", 0);
45223 __pyx_r = __pyx_pf_5rados_5Ioctx_90get_last_version(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
45224
45225 /* function exit code */
45226 __Pyx_RefNannyFinishContext();
45227 return __pyx_r;
45228}
45229
45230static PyObject *__pyx_pf_5rados_5Ioctx_90get_last_version(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
45231 uint64_t __pyx_v_ret;
45232 PyObject *__pyx_r = NULL((void*)0);
45233 __Pyx_RefNannyDeclarations
45234 PyObject *__pyx_t_1 = NULL((void*)0);
45235 PyObject *__pyx_t_2 = NULL((void*)0);
45236 PyObject *__pyx_t_3 = NULL((void*)0);
45237 int __pyx_lineno = 0;
45238 const char *__pyx_filename = NULL((void*)0);
45239 int __pyx_clineno = 0;
45240 __Pyx_RefNannySetupContext("get_last_version", 0);
45241
45242 /* "rados.pyx":3388
45243 * :returns: version of the last object used
45244 * """
45245 * self.require_ioctx_open() # <<<<<<<<<<<<<<
45246 * with nogil:
45247 * ret = rados_get_last_version(self.io)
45248 */
45249 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3388; __pyx_clineno = __LINE__45249; goto __pyx_L1_error;}
45250 __Pyx_GOTREF(__pyx_t_2);
45251 __pyx_t_3 = NULL((void*)0);
45252 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
45253 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
45254 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
45255 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
45256 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
45257 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45258 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45259 }
45260 }
45261 if (__pyx_t_3) {
45262 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3388; __pyx_clineno = __LINE__45262; goto __pyx_L1_error;}
45263 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
45264 } else {
45265 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3388; __pyx_clineno = __LINE__45265; goto __pyx_L1_error;}
45266 }
45267 __Pyx_GOTREF(__pyx_t_1);
45268 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45269 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
45270
45271 /* "rados.pyx":3389
45272 * """
45273 * self.require_ioctx_open()
45274 * with nogil: # <<<<<<<<<<<<<<
45275 * ret = rados_get_last_version(self.io)
45276 * return int(ret)
45277 */
45278 {
45279 #ifdef WITH_THREAD1
45280 PyThreadState *_save;
45281 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
45282 #endif
45283 /*try:*/ {
45284
45285 /* "rados.pyx":3390
45286 * self.require_ioctx_open()
45287 * with nogil:
45288 * ret = rados_get_last_version(self.io) # <<<<<<<<<<<<<<
45289 * return int(ret)
45290 *
45291 */
45292 __pyx_v_ret = rados_get_last_version(__pyx_v_self->io);
45293 }
45294
45295 /* "rados.pyx":3389
45296 * """
45297 * self.require_ioctx_open()
45298 * with nogil: # <<<<<<<<<<<<<<
45299 * ret = rados_get_last_version(self.io)
45300 * return int(ret)
45301 */
45302 /*finally:*/ {
45303 /*normal exit:*/{
45304 #ifdef WITH_THREAD1
45305 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
45306 #endif
45307 goto __pyx_L5;
45308 }
45309 __pyx_L5:;
45310 }
45311 }
45312
45313 /* "rados.pyx":3391
45314 * with nogil:
45315 * ret = rados_get_last_version(self.io)
45316 * return int(ret) # <<<<<<<<<<<<<<
45317 *
45318 * def create_write_op(self):
45319 */
45320 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
45321 __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3391; __pyx_clineno = __LINE__45321; goto __pyx_L1_error;}
45322 __Pyx_GOTREF(__pyx_t_1);
45323 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3391; __pyx_clineno = __LINE__45323; goto __pyx_L1_error;}
45324 __Pyx_GOTREF(__pyx_t_2);
45325 __Pyx_GIVEREF(__pyx_t_1);
45326 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_t_1);
45327 __pyx_t_1 = 0;
45328 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&PyInt_Type)), __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3391; __pyx_clineno = __LINE__45328; goto __pyx_L1_error;}
45329 __Pyx_GOTREF(__pyx_t_1);
45330 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45331 __pyx_r = __pyx_t_1;
45332 __pyx_t_1 = 0;
45333 goto __pyx_L0;
45334
45335 /* "rados.pyx":3379
45336 * raise make_ex(ret, "Failed to rollback %s" % oid)
45337 *
45338 * def get_last_version(self): # <<<<<<<<<<<<<<
45339 * """
45340 * Return the version of the last object read or written to.
45341 */
45342
45343 /* function exit code */
45344 __pyx_L1_error:;
45345 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
45346 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
45347 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
45348 __Pyx_AddTraceback("rados.Ioctx.get_last_version", __pyx_clineno, __pyx_lineno, __pyx_filename);
45349 __pyx_r = NULL((void*)0);
45350 __pyx_L0:;
45351 __Pyx_XGIVEREF(__pyx_r);
45352 __Pyx_RefNannyFinishContext();
45353 return __pyx_r;
45354}
45355
45356/* "rados.pyx":3393
45357 * return int(ret)
45358 *
45359 * def create_write_op(self): # <<<<<<<<<<<<<<
45360 * """
45361 * create write operation object.
45362 */
45363
45364/* Python wrapper */
45365static PyObject *__pyx_pw_5rados_5Ioctx_93create_write_op(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
45366static char __pyx_doc_5rados_5Ioctx_92create_write_op[] = "Ioctx.create_write_op(self)\n\n create write operation object.\n need call release_write_op after use\n ";
45367static PyObject *__pyx_pw_5rados_5Ioctx_93create_write_op(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
45368 PyObject *__pyx_r = 0;
45369 __Pyx_RefNannyDeclarations
45370 __Pyx_RefNannySetupContext("create_write_op (wrapper)", 0);
45371 __pyx_r = __pyx_pf_5rados_5Ioctx_92create_write_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
45372
45373 /* function exit code */
45374 __Pyx_RefNannyFinishContext();
45375 return __pyx_r;
45376}
45377
45378static PyObject *__pyx_pf_5rados_5Ioctx_92create_write_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
45379 PyObject *__pyx_r = NULL((void*)0);
45380 __Pyx_RefNannyDeclarations
45381 PyObject *__pyx_t_1 = NULL((void*)0);
45382 PyObject *__pyx_t_2 = NULL((void*)0);
45383 PyObject *__pyx_t_3 = NULL((void*)0);
45384 int __pyx_lineno = 0;
45385 const char *__pyx_filename = NULL((void*)0);
45386 int __pyx_clineno = 0;
45387 __Pyx_RefNannySetupContext("create_write_op", 0);
45388
45389 /* "rados.pyx":3398
45390 * need call release_write_op after use
45391 * """
45392 * return WriteOp().create() # <<<<<<<<<<<<<<
45393 *
45394 * def create_read_op(self):
45395 */
45396 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
45397 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_WriteOp), __pyx_empty_tuple, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3398; __pyx_clineno = __LINE__45397; goto __pyx_L1_error;}
45398 __Pyx_GOTREF(__pyx_t_2);
45399 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_create); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3398; __pyx_clineno = __LINE__45399; goto __pyx_L1_error;}
45400 __Pyx_GOTREF(__pyx_t_3);
45401 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45402 __pyx_t_2 = NULL((void*)0);
45403 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
45404 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
45405 if (likely(__pyx_t_2)__builtin_expect(!!(__pyx_t_2), 1)) {
45406 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
45407 __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++);
45408 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45409 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45410 }
45411 }
45412 if (__pyx_t_2) {
45413 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3398; __pyx_clineno = __LINE__45413; goto __pyx_L1_error;}
45414 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45415 } else {
45416 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3398; __pyx_clineno = __LINE__45416; goto __pyx_L1_error;}
45417 }
45418 __Pyx_GOTREF(__pyx_t_1);
45419 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
45420 __pyx_r = __pyx_t_1;
45421 __pyx_t_1 = 0;
45422 goto __pyx_L0;
45423
45424 /* "rados.pyx":3393
45425 * return int(ret)
45426 *
45427 * def create_write_op(self): # <<<<<<<<<<<<<<
45428 * """
45429 * create write operation object.
45430 */
45431
45432 /* function exit code */
45433 __pyx_L1_error:;
45434 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
45435 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
45436 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
45437 __Pyx_AddTraceback("rados.Ioctx.create_write_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
45438 __pyx_r = NULL((void*)0);
45439 __pyx_L0:;
45440 __Pyx_XGIVEREF(__pyx_r);
45441 __Pyx_RefNannyFinishContext();
45442 return __pyx_r;
45443}
45444
45445/* "rados.pyx":3400
45446 * return WriteOp().create()
45447 *
45448 * def create_read_op(self): # <<<<<<<<<<<<<<
45449 * """
45450 * create read operation object.
45451 */
45452
45453/* Python wrapper */
45454static PyObject *__pyx_pw_5rados_5Ioctx_95create_read_op(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
45455static char __pyx_doc_5rados_5Ioctx_94create_read_op[] = "Ioctx.create_read_op(self)\n\n create read operation object.\n need call release_read_op after use\n ";
45456static PyObject *__pyx_pw_5rados_5Ioctx_95create_read_op(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
45457 PyObject *__pyx_r = 0;
45458 __Pyx_RefNannyDeclarations
45459 __Pyx_RefNannySetupContext("create_read_op (wrapper)", 0);
45460 __pyx_r = __pyx_pf_5rados_5Ioctx_94create_read_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
45461
45462 /* function exit code */
45463 __Pyx_RefNannyFinishContext();
45464 return __pyx_r;
45465}
45466
45467static PyObject *__pyx_pf_5rados_5Ioctx_94create_read_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
45468 PyObject *__pyx_r = NULL((void*)0);
45469 __Pyx_RefNannyDeclarations
45470 PyObject *__pyx_t_1 = NULL((void*)0);
45471 PyObject *__pyx_t_2 = NULL((void*)0);
45472 PyObject *__pyx_t_3 = NULL((void*)0);
45473 int __pyx_lineno = 0;
45474 const char *__pyx_filename = NULL((void*)0);
45475 int __pyx_clineno = 0;
45476 __Pyx_RefNannySetupContext("create_read_op", 0);
45477
45478 /* "rados.pyx":3405
45479 * need call release_read_op after use
45480 * """
45481 * return ReadOp().create() # <<<<<<<<<<<<<<
45482 *
45483 * def release_write_op(self, write_op):
45484 */
45485 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
45486 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_ReadOp), __pyx_empty_tuple, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3405; __pyx_clineno = __LINE__45486; goto __pyx_L1_error;}
45487 __Pyx_GOTREF(__pyx_t_2);
45488 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_create); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3405; __pyx_clineno = __LINE__45488; goto __pyx_L1_error;}
45489 __Pyx_GOTREF(__pyx_t_3);
45490 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45491 __pyx_t_2 = NULL((void*)0);
45492 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
45493 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
45494 if (likely(__pyx_t_2)__builtin_expect(!!(__pyx_t_2), 1)) {
45495 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
45496 __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++);
45497 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45498 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45499 }
45500 }
45501 if (__pyx_t_2) {
45502 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3405; __pyx_clineno = __LINE__45502; goto __pyx_L1_error;}
45503 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45504 } else {
45505 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3405; __pyx_clineno = __LINE__45505; goto __pyx_L1_error;}
45506 }
45507 __Pyx_GOTREF(__pyx_t_1);
45508 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
45509 __pyx_r = __pyx_t_1;
45510 __pyx_t_1 = 0;
45511 goto __pyx_L0;
45512
45513 /* "rados.pyx":3400
45514 * return WriteOp().create()
45515 *
45516 * def create_read_op(self): # <<<<<<<<<<<<<<
45517 * """
45518 * create read operation object.
45519 */
45520
45521 /* function exit code */
45522 __pyx_L1_error:;
45523 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
45524 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
45525 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
45526 __Pyx_AddTraceback("rados.Ioctx.create_read_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
45527 __pyx_r = NULL((void*)0);
45528 __pyx_L0:;
45529 __Pyx_XGIVEREF(__pyx_r);
45530 __Pyx_RefNannyFinishContext();
45531 return __pyx_r;
45532}
45533
45534/* "rados.pyx":3407
45535 * return ReadOp().create()
45536 *
45537 * def release_write_op(self, write_op): # <<<<<<<<<<<<<<
45538 * """
45539 * release memory alloc by create_write_op
45540 */
45541
45542/* Python wrapper */
45543static PyObject *__pyx_pw_5rados_5Ioctx_97release_write_op(PyObject *__pyx_v_self, PyObject *__pyx_v_write_op); /*proto*/
45544static char __pyx_doc_5rados_5Ioctx_96release_write_op[] = "Ioctx.release_write_op(self, write_op)\n\n release memory alloc by create_write_op\n ";
45545static PyObject *__pyx_pw_5rados_5Ioctx_97release_write_op(PyObject *__pyx_v_self, PyObject *__pyx_v_write_op) {
45546 PyObject *__pyx_r = 0;
45547 __Pyx_RefNannyDeclarations
45548 __Pyx_RefNannySetupContext("release_write_op (wrapper)", 0);
45549 __pyx_r = __pyx_pf_5rados_5Ioctx_96release_write_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_write_op));
45550
45551 /* function exit code */
45552 __Pyx_RefNannyFinishContext();
45553 return __pyx_r;
45554}
45555
45556static PyObject *__pyx_pf_5rados_5Ioctx_96release_write_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op) {
45557 PyObject *__pyx_r = NULL((void*)0);
45558 __Pyx_RefNannyDeclarations
45559 PyObject *__pyx_t_1 = NULL((void*)0);
45560 PyObject *__pyx_t_2 = NULL((void*)0);
45561 PyObject *__pyx_t_3 = NULL((void*)0);
45562 int __pyx_lineno = 0;
45563 const char *__pyx_filename = NULL((void*)0);
45564 int __pyx_clineno = 0;
45565 __Pyx_RefNannySetupContext("release_write_op", 0);
45566
45567 /* "rados.pyx":3411
45568 * release memory alloc by create_write_op
45569 * """
45570 * write_op.release() # <<<<<<<<<<<<<<
45571 *
45572 * def release_read_op(self, read_op):
45573 */
45574 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_write_op, __pyx_n_s_release); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3411; __pyx_clineno = __LINE__45574; goto __pyx_L1_error;}
45575 __Pyx_GOTREF(__pyx_t_2);
45576 __pyx_t_3 = NULL((void*)0);
45577 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
45578 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
45579 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
45580 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
45581 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
45582 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45583 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45584 }
45585 }
45586 if (__pyx_t_3) {
45587 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3411; __pyx_clineno = __LINE__45587; goto __pyx_L1_error;}
45588 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
45589 } else {
45590 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3411; __pyx_clineno = __LINE__45590; goto __pyx_L1_error;}
45591 }
45592 __Pyx_GOTREF(__pyx_t_1);
45593 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45594 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
45595
45596 /* "rados.pyx":3407
45597 * return ReadOp().create()
45598 *
45599 * def release_write_op(self, write_op): # <<<<<<<<<<<<<<
45600 * """
45601 * release memory alloc by create_write_op
45602 */
45603
45604 /* function exit code */
45605 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
45606 goto __pyx_L0;
45607 __pyx_L1_error:;
45608 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
45609 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
45610 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
45611 __Pyx_AddTraceback("rados.Ioctx.release_write_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
45612 __pyx_r = NULL((void*)0);
45613 __pyx_L0:;
45614 __Pyx_XGIVEREF(__pyx_r);
45615 __Pyx_RefNannyFinishContext();
45616 return __pyx_r;
45617}
45618
45619/* "rados.pyx":3413
45620 * write_op.release()
45621 *
45622 * def release_read_op(self, read_op): # <<<<<<<<<<<<<<
45623 * """
45624 * release memory alloc by create_read_op
45625 */
45626
45627/* Python wrapper */
45628static PyObject *__pyx_pw_5rados_5Ioctx_99release_read_op(PyObject *__pyx_v_self, PyObject *__pyx_v_read_op); /*proto*/
45629static char __pyx_doc_5rados_5Ioctx_98release_read_op[] = "Ioctx.release_read_op(self, read_op)\n\n release memory alloc by create_read_op\n :para read_op: read_op object\n :type: int\n ";
45630static PyObject *__pyx_pw_5rados_5Ioctx_99release_read_op(PyObject *__pyx_v_self, PyObject *__pyx_v_read_op) {
45631 PyObject *__pyx_r = 0;
45632 __Pyx_RefNannyDeclarations
45633 __Pyx_RefNannySetupContext("release_read_op (wrapper)", 0);
45634 __pyx_r = __pyx_pf_5rados_5Ioctx_98release_read_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_read_op));
45635
45636 /* function exit code */
45637 __Pyx_RefNannyFinishContext();
45638 return __pyx_r;
45639}
45640
45641static PyObject *__pyx_pf_5rados_5Ioctx_98release_read_op(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op) {
45642 PyObject *__pyx_r = NULL((void*)0);
45643 __Pyx_RefNannyDeclarations
45644 PyObject *__pyx_t_1 = NULL((void*)0);
45645 PyObject *__pyx_t_2 = NULL((void*)0);
45646 PyObject *__pyx_t_3 = NULL((void*)0);
45647 int __pyx_lineno = 0;
45648 const char *__pyx_filename = NULL((void*)0);
45649 int __pyx_clineno = 0;
45650 __Pyx_RefNannySetupContext("release_read_op", 0);
45651
45652 /* "rados.pyx":3419
45653 * :type: int
45654 * """
45655 * read_op.release() # <<<<<<<<<<<<<<
45656 *
45657 * @requires(('write_op', WriteOp), ('keys', tuple), ('values', tuple))
45658 */
45659 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_read_op, __pyx_n_s_release); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3419; __pyx_clineno = __LINE__45659; goto __pyx_L1_error;}
45660 __Pyx_GOTREF(__pyx_t_2);
45661 __pyx_t_3 = NULL((void*)0);
45662 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
45663 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
45664 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
45665 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
45666 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
45667 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45668 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45669 }
45670 }
45671 if (__pyx_t_3) {
45672 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3419; __pyx_clineno = __LINE__45672; goto __pyx_L1_error;}
45673 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
45674 } else {
45675 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3419; __pyx_clineno = __LINE__45675; goto __pyx_L1_error;}
45676 }
45677 __Pyx_GOTREF(__pyx_t_1);
45678 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
45679 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
45680
45681 /* "rados.pyx":3413
45682 * write_op.release()
45683 *
45684 * def release_read_op(self, read_op): # <<<<<<<<<<<<<<
45685 * """
45686 * release memory alloc by create_read_op
45687 */
45688
45689 /* function exit code */
45690 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
45691 goto __pyx_L0;
45692 __pyx_L1_error:;
45693 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
45694 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
45695 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
45696 __Pyx_AddTraceback("rados.Ioctx.release_read_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
45697 __pyx_r = NULL((void*)0);
45698 __pyx_L0:;
45699 __Pyx_XGIVEREF(__pyx_r);
45700 __Pyx_RefNannyFinishContext();
45701 return __pyx_r;
45702}
45703
45704/* "rados.pyx":3422
45705 *
45706 * @requires(('write_op', WriteOp), ('keys', tuple), ('values', tuple))
45707 * def set_omap(self, write_op, keys, values): # <<<<<<<<<<<<<<
45708 * """
45709 * set keys values to write_op
45710 */
45711
45712/* Python wrapper */
45713static PyObject *__pyx_pw_5rados_5Ioctx_101set_omap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
45714static char __pyx_doc_5rados_5Ioctx_100set_omap[] = "Ioctx.set_omap(self, write_op, keys, values)\n\n set keys values to write_op\n :para write_op: write_operation object\n :type write_op: WriteOp\n :para keys: a tuple of keys\n :type keys: tuple\n :para values: a tuple of values\n :type values: tuple\n ";
45715static PyObject *__pyx_pw_5rados_5Ioctx_101set_omap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
45716 PyObject *__pyx_v_write_op = 0;
45717 PyObject *__pyx_v_keys = 0;
45718 PyObject *__pyx_v_values = 0;
45719 int __pyx_lineno = 0;
45720 const char *__pyx_filename = NULL((void*)0);
45721 int __pyx_clineno = 0;
45722 PyObject *__pyx_r = 0;
45723 __Pyx_RefNannyDeclarations
45724 __Pyx_RefNannySetupContext("set_omap (wrapper)", 0);
45725 {
45726 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_write_op,&__pyx_n_s_keys,&__pyx_n_s_values,0};
45727 PyObject* values[3] = {0,0,0};
45728 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
45729 Py_ssize_t kw_args;
45730 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
45731 switch (pos_args) {
45732 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
45733 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
45734 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
45735 case 0: break;
45736 default: goto __pyx_L5_argtuple_error;
45737 }
45738 kw_args = PyDict_Size(__pyx_kwds);
45739 switch (pos_args) {
45740 case 0:
45741 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op
)) != 0), 1)
) kw_args--;
45742 else goto __pyx_L5_argtuple_error;
45743 case 1:
45744 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_keys)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_keys
)) != 0), 1)
) kw_args--;
45745 else {
45746 __Pyx_RaiseArgtupleInvalid("set_omap", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3422; __pyx_clineno = __LINE__45746; goto __pyx_L3_error;}
45747 }
45748 case 2:
45749 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_values)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_values
)) != 0), 1)
) kw_args--;
45750 else {
45751 __Pyx_RaiseArgtupleInvalid("set_omap", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3422; __pyx_clineno = __LINE__45751; goto __pyx_L3_error;}
45752 }
45753 }
45754 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
45755 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_omap") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "set_omap") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3422; __pyx_clineno = __LINE__45755; goto __pyx_L3_error;}
45756 }
45757 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
45758 goto __pyx_L5_argtuple_error;
45759 } else {
45760 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
45761 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
45762 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
45763 }
45764 __pyx_v_write_op = values[0];
45765 __pyx_v_keys = values[1];
45766 __pyx_v_values = values[2];
45767 }
45768 goto __pyx_L4_argument_unpacking_done;
45769 __pyx_L5_argtuple_error:;
45770 __Pyx_RaiseArgtupleInvalid("set_omap", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3422; __pyx_clineno = __LINE__45770; goto __pyx_L3_error;}
45771 __pyx_L3_error:;
45772 __Pyx_AddTraceback("rados.Ioctx.set_omap", __pyx_clineno, __pyx_lineno, __pyx_filename);
45773 __Pyx_RefNannyFinishContext();
45774 return NULL((void*)0);
45775 __pyx_L4_argument_unpacking_done:;
45776 __pyx_r = __pyx_pf_5rados_5Ioctx_100set_omap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_write_op, __pyx_v_keys, __pyx_v_values);
45777
45778 /* function exit code */
45779 __Pyx_RefNannyFinishContext();
45780 return __pyx_r;
45781}
45782
45783static PyObject *__pyx_pf_5rados_5Ioctx_100set_omap(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_keys, PyObject *__pyx_v_values) {
45784 PyObject *__pyx_v_lens = NULL((void*)0);
45785 struct __pyx_obj_5rados_WriteOp *__pyx_v__write_op = 0;
45786 size_t __pyx_v_key_num;
45787 char **__pyx_v__keys;
45788 char **__pyx_v__values;
45789 size_t *__pyx_v__lens;
45790 PyObject *__pyx_v_v = NULL((void*)0);
45791 PyObject *__pyx_r = NULL((void*)0);
45792 __Pyx_RefNannyDeclarations
45793 Py_ssize_t __pyx_t_1;
45794 Py_ssize_t __pyx_t_2;
45795 int __pyx_t_3;
45796 PyObject *__pyx_t_4 = NULL((void*)0);
45797 PyObject *__pyx_t_5 = NULL((void*)0);
45798 PyObject *__pyx_t_6 = NULL((void*)0);
45799 PyObject *__pyx_t_7 = NULL((void*)0);
45800 PyObject *(*__pyx_t_8)(PyObject *);
45801 int __pyx_lineno = 0;
45802 const char *__pyx_filename = NULL((void*)0);
45803 int __pyx_clineno = 0;
45804 __Pyx_RefNannySetupContext("set_omap", 0);
45805 __Pyx_INCREF(__pyx_v_keys)( ((PyObject*)(__pyx_v_keys))->ob_refcnt++);
45806 __Pyx_INCREF(__pyx_v_values)( ((PyObject*)(__pyx_v_values))->ob_refcnt++);
45807
45808 /* "rados.pyx":3433
45809 * """
45810 *
45811 * if len(keys) != len(values): # <<<<<<<<<<<<<<
45812 * raise Error("Rados(): keys and values must have the same number of items")
45813 *
45814 */
45815 __pyx_t_1 = PyObject_LengthPyObject_Size(__pyx_v_keys); if (unlikely(__pyx_t_1 == -1)__builtin_expect(!!(__pyx_t_1 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3433; __pyx_clineno = __LINE__45815; goto __pyx_L1_error;}
45816 __pyx_t_2 = PyObject_LengthPyObject_Size(__pyx_v_values); if (unlikely(__pyx_t_2 == -1)__builtin_expect(!!(__pyx_t_2 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3433; __pyx_clineno = __LINE__45816; goto __pyx_L1_error;}
45817 __pyx_t_3 = ((__pyx_t_1 != __pyx_t_2) != 0);
45818 if (__pyx_t_3) {
45819
45820 /* "rados.pyx":3434
45821 *
45822 * if len(keys) != len(values):
45823 * raise Error("Rados(): keys and values must have the same number of items") # <<<<<<<<<<<<<<
45824 *
45825 * keys = cstr_list(keys, 'keys')
45826 */
45827 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3434; __pyx_clineno = __LINE__45827; goto __pyx_L1_error;}
45828 __Pyx_GOTREF(__pyx_t_4);
45829 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__60, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3434; __pyx_clineno = __LINE__45829; goto __pyx_L1_error;}
45830 __Pyx_GOTREF(__pyx_t_5);
45831 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
45832 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
45833 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
45834 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3434; __pyx_clineno = __LINE__45834; goto __pyx_L1_error;}
45835
45836 /* "rados.pyx":3433
45837 * """
45838 *
45839 * if len(keys) != len(values): # <<<<<<<<<<<<<<
45840 * raise Error("Rados(): keys and values must have the same number of items")
45841 *
45842 */
45843 }
45844
45845 /* "rados.pyx":3436
45846 * raise Error("Rados(): keys and values must have the same number of items")
45847 *
45848 * keys = cstr_list(keys, 'keys') # <<<<<<<<<<<<<<
45849 * values = cstr_list(values, 'values')
45850 * lens = [len(v) for v in values]
45851 */
45852 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3436; __pyx_clineno = __LINE__45852; goto __pyx_L1_error;}
45853 __Pyx_GOTREF(__pyx_t_4);
45854 __pyx_t_6 = NULL((void*)0);
45855 __pyx_t_2 = 0;
45856 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
45857 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
45858 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
45859 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
45860 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
45861 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45862 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45863 __pyx_t_2 = 1;
45864 }
45865 }
45866 __pyx_t_7 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3436; __pyx_clineno = __LINE__45866; goto __pyx_L1_error;}
45867 __Pyx_GOTREF(__pyx_t_7);
45868 if (__pyx_t_6) {
45869 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
45870 }
45871 __Pyx_INCREF(__pyx_v_keys)( ((PyObject*)(__pyx_v_keys))->ob_refcnt++);
45872 __Pyx_GIVEREF(__pyx_v_keys);
45873 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_2, __pyx_v_keys)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_2] = __pyx_v_keys
)
;
45874 __Pyx_INCREF(__pyx_n_s_keys)( ((PyObject*)(__pyx_n_s_keys))->ob_refcnt++);
45875 __Pyx_GIVEREF(__pyx_n_s_keys);
45876 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_2, __pyx_n_s_keys)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_2] = __pyx_n_s_keys
)
;
45877 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3436; __pyx_clineno = __LINE__45877; goto __pyx_L1_error;}
45878 __Pyx_GOTREF(__pyx_t_5);
45879 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
45880 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
45881 __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_5)do { PyObject *tmp = (PyObject *) __pyx_v_keys; __pyx_v_keys =
__pyx_t_5; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
45882 __pyx_t_5 = 0;
45883
45884 /* "rados.pyx":3437
45885 *
45886 * keys = cstr_list(keys, 'keys')
45887 * values = cstr_list(values, 'values') # <<<<<<<<<<<<<<
45888 * lens = [len(v) for v in values]
45889 * cdef:
45890 */
45891 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3437; __pyx_clineno = __LINE__45891; goto __pyx_L1_error;}
45892 __Pyx_GOTREF(__pyx_t_4);
45893 __pyx_t_7 = NULL((void*)0);
45894 __pyx_t_2 = 0;
45895 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
45896 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
45897 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
45898 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
45899 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
45900 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
45901 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
45902 __pyx_t_2 = 1;
45903 }
45904 }
45905 __pyx_t_6 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3437; __pyx_clineno = __LINE__45905; goto __pyx_L1_error;}
45906 __Pyx_GOTREF(__pyx_t_6);
45907 if (__pyx_t_7) {
45908 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
45909 }
45910 __Pyx_INCREF(__pyx_v_values)( ((PyObject*)(__pyx_v_values))->ob_refcnt++);
45911 __Pyx_GIVEREF(__pyx_v_values);
45912 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_2, __pyx_v_values)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_2] = __pyx_v_values
)
;
45913 __Pyx_INCREF(__pyx_n_s_values)( ((PyObject*)(__pyx_n_s_values))->ob_refcnt++);
45914 __Pyx_GIVEREF(__pyx_n_s_values);
45915 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_2, __pyx_n_s_values)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_2] = __pyx_n_s_values
)
;
45916 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3437; __pyx_clineno = __LINE__45916; goto __pyx_L1_error;}
45917 __Pyx_GOTREF(__pyx_t_5);
45918 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
45919 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
45920 __Pyx_DECREF_SET(__pyx_v_values, __pyx_t_5)do { PyObject *tmp = (PyObject *) __pyx_v_values; __pyx_v_values
= __pyx_t_5; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
45921 __pyx_t_5 = 0;
45922
45923 /* "rados.pyx":3438
45924 * keys = cstr_list(keys, 'keys')
45925 * values = cstr_list(values, 'values')
45926 * lens = [len(v) for v in values] # <<<<<<<<<<<<<<
45927 * cdef:
45928 * WriteOp _write_op = write_op
45929 */
45930 __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45930; goto __pyx_L1_error;}
45931 __Pyx_GOTREF(__pyx_t_5);
45932 if (likely(PyList_CheckExact(__pyx_v_values))__builtin_expect(!!(((((PyObject*)(__pyx_v_values))->ob_type
) == &PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_v_values)((((PyObject*)(__pyx_v_values))->ob_type) == &PyTuple_Type
)
) {
45933 __pyx_t_4 = __pyx_v_values; __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_2 = 0;
45934 __pyx_t_8 = NULL((void*)0);
45935 } else {
45936 __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_values); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45936; goto __pyx_L1_error;}
45937 __Pyx_GOTREF(__pyx_t_4);
45938 __pyx_t_8 = Py_TYPE(__pyx_t_4)(((PyObject*)(__pyx_t_4))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45938; goto __pyx_L1_error;}
45939 }
45940 for (;;) {
45941 if (likely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 1)) {
45942 if (likely(PyList_CheckExact(__pyx_t_4))__builtin_expect(!!(((((PyObject*)(__pyx_t_4))->ob_type) ==
&PyList_Type)), 1)
) {
45943 if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)(((PyVarObject*)(__pyx_t_4))->ob_size)) break;
45944 #if CYTHON_COMPILING_IN_CPYTHON1
45945 __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2)(((PyListObject *)(__pyx_t_4))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45945; goto __pyx_L1_error;}
45946 #else
45947 __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_2)( (((PyObject*)(__pyx_t_4))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_4, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45947; goto __pyx_L1_error;}
45948 __Pyx_GOTREF(__pyx_t_6);
45949 #endif
45950 } else {
45951 if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)(((PyVarObject*)(__pyx_t_4))->ob_size)) break;
45952 #if CYTHON_COMPILING_IN_CPYTHON1
45953 __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2)(((PyTupleObject *)(__pyx_t_4))->ob_item[__pyx_t_2]); __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++); __pyx_t_2++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45953; goto __pyx_L1_error;}
45954 #else
45955 __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_2)( (((PyObject*)(__pyx_t_4))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_4, __pyx_t_2) )
; __pyx_t_2++; if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45955; goto __pyx_L1_error;}
45956 __Pyx_GOTREF(__pyx_t_6);
45957 #endif
45958 }
45959 } else {
45960 __pyx_t_6 = __pyx_t_8(__pyx_t_4);
45961 if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {
45962 PyObject* exc_type = PyErr_Occurred();
45963 if (exc_type) {
45964 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
45965 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45965; goto __pyx_L1_error;}
45966 }
45967 break;
45968 }
45969 __Pyx_GOTREF(__pyx_t_6);
45970 }
45971 __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_6)do { PyObject *tmp = (PyObject *) __pyx_v_v; __pyx_v_v = __pyx_t_6
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
45972 __pyx_t_6 = 0;
45973 __pyx_t_1 = PyObject_LengthPyObject_Size(__pyx_v_v); if (unlikely(__pyx_t_1 == -1)__builtin_expect(!!(__pyx_t_1 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45973; goto __pyx_L1_error;}
45974 __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45974; goto __pyx_L1_error;}
45975 __Pyx_GOTREF(__pyx_t_6);
45976 if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_6))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_5, (PyObject
*)__pyx_t_6)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3438; __pyx_clineno = __LINE__45976; goto __pyx_L1_error;}
45977 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
45978 }
45979 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
45980 __pyx_v_lens = ((PyObject*)__pyx_t_5);
45981 __pyx_t_5 = 0;
45982
45983 /* "rados.pyx":3440
45984 * lens = [len(v) for v in values]
45985 * cdef:
45986 * WriteOp _write_op = write_op # <<<<<<<<<<<<<<
45987 * size_t key_num = len(keys)
45988 * char **_keys = to_bytes_array(keys)
45989 */
45990 if (!(likely(((__pyx_v_write_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp)))__builtin_expect(!!(((__pyx_v_write_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3440; __pyx_clineno = __LINE__45990; goto __pyx_L1_error;}
45991 __pyx_t_5 = __pyx_v_write_op;
45992 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
45993 __pyx_v__write_op = ((struct __pyx_obj_5rados_WriteOp *)__pyx_t_5);
45994 __pyx_t_5 = 0;
45995
45996 /* "rados.pyx":3441
45997 * cdef:
45998 * WriteOp _write_op = write_op
45999 * size_t key_num = len(keys) # <<<<<<<<<<<<<<
46000 * char **_keys = to_bytes_array(keys)
46001 * char **_values = to_bytes_array(values)
46002 */
46003 __pyx_t_2 = PyObject_LengthPyObject_Size(__pyx_v_keys); if (unlikely(__pyx_t_2 == -1)__builtin_expect(!!(__pyx_t_2 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3441; __pyx_clineno = __LINE__46003; goto __pyx_L1_error;}
46004 __pyx_v_key_num = __pyx_t_2;
46005
46006 /* "rados.pyx":3442
46007 * WriteOp _write_op = write_op
46008 * size_t key_num = len(keys)
46009 * char **_keys = to_bytes_array(keys) # <<<<<<<<<<<<<<
46010 * char **_values = to_bytes_array(values)
46011 * size_t *_lens = to_csize_t_array(lens)
46012 */
46013 __pyx_v__keys = __pyx_f_5rados_to_bytes_array(__pyx_v_keys);
46014
46015 /* "rados.pyx":3443
46016 * size_t key_num = len(keys)
46017 * char **_keys = to_bytes_array(keys)
46018 * char **_values = to_bytes_array(values) # <<<<<<<<<<<<<<
46019 * size_t *_lens = to_csize_t_array(lens)
46020 *
46021 */
46022 __pyx_v__values = __pyx_f_5rados_to_bytes_array(__pyx_v_values);
46023
46024 /* "rados.pyx":3444
46025 * char **_keys = to_bytes_array(keys)
46026 * char **_values = to_bytes_array(values)
46027 * size_t *_lens = to_csize_t_array(lens) # <<<<<<<<<<<<<<
46028 *
46029 * try:
46030 */
46031 __pyx_v__lens = __pyx_f_5rados_to_csize_t_array(__pyx_v_lens);
46032
46033 /* "rados.pyx":3446
46034 * size_t *_lens = to_csize_t_array(lens)
46035 *
46036 * try: # <<<<<<<<<<<<<<
46037 * with nogil:
46038 * rados_write_op_omap_set(_write_op.write_op,
46039 */
46040 /*try:*/ {
46041
46042 /* "rados.pyx":3447
46043 *
46044 * try:
46045 * with nogil: # <<<<<<<<<<<<<<
46046 * rados_write_op_omap_set(_write_op.write_op,
46047 * <const char**>_keys,
46048 */
46049 {
46050 #ifdef WITH_THREAD1
46051 PyThreadState *_save;
46052 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
46053 #endif
46054 /*try:*/ {
46055
46056 /* "rados.pyx":3448
46057 * try:
46058 * with nogil:
46059 * rados_write_op_omap_set(_write_op.write_op, # <<<<<<<<<<<<<<
46060 * <const char**>_keys,
46061 * <const char**>_values,
46062 */
46063 rados_write_op_omap_set(__pyx_v__write_op->write_op, ((char const **)__pyx_v__keys), ((char const **)__pyx_v__values), ((size_t const *)__pyx_v__lens), __pyx_v_key_num);
46064 }
46065
46066 /* "rados.pyx":3447
46067 *
46068 * try:
46069 * with nogil: # <<<<<<<<<<<<<<
46070 * rados_write_op_omap_set(_write_op.write_op,
46071 * <const char**>_keys,
46072 */
46073 /*finally:*/ {
46074 /*normal exit:*/{
46075 #ifdef WITH_THREAD1
46076 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
46077 #endif
46078 goto __pyx_L11;
46079 }
46080 __pyx_L11:;
46081 }
46082 }
46083 }
46084
46085 /* "rados.pyx":3453
46086 * <const size_t*>_lens, key_num)
46087 * finally:
46088 * free(_keys) # <<<<<<<<<<<<<<
46089 * free(_values)
46090 * free(_lens)
46091 */
46092 /*finally:*/ {
46093 /*normal exit:*/{
46094 free(__pyx_v__keys);
46095
46096 /* "rados.pyx":3454
46097 * finally:
46098 * free(_keys)
46099 * free(_values) # <<<<<<<<<<<<<<
46100 * free(_lens)
46101 *
46102 */
46103 free(__pyx_v__values);
46104
46105 /* "rados.pyx":3455
46106 * free(_keys)
46107 * free(_values)
46108 * free(_lens) # <<<<<<<<<<<<<<
46109 *
46110 * @requires(('write_op', WriteOp), ('oid', str_type), ('mtime', opt(int)), ('flags', opt(int)))
46111 */
46112 free(__pyx_v__lens);
46113 goto __pyx_L8;
46114 }
46115 __pyx_L8:;
46116 }
46117
46118 /* "rados.pyx":3422
46119 *
46120 * @requires(('write_op', WriteOp), ('keys', tuple), ('values', tuple))
46121 * def set_omap(self, write_op, keys, values): # <<<<<<<<<<<<<<
46122 * """
46123 * set keys values to write_op
46124 */
46125
46126 /* function exit code */
46127 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
46128 goto __pyx_L0;
46129 __pyx_L1_error:;
46130 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
46131 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
46132 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
46133 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
46134 __Pyx_AddTraceback("rados.Ioctx.set_omap", __pyx_clineno, __pyx_lineno, __pyx_filename);
46135 __pyx_r = NULL((void*)0);
46136 __pyx_L0:;
46137 __Pyx_XDECREF(__pyx_v_lens)do { if ((__pyx_v_lens) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_lens))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_lens)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_lens)))); } while (0); } while
(0)
;
46138 __Pyx_XDECREF((PyObject *)__pyx_v__write_op)do { if (((PyObject *)__pyx_v__write_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__write_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__write_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__write_op)))); } while (
0); } while (0)
;
46139 __Pyx_XDECREF(__pyx_v_v)do { if ((__pyx_v_v) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_v))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_v_v)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_v)))); } while (0); } while (0)
;
46140 __Pyx_XDECREF(__pyx_v_keys)do { if ((__pyx_v_keys) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_keys))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_keys)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_keys)))); } while (0); } while
(0)
;
46141 __Pyx_XDECREF(__pyx_v_values)do { if ((__pyx_v_values) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_values))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_values)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_values)))); } while
(0); } while (0)
;
46142 __Pyx_XGIVEREF(__pyx_r);
46143 __Pyx_RefNannyFinishContext();
46144 return __pyx_r;
46145}
46146
46147/* "rados.pyx":3458
46148 *
46149 * @requires(('write_op', WriteOp), ('oid', str_type), ('mtime', opt(int)), ('flags', opt(int)))
46150 * def operate_write_op(self, write_op, oid, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
46151 * """
46152 * execute the real write operation
46153 */
46154
46155/* Python wrapper */
46156static PyObject *__pyx_pw_5rados_5Ioctx_103operate_write_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46157static char __pyx_doc_5rados_5Ioctx_102operate_write_op[] = "Ioctx.operate_write_op(self, write_op, oid, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG)\n\n execute the real write operation\n :para write_op: write operation object\n :type write_op: WriteOp\n :para oid: object name\n :type oid: str\n :para mtime: the time to set the mtime to, 0 for the current time\n :type mtime: int\n :para flags: flags to apply to the entire operation\n :type flags: int\n ";
46158static PyObject *__pyx_pw_5rados_5Ioctx_103operate_write_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46159 PyObject *__pyx_v_write_op = 0;
46160 PyObject *__pyx_v_oid = 0;
46161 PyObject *__pyx_v_mtime = 0;
46162 PyObject *__pyx_v_flags = 0;
46163 int __pyx_lineno = 0;
46164 const char *__pyx_filename = NULL((void*)0);
46165 int __pyx_clineno = 0;
46166 PyObject *__pyx_r = 0;
46167 __Pyx_RefNannyDeclarations
46168 __Pyx_RefNannySetupContext("operate_write_op (wrapper)", 0);
46169 {
46170 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_write_op,&__pyx_n_s_oid,&__pyx_n_s_mtime,&__pyx_n_s_flags,0};
46171 PyObject* values[4] = {0,0,0,0};
46172 values[2] = ((PyObject *)__pyx_int_0);
46173 values[3] = __pyx_k__61;
46174 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
46175 Py_ssize_t kw_args;
46176 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
46177 switch (pos_args) {
46178 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
46179 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
46180 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
46181 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
46182 case 0: break;
46183 default: goto __pyx_L5_argtuple_error;
46184 }
46185 kw_args = PyDict_Size(__pyx_kwds);
46186 switch (pos_args) {
46187 case 0:
46188 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op
)) != 0), 1)
) kw_args--;
46189 else goto __pyx_L5_argtuple_error;
46190 case 1:
46191 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid
)) != 0), 1)
) kw_args--;
46192 else {
46193 __Pyx_RaiseArgtupleInvalid("operate_write_op", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3458; __pyx_clineno = __LINE__46193; goto __pyx_L3_error;}
46194 }
46195 case 2:
46196 if (kw_args > 0) {
46197 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_mtime);
46198 if (value) { values[2] = value; kw_args--; }
46199 }
46200 case 3:
46201 if (kw_args > 0) {
46202 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags);
46203 if (value) { values[3] = value; kw_args--; }
46204 }
46205 }
46206 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
46207 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "operate_write_op") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "operate_write_op") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3458; __pyx_clineno = __LINE__46207; goto __pyx_L3_error;}
46208 }
46209 } else {
46210 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
46211 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
46212 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
46213 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
46214 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
46215 break;
46216 default: goto __pyx_L5_argtuple_error;
46217 }
46218 }
46219 __pyx_v_write_op = values[0];
46220 __pyx_v_oid = values[1];
46221 __pyx_v_mtime = values[2];
46222 __pyx_v_flags = values[3];
46223 }
46224 goto __pyx_L4_argument_unpacking_done;
46225 __pyx_L5_argtuple_error:;
46226 __Pyx_RaiseArgtupleInvalid("operate_write_op", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3458; __pyx_clineno = __LINE__46226; goto __pyx_L3_error;}
46227 __pyx_L3_error:;
46228 __Pyx_AddTraceback("rados.Ioctx.operate_write_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
46229 __Pyx_RefNannyFinishContext();
46230 return NULL((void*)0);
46231 __pyx_L4_argument_unpacking_done:;
46232 __pyx_r = __pyx_pf_5rados_5Ioctx_102operate_write_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_write_op, __pyx_v_oid, __pyx_v_mtime, __pyx_v_flags);
46233
46234 /* function exit code */
46235 __Pyx_RefNannyFinishContext();
46236 return __pyx_r;
46237}
46238
46239static PyObject *__pyx_pf_5rados_5Ioctx_102operate_write_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_mtime, PyObject *__pyx_v_flags) {
46240 struct __pyx_obj_5rados_WriteOp *__pyx_v__write_op = 0;
46241 char *__pyx_v__oid;
46242 time_t __pyx_v__mtime;
46243 int __pyx_v__flags;
46244 int __pyx_v_ret;
46245 PyObject *__pyx_r = NULL((void*)0);
46246 __Pyx_RefNannyDeclarations
46247 PyObject *__pyx_t_1 = NULL((void*)0);
46248 PyObject *__pyx_t_2 = NULL((void*)0);
46249 PyObject *__pyx_t_3 = NULL((void*)0);
46250 Py_ssize_t __pyx_t_4;
46251 PyObject *__pyx_t_5 = NULL((void*)0);
46252 char *__pyx_t_6;
46253 time_t __pyx_t_7;
46254 int __pyx_t_8;
46255 int __pyx_t_9;
46256 int __pyx_lineno = 0;
46257 const char *__pyx_filename = NULL((void*)0);
46258 int __pyx_clineno = 0;
46259 __Pyx_RefNannySetupContext("operate_write_op", 0);
46260 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
46261
46262 /* "rados.pyx":3471
46263 * """
46264 *
46265 * oid = cstr(oid, 'oid') # <<<<<<<<<<<<<<
46266 * cdef:
46267 * WriteOp _write_op = write_op
46268 */
46269 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3471; __pyx_clineno = __LINE__46269; goto __pyx_L1_error;}
46270 __Pyx_GOTREF(__pyx_t_2);
46271 __pyx_t_3 = NULL((void*)0);
46272 __pyx_t_4 = 0;
46273 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
46274 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
46275 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
46276 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
46277 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
46278 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
46279 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
46280 __pyx_t_4 = 1;
46281 }
46282 }
46283 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3471; __pyx_clineno = __LINE__46283; goto __pyx_L1_error;}
46284 __Pyx_GOTREF(__pyx_t_5);
46285 if (__pyx_t_3) {
46286 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
46287 }
46288 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
46289 __Pyx_GIVEREF(__pyx_v_oid);
46290 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_oid
)
;
46291 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
46292 __Pyx_GIVEREF(__pyx_n_s_oid);
46293 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_oid
)
;
46294 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3471; __pyx_clineno = __LINE__46294; goto __pyx_L1_error;}
46295 __Pyx_GOTREF(__pyx_t_1);
46296 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
46297 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
46298 __Pyx_DECREF_SET(__pyx_v_oid, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_oid; __pyx_v_oid = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
46299 __pyx_t_1 = 0;
46300
46301 /* "rados.pyx":3473
46302 * oid = cstr(oid, 'oid')
46303 * cdef:
46304 * WriteOp _write_op = write_op # <<<<<<<<<<<<<<
46305 * char *_oid = oid
46306 * time_t _mtime = mtime
46307 */
46308 if (!(likely(((__pyx_v_write_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp)))__builtin_expect(!!(((__pyx_v_write_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3473; __pyx_clineno = __LINE__46308; goto __pyx_L1_error;}
46309 __pyx_t_1 = __pyx_v_write_op;
46310 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
46311 __pyx_v__write_op = ((struct __pyx_obj_5rados_WriteOp *)__pyx_t_1);
46312 __pyx_t_1 = 0;
46313
46314 /* "rados.pyx":3474
46315 * cdef:
46316 * WriteOp _write_op = write_op
46317 * char *_oid = oid # <<<<<<<<<<<<<<
46318 * time_t _mtime = mtime
46319 * int _flags = flags
46320 */
46321 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_oid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3474; __pyx_clineno = __LINE__46321; goto __pyx_L1_error;}
46322 __pyx_v__oid = __pyx_t_6;
46323
46324 /* "rados.pyx":3475
46325 * WriteOp _write_op = write_op
46326 * char *_oid = oid
46327 * time_t _mtime = mtime # <<<<<<<<<<<<<<
46328 * int _flags = flags
46329 *
46330 */
46331 __pyx_t_7 = __Pyx_PyInt_As_time_t(__pyx_v_mtime); if (unlikely((__pyx_t_7 == (time_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (time_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3475; __pyx_clineno = __LINE__46331; goto __pyx_L1_error;}
46332 __pyx_v__mtime = __pyx_t_7;
46333
46334 /* "rados.pyx":3476
46335 * char *_oid = oid
46336 * time_t _mtime = mtime
46337 * int _flags = flags # <<<<<<<<<<<<<<
46338 *
46339 * with nogil:
46340 */
46341 __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_8 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3476; __pyx_clineno = __LINE__46341; goto __pyx_L1_error;}
46342 __pyx_v__flags = __pyx_t_8;
46343
46344 /* "rados.pyx":3478
46345 * int _flags = flags
46346 *
46347 * with nogil: # <<<<<<<<<<<<<<
46348 * ret = rados_write_op_operate(_write_op.write_op, self.io, _oid, &_mtime, _flags)
46349 * if ret != 0:
46350 */
46351 {
46352 #ifdef WITH_THREAD1
46353 PyThreadState *_save;
46354 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
46355 #endif
46356 /*try:*/ {
46357
46358 /* "rados.pyx":3479
46359 *
46360 * with nogil:
46361 * ret = rados_write_op_operate(_write_op.write_op, self.io, _oid, &_mtime, _flags) # <<<<<<<<<<<<<<
46362 * if ret != 0:
46363 * raise make_ex(ret, "Failed to operate write op for oid %s" % oid)
46364 */
46365 __pyx_v_ret = rados_write_op_operate(__pyx_v__write_op->write_op, __pyx_v_self->io, __pyx_v__oid, (&__pyx_v__mtime), __pyx_v__flags);
46366 }
46367
46368 /* "rados.pyx":3478
46369 * int _flags = flags
46370 *
46371 * with nogil: # <<<<<<<<<<<<<<
46372 * ret = rados_write_op_operate(_write_op.write_op, self.io, _oid, &_mtime, _flags)
46373 * if ret != 0:
46374 */
46375 /*finally:*/ {
46376 /*normal exit:*/{
46377 #ifdef WITH_THREAD1
46378 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
46379 #endif
46380 goto __pyx_L5;
46381 }
46382 __pyx_L5:;
46383 }
46384 }
46385
46386 /* "rados.pyx":3480
46387 * with nogil:
46388 * ret = rados_write_op_operate(_write_op.write_op, self.io, _oid, &_mtime, _flags)
46389 * if ret != 0: # <<<<<<<<<<<<<<
46390 * raise make_ex(ret, "Failed to operate write op for oid %s" % oid)
46391 *
46392 */
46393 __pyx_t_9 = ((__pyx_v_ret != 0) != 0);
46394 if (__pyx_t_9) {
46395
46396 /* "rados.pyx":3481
46397 * ret = rados_write_op_operate(_write_op.write_op, self.io, _oid, &_mtime, _flags)
46398 * if ret != 0:
46399 * raise make_ex(ret, "Failed to operate write op for oid %s" % oid) # <<<<<<<<<<<<<<
46400 *
46401 * @requires(('write_op', WriteOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('mtime', opt(int)), ('flags', opt(int)))
46402 */
46403 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3481; __pyx_clineno = __LINE__46403; goto __pyx_L1_error;}
46404 __Pyx_GOTREF(__pyx_t_1);
46405 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_operate_write_op_for_o, __pyx_v_oid)PyString_Format(__pyx_kp_s_Failed_to_operate_write_op_for_o, __pyx_v_oid
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3481; __pyx_clineno = __LINE__46405; goto __pyx_L1_error;}
46406 __Pyx_GOTREF(__pyx_t_2);
46407 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3481; __pyx_clineno = __LINE__46407; goto __pyx_L1_error;}
46408 __Pyx_GOTREF(__pyx_t_5);
46409 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
46410 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
46411 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
46412 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
46413 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3481; __pyx_clineno = __LINE__46413; goto __pyx_L1_error;}
46414
46415 /* "rados.pyx":3480
46416 * with nogil:
46417 * ret = rados_write_op_operate(_write_op.write_op, self.io, _oid, &_mtime, _flags)
46418 * if ret != 0: # <<<<<<<<<<<<<<
46419 * raise make_ex(ret, "Failed to operate write op for oid %s" % oid)
46420 *
46421 */
46422 }
46423
46424 /* "rados.pyx":3458
46425 *
46426 * @requires(('write_op', WriteOp), ('oid', str_type), ('mtime', opt(int)), ('flags', opt(int)))
46427 * def operate_write_op(self, write_op, oid, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
46428 * """
46429 * execute the real write operation
46430 */
46431
46432 /* function exit code */
46433 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
46434 goto __pyx_L0;
46435 __pyx_L1_error:;
46436 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
46437 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
46438 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
46439 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
46440 __Pyx_AddTraceback("rados.Ioctx.operate_write_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
46441 __pyx_r = NULL((void*)0);
46442 __pyx_L0:;
46443 __Pyx_XDECREF((PyObject *)__pyx_v__write_op)do { if (((PyObject *)__pyx_v__write_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__write_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__write_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__write_op)))); } while (
0); } while (0)
;
46444 __Pyx_XDECREF(__pyx_v_oid)do { if ((__pyx_v_oid) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_oid))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_oid)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_oid)))); } while (0); } while (0)
;
46445 __Pyx_XGIVEREF(__pyx_r);
46446 __Pyx_RefNannyFinishContext();
46447 return __pyx_r;
46448}
46449
46450/* "rados.pyx":3484
46451 *
46452 * @requires(('write_op', WriteOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('mtime', opt(int)), ('flags', opt(int)))
46453 * def operate_aio_write_op(self, write_op, oid, oncomplete=None, onsafe=None, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
46454 * """
46455 * execute the real write operation asynchronously
46456 */
46457
46458/* Python wrapper */
46459static PyObject *__pyx_pw_5rados_5Ioctx_105operate_aio_write_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46460static char __pyx_doc_5rados_5Ioctx_104operate_aio_write_op[] = "Ioctx.operate_aio_write_op(self, write_op, oid, oncomplete=None, onsafe=None, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG)\n\n execute the real write operation asynchronously\n :para write_op: write operation object\n :type write_op: WriteOp\n :para oid: object name\n :type oid: str\n :param oncomplete: what to do when the remove is safe and complete in memory\n on all replicas\n :type oncomplete: completion\n :param onsafe: what to do when the remove is safe and complete on storage\n on all replicas\n :type onsafe: completion\n :para mtime: the time to set the mtime to, 0 for the current time\n :type mtime: int\n :para flags: flags to apply to the entire operation\n :type flags: int\n\n :raises: :class:`Error`\n :returns: completion object\n ";
46461static PyObject *__pyx_pw_5rados_5Ioctx_105operate_aio_write_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46462 PyObject *__pyx_v_write_op = 0;
46463 PyObject *__pyx_v_oid = 0;
46464 PyObject *__pyx_v_oncomplete = 0;
46465 PyObject *__pyx_v_onsafe = 0;
46466 PyObject *__pyx_v_mtime = 0;
46467 PyObject *__pyx_v_flags = 0;
46468 int __pyx_lineno = 0;
46469 const char *__pyx_filename = NULL((void*)0);
46470 int __pyx_clineno = 0;
46471 PyObject *__pyx_r = 0;
46472 __Pyx_RefNannyDeclarations
46473 __Pyx_RefNannySetupContext("operate_aio_write_op (wrapper)", 0);
46474 {
46475 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_write_op,&__pyx_n_s_oid,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,&__pyx_n_s_mtime,&__pyx_n_s_flags,0};
46476 PyObject* values[6] = {0,0,0,0,0,0};
46477 values[2] = ((PyObject *)Py_None(&_Py_NoneStruct));
46478 values[3] = ((PyObject *)Py_None(&_Py_NoneStruct));
46479 values[4] = ((PyObject *)__pyx_int_0);
46480 values[5] = __pyx_k__62;
46481 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
46482 Py_ssize_t kw_args;
46483 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
46484 switch (pos_args) {
46485 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
46486 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
46487 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
46488 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
46489 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
46490 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
46491 case 0: break;
46492 default: goto __pyx_L5_argtuple_error;
46493 }
46494 kw_args = PyDict_Size(__pyx_kwds);
46495 switch (pos_args) {
46496 case 0:
46497 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op
)) != 0), 1)
) kw_args--;
46498 else goto __pyx_L5_argtuple_error;
46499 case 1:
46500 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid
)) != 0), 1)
) kw_args--;
46501 else {
46502 __Pyx_RaiseArgtupleInvalid("operate_aio_write_op", 0, 2, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3484; __pyx_clineno = __LINE__46502; goto __pyx_L3_error;}
46503 }
46504 case 2:
46505 if (kw_args > 0) {
46506 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete);
46507 if (value) { values[2] = value; kw_args--; }
46508 }
46509 case 3:
46510 if (kw_args > 0) {
46511 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe);
46512 if (value) { values[3] = value; kw_args--; }
46513 }
46514 case 4:
46515 if (kw_args > 0) {
46516 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_mtime);
46517 if (value) { values[4] = value; kw_args--; }
46518 }
46519 case 5:
46520 if (kw_args > 0) {
46521 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags);
46522 if (value) { values[5] = value; kw_args--; }
46523 }
46524 }
46525 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
46526 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "operate_aio_write_op") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "operate_aio_write_op") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3484; __pyx_clineno = __LINE__46526; goto __pyx_L3_error;}
46527 }
46528 } else {
46529 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
46530 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
46531 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
46532 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
46533 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
46534 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
46535 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
46536 break;
46537 default: goto __pyx_L5_argtuple_error;
46538 }
46539 }
46540 __pyx_v_write_op = values[0];
46541 __pyx_v_oid = values[1];
46542 __pyx_v_oncomplete = values[2];
46543 __pyx_v_onsafe = values[3];
46544 __pyx_v_mtime = values[4];
46545 __pyx_v_flags = values[5];
46546 }
46547 goto __pyx_L4_argument_unpacking_done;
46548 __pyx_L5_argtuple_error:;
46549 __Pyx_RaiseArgtupleInvalid("operate_aio_write_op", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3484; __pyx_clineno = __LINE__46549; goto __pyx_L3_error;}
46550 __pyx_L3_error:;
46551 __Pyx_AddTraceback("rados.Ioctx.operate_aio_write_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
46552 __Pyx_RefNannyFinishContext();
46553 return NULL((void*)0);
46554 __pyx_L4_argument_unpacking_done:;
46555 __pyx_r = __pyx_pf_5rados_5Ioctx_104operate_aio_write_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_write_op, __pyx_v_oid, __pyx_v_oncomplete, __pyx_v_onsafe, __pyx_v_mtime, __pyx_v_flags);
46556
46557 /* function exit code */
46558 __Pyx_RefNannyFinishContext();
46559 return __pyx_r;
46560}
46561
46562static PyObject *__pyx_pf_5rados_5Ioctx_104operate_aio_write_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe, PyObject *__pyx_v_mtime, PyObject *__pyx_v_flags) {
46563 struct __pyx_obj_5rados_WriteOp *__pyx_v__write_op = 0;
46564 char *__pyx_v__oid;
46565 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
46566 time_t __pyx_v__mtime;
46567 int __pyx_v__flags;
46568 int __pyx_v_ret;
46569 PyObject *__pyx_r = NULL((void*)0);
46570 __Pyx_RefNannyDeclarations
46571 PyObject *__pyx_t_1 = NULL((void*)0);
46572 PyObject *__pyx_t_2 = NULL((void*)0);
46573 PyObject *__pyx_t_3 = NULL((void*)0);
46574 Py_ssize_t __pyx_t_4;
46575 PyObject *__pyx_t_5 = NULL((void*)0);
46576 char *__pyx_t_6;
46577 time_t __pyx_t_7;
46578 int __pyx_t_8;
46579 int __pyx_t_9;
46580 int __pyx_lineno = 0;
46581 const char *__pyx_filename = NULL((void*)0);
46582 int __pyx_clineno = 0;
46583 __Pyx_RefNannySetupContext("operate_aio_write_op", 0);
46584 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
46585
46586 /* "rados.pyx":3506
46587 * """
46588 *
46589 * oid = cstr(oid, 'oid') # <<<<<<<<<<<<<<
46590 * cdef:
46591 * WriteOp _write_op = write_op
46592 */
46593 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3506; __pyx_clineno = __LINE__46593; goto __pyx_L1_error;}
46594 __Pyx_GOTREF(__pyx_t_2);
46595 __pyx_t_3 = NULL((void*)0);
46596 __pyx_t_4 = 0;
46597 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
46598 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
46599 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
46600 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
46601 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
46602 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
46603 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
46604 __pyx_t_4 = 1;
46605 }
46606 }
46607 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3506; __pyx_clineno = __LINE__46607; goto __pyx_L1_error;}
46608 __Pyx_GOTREF(__pyx_t_5);
46609 if (__pyx_t_3) {
46610 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
46611 }
46612 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
46613 __Pyx_GIVEREF(__pyx_v_oid);
46614 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_oid
)
;
46615 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
46616 __Pyx_GIVEREF(__pyx_n_s_oid);
46617 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_oid
)
;
46618 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3506; __pyx_clineno = __LINE__46618; goto __pyx_L1_error;}
46619 __Pyx_GOTREF(__pyx_t_1);
46620 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
46621 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
46622 __Pyx_DECREF_SET(__pyx_v_oid, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_oid; __pyx_v_oid = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
46623 __pyx_t_1 = 0;
46624
46625 /* "rados.pyx":3508
46626 * oid = cstr(oid, 'oid')
46627 * cdef:
46628 * WriteOp _write_op = write_op # <<<<<<<<<<<<<<
46629 * char *_oid = oid
46630 * Completion completion
46631 */
46632 if (!(likely(((__pyx_v_write_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp)))__builtin_expect(!!(((__pyx_v_write_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3508; __pyx_clineno = __LINE__46632; goto __pyx_L1_error;}
46633 __pyx_t_1 = __pyx_v_write_op;
46634 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
46635 __pyx_v__write_op = ((struct __pyx_obj_5rados_WriteOp *)__pyx_t_1);
46636 __pyx_t_1 = 0;
46637
46638 /* "rados.pyx":3509
46639 * cdef:
46640 * WriteOp _write_op = write_op
46641 * char *_oid = oid # <<<<<<<<<<<<<<
46642 * Completion completion
46643 * time_t _mtime = mtime
46644 */
46645 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_oid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3509; __pyx_clineno = __LINE__46645; goto __pyx_L1_error;}
46646 __pyx_v__oid = __pyx_t_6;
46647
46648 /* "rados.pyx":3511
46649 * char *_oid = oid
46650 * Completion completion
46651 * time_t _mtime = mtime # <<<<<<<<<<<<<<
46652 * int _flags = flags
46653 *
46654 */
46655 __pyx_t_7 = __Pyx_PyInt_As_time_t(__pyx_v_mtime); if (unlikely((__pyx_t_7 == (time_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (time_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3511; __pyx_clineno = __LINE__46655; goto __pyx_L1_error;}
46656 __pyx_v__mtime = __pyx_t_7;
46657
46658 /* "rados.pyx":3512
46659 * Completion completion
46660 * time_t _mtime = mtime
46661 * int _flags = flags # <<<<<<<<<<<<<<
46662 *
46663 * completion = self.__get_completion(oncomplete, onsafe)
46664 */
46665 __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_flags); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_8 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3512; __pyx_clineno = __LINE__46665; goto __pyx_L1_error;}
46666 __pyx_v__flags = __pyx_t_8;
46667
46668 /* "rados.pyx":3514
46669 * int _flags = flags
46670 *
46671 * completion = self.__get_completion(oncomplete, onsafe) # <<<<<<<<<<<<<<
46672 * self.__track_completion(completion)
46673 *
46674 */
46675 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3514; __pyx_clineno = __LINE__46675; goto __pyx_L1_error;}
46676 __Pyx_GOTREF(__pyx_t_2);
46677 __pyx_t_5 = NULL((void*)0);
46678 __pyx_t_4 = 0;
46679 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
46680 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
46681 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
46682 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
46683 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
46684 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
46685 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
46686 __pyx_t_4 = 1;
46687 }
46688 }
46689 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3514; __pyx_clineno = __LINE__46689; goto __pyx_L1_error;}
46690 __Pyx_GOTREF(__pyx_t_3);
46691 if (__pyx_t_5) {
46692 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
46693 }
46694 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
46695 __Pyx_GIVEREF(__pyx_v_oncomplete);
46696 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete
)
;
46697 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
46698 __Pyx_GIVEREF(__pyx_v_onsafe);
46699 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_onsafe)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_v_onsafe
)
;
46700 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3514; __pyx_clineno = __LINE__46700; goto __pyx_L1_error;}
46701 __Pyx_GOTREF(__pyx_t_1);
46702 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
46703 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
46704 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3514; __pyx_clineno = __LINE__46704; goto __pyx_L1_error;}
46705 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
46706 __pyx_t_1 = 0;
46707
46708 /* "rados.pyx":3515
46709 *
46710 * completion = self.__get_completion(oncomplete, onsafe)
46711 * self.__track_completion(completion) # <<<<<<<<<<<<<<
46712 *
46713 * with nogil:
46714 */
46715 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3515; __pyx_clineno = __LINE__46715; goto __pyx_L1_error;}
46716 __Pyx_GOTREF(__pyx_t_2);
46717 __pyx_t_3 = NULL((void*)0);
46718 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
46719 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
46720 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
46721 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
46722 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
46723 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
46724 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
46725 }
46726 }
46727 if (!__pyx_t_3) {
46728 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3515; __pyx_clineno = __LINE__46728; goto __pyx_L1_error;}
46729 __Pyx_GOTREF(__pyx_t_1);
46730 } else {
46731 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3515; __pyx_clineno = __LINE__46731; goto __pyx_L1_error;}
46732 __Pyx_GOTREF(__pyx_t_5);
46733 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
46734 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
46735 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
46736 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
46737 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3515; __pyx_clineno = __LINE__46737; goto __pyx_L1_error;}
46738 __Pyx_GOTREF(__pyx_t_1);
46739 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
46740 }
46741 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
46742 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
46743
46744 /* "rados.pyx":3517
46745 * self.__track_completion(completion)
46746 *
46747 * with nogil: # <<<<<<<<<<<<<<
46748 * ret = rados_aio_write_op_operate(_write_op.write_op, self.io, completion.rados_comp, _oid,
46749 * &_mtime, _flags)
46750 */
46751 {
46752 #ifdef WITH_THREAD1
46753 PyThreadState *_save;
46754 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
46755 #endif
46756 /*try:*/ {
46757
46758 /* "rados.pyx":3518
46759 *
46760 * with nogil:
46761 * ret = rados_aio_write_op_operate(_write_op.write_op, self.io, completion.rados_comp, _oid, # <<<<<<<<<<<<<<
46762 * &_mtime, _flags)
46763 * if ret != 0:
46764 */
46765 __pyx_v_ret = rados_aio_write_op_operate(__pyx_v__write_op->write_op, __pyx_v_self->io, __pyx_v_completion->rados_comp, __pyx_v__oid, (&__pyx_v__mtime), __pyx_v__flags);
46766 }
46767
46768 /* "rados.pyx":3517
46769 * self.__track_completion(completion)
46770 *
46771 * with nogil: # <<<<<<<<<<<<<<
46772 * ret = rados_aio_write_op_operate(_write_op.write_op, self.io, completion.rados_comp, _oid,
46773 * &_mtime, _flags)
46774 */
46775 /*finally:*/ {
46776 /*normal exit:*/{
46777 #ifdef WITH_THREAD1
46778 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
46779 #endif
46780 goto __pyx_L5;
46781 }
46782 __pyx_L5:;
46783 }
46784 }
46785
46786 /* "rados.pyx":3520
46787 * ret = rados_aio_write_op_operate(_write_op.write_op, self.io, completion.rados_comp, _oid,
46788 * &_mtime, _flags)
46789 * if ret != 0: # <<<<<<<<<<<<<<
46790 * completion._cleanup()
46791 * raise make_ex(ret, "Failed to operate aio write op for oid %s" % oid)
46792 */
46793 __pyx_t_9 = ((__pyx_v_ret != 0) != 0);
46794 if (__pyx_t_9) {
46795
46796 /* "rados.pyx":3521
46797 * &_mtime, _flags)
46798 * if ret != 0:
46799 * completion._cleanup() # <<<<<<<<<<<<<<
46800 * raise make_ex(ret, "Failed to operate aio write op for oid %s" % oid)
46801 * return completion
46802 */
46803 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3521; __pyx_clineno = __LINE__46803; goto __pyx_L1_error;}
46804 __Pyx_GOTREF(__pyx_t_2);
46805 __pyx_t_5 = NULL((void*)0);
46806 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
46807 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
46808 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
46809 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
46810 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
46811 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
46812 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
46813 }
46814 }
46815 if (__pyx_t_5) {
46816 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3521; __pyx_clineno = __LINE__46816; goto __pyx_L1_error;}
46817 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
46818 } else {
46819 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3521; __pyx_clineno = __LINE__46819; goto __pyx_L1_error;}
46820 }
46821 __Pyx_GOTREF(__pyx_t_1);
46822 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
46823 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
46824
46825 /* "rados.pyx":3522
46826 * if ret != 0:
46827 * completion._cleanup()
46828 * raise make_ex(ret, "Failed to operate aio write op for oid %s" % oid) # <<<<<<<<<<<<<<
46829 * return completion
46830 *
46831 */
46832 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3522; __pyx_clineno = __LINE__46832; goto __pyx_L1_error;}
46833 __Pyx_GOTREF(__pyx_t_1);
46834 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_operate_aio_write_op_f, __pyx_v_oid)PyString_Format(__pyx_kp_s_Failed_to_operate_aio_write_op_f, __pyx_v_oid
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3522; __pyx_clineno = __LINE__46834; goto __pyx_L1_error;}
46835 __Pyx_GOTREF(__pyx_t_2);
46836 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3522; __pyx_clineno = __LINE__46836; goto __pyx_L1_error;}
46837 __Pyx_GOTREF(__pyx_t_5);
46838 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
46839 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
46840 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
46841 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
46842 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3522; __pyx_clineno = __LINE__46842; goto __pyx_L1_error;}
46843
46844 /* "rados.pyx":3520
46845 * ret = rados_aio_write_op_operate(_write_op.write_op, self.io, completion.rados_comp, _oid,
46846 * &_mtime, _flags)
46847 * if ret != 0: # <<<<<<<<<<<<<<
46848 * completion._cleanup()
46849 * raise make_ex(ret, "Failed to operate aio write op for oid %s" % oid)
46850 */
46851 }
46852
46853 /* "rados.pyx":3523
46854 * completion._cleanup()
46855 * raise make_ex(ret, "Failed to operate aio write op for oid %s" % oid)
46856 * return completion # <<<<<<<<<<<<<<
46857 *
46858 * @requires(('read_op', ReadOp), ('oid', str_type), ('flag', opt(int)))
46859 */
46860 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
46861 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
46862 __pyx_r = ((PyObject *)__pyx_v_completion);
46863 goto __pyx_L0;
46864
46865 /* "rados.pyx":3484
46866 *
46867 * @requires(('write_op', WriteOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('mtime', opt(int)), ('flags', opt(int)))
46868 * def operate_aio_write_op(self, write_op, oid, oncomplete=None, onsafe=None, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
46869 * """
46870 * execute the real write operation asynchronously
46871 */
46872
46873 /* function exit code */
46874 __pyx_L1_error:;
46875 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
46876 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
46877 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
46878 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
46879 __Pyx_AddTraceback("rados.Ioctx.operate_aio_write_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
46880 __pyx_r = NULL((void*)0);
46881 __pyx_L0:;
46882 __Pyx_XDECREF((PyObject *)__pyx_v__write_op)do { if (((PyObject *)__pyx_v__write_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__write_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__write_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__write_op)))); } while (
0); } while (0)
;
46883 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
46884 __Pyx_XDECREF(__pyx_v_oid)do { if ((__pyx_v_oid) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_oid))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_oid)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_oid)))); } while (0); } while (0)
;
46885 __Pyx_XGIVEREF(__pyx_r);
46886 __Pyx_RefNannyFinishContext();
46887 return __pyx_r;
46888}
46889
46890/* "rados.pyx":3526
46891 *
46892 * @requires(('read_op', ReadOp), ('oid', str_type), ('flag', opt(int)))
46893 * def operate_read_op(self, read_op, oid, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
46894 * """
46895 * execute the real read operation
46896 */
46897
46898/* Python wrapper */
46899static PyObject *__pyx_pw_5rados_5Ioctx_107operate_read_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
46900static char __pyx_doc_5rados_5Ioctx_106operate_read_op[] = "Ioctx.operate_read_op(self, read_op, oid, flag=LIBRADOS_OPERATION_NOFLAG)\n\n execute the real read operation\n :para read_op: read operation object\n :type read_op: ReadOp\n :para oid: object name\n :type oid: str\n :para flag: flags to apply to the entire operation\n :type flag: int\n ";
46901static PyObject *__pyx_pw_5rados_5Ioctx_107operate_read_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
46902 PyObject *__pyx_v_read_op = 0;
46903 PyObject *__pyx_v_oid = 0;
46904 PyObject *__pyx_v_flag = 0;
46905 int __pyx_lineno = 0;
46906 const char *__pyx_filename = NULL((void*)0);
46907 int __pyx_clineno = 0;
46908 PyObject *__pyx_r = 0;
46909 __Pyx_RefNannyDeclarations
46910 __Pyx_RefNannySetupContext("operate_read_op (wrapper)", 0);
46911 {
46912 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_read_op,&__pyx_n_s_oid,&__pyx_n_s_flag,0};
46913 PyObject* values[3] = {0,0,0};
46914 values[2] = __pyx_k__63;
46915 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
46916 Py_ssize_t kw_args;
46917 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
46918 switch (pos_args) {
46919 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
46920 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
46921 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
46922 case 0: break;
46923 default: goto __pyx_L5_argtuple_error;
46924 }
46925 kw_args = PyDict_Size(__pyx_kwds);
46926 switch (pos_args) {
46927 case 0:
46928 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op
)) != 0), 1)
) kw_args--;
46929 else goto __pyx_L5_argtuple_error;
46930 case 1:
46931 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid
)) != 0), 1)
) kw_args--;
46932 else {
46933 __Pyx_RaiseArgtupleInvalid("operate_read_op", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3526; __pyx_clineno = __LINE__46933; goto __pyx_L3_error;}
46934 }
46935 case 2:
46936 if (kw_args > 0) {
46937 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flag);
46938 if (value) { values[2] = value; kw_args--; }
46939 }
46940 }
46941 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
46942 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "operate_read_op") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "operate_read_op") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3526; __pyx_clineno = __LINE__46942; goto __pyx_L3_error;}
46943 }
46944 } else {
46945 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
46946 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
46947 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
46948 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
46949 break;
46950 default: goto __pyx_L5_argtuple_error;
46951 }
46952 }
46953 __pyx_v_read_op = values[0];
46954 __pyx_v_oid = values[1];
46955 __pyx_v_flag = values[2];
46956 }
46957 goto __pyx_L4_argument_unpacking_done;
46958 __pyx_L5_argtuple_error:;
46959 __Pyx_RaiseArgtupleInvalid("operate_read_op", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3526; __pyx_clineno = __LINE__46959; goto __pyx_L3_error;}
46960 __pyx_L3_error:;
46961 __Pyx_AddTraceback("rados.Ioctx.operate_read_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
46962 __Pyx_RefNannyFinishContext();
46963 return NULL((void*)0);
46964 __pyx_L4_argument_unpacking_done:;
46965 __pyx_r = __pyx_pf_5rados_5Ioctx_106operate_read_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_read_op, __pyx_v_oid, __pyx_v_flag);
46966
46967 /* function exit code */
46968 __Pyx_RefNannyFinishContext();
46969 return __pyx_r;
46970}
46971
46972static PyObject *__pyx_pf_5rados_5Ioctx_106operate_read_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_flag) {
46973 struct __pyx_obj_5rados_ReadOp *__pyx_v__read_op = 0;
46974 char *__pyx_v__oid;
46975 int __pyx_v__flag;
46976 int __pyx_v_ret;
46977 PyObject *__pyx_r = NULL((void*)0);
46978 __Pyx_RefNannyDeclarations
46979 PyObject *__pyx_t_1 = NULL((void*)0);
46980 PyObject *__pyx_t_2 = NULL((void*)0);
46981 PyObject *__pyx_t_3 = NULL((void*)0);
46982 Py_ssize_t __pyx_t_4;
46983 PyObject *__pyx_t_5 = NULL((void*)0);
46984 char *__pyx_t_6;
46985 int __pyx_t_7;
46986 int __pyx_t_8;
46987 int __pyx_lineno = 0;
46988 const char *__pyx_filename = NULL((void*)0);
46989 int __pyx_clineno = 0;
46990 __Pyx_RefNannySetupContext("operate_read_op", 0);
46991 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
46992
46993 /* "rados.pyx":3536
46994 * :type flag: int
46995 * """
46996 * oid = cstr(oid, 'oid') # <<<<<<<<<<<<<<
46997 * cdef:
46998 * ReadOp _read_op = read_op
46999 */
47000 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3536; __pyx_clineno = __LINE__47000; goto __pyx_L1_error;}
47001 __Pyx_GOTREF(__pyx_t_2);
47002 __pyx_t_3 = NULL((void*)0);
47003 __pyx_t_4 = 0;
47004 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
47005 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
47006 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
47007 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
47008 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
47009 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
47010 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47011 __pyx_t_4 = 1;
47012 }
47013 }
47014 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3536; __pyx_clineno = __LINE__47014; goto __pyx_L1_error;}
47015 __Pyx_GOTREF(__pyx_t_5);
47016 if (__pyx_t_3) {
47017 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
47018 }
47019 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
47020 __Pyx_GIVEREF(__pyx_v_oid);
47021 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_oid
)
;
47022 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
47023 __Pyx_GIVEREF(__pyx_n_s_oid);
47024 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_oid
)
;
47025 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3536; __pyx_clineno = __LINE__47025; goto __pyx_L1_error;}
47026 __Pyx_GOTREF(__pyx_t_1);
47027 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
47028 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
47029 __Pyx_DECREF_SET(__pyx_v_oid, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_oid; __pyx_v_oid = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47030 __pyx_t_1 = 0;
47031
47032 /* "rados.pyx":3538
47033 * oid = cstr(oid, 'oid')
47034 * cdef:
47035 * ReadOp _read_op = read_op # <<<<<<<<<<<<<<
47036 * char *_oid = oid
47037 * int _flag = flag
47038 */
47039 if (!(likely(((__pyx_v_read_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp)))__builtin_expect(!!(((__pyx_v_read_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3538; __pyx_clineno = __LINE__47039; goto __pyx_L1_error;}
47040 __pyx_t_1 = __pyx_v_read_op;
47041 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
47042 __pyx_v__read_op = ((struct __pyx_obj_5rados_ReadOp *)__pyx_t_1);
47043 __pyx_t_1 = 0;
47044
47045 /* "rados.pyx":3539
47046 * cdef:
47047 * ReadOp _read_op = read_op
47048 * char *_oid = oid # <<<<<<<<<<<<<<
47049 * int _flag = flag
47050 *
47051 */
47052 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_oid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3539; __pyx_clineno = __LINE__47052; goto __pyx_L1_error;}
47053 __pyx_v__oid = __pyx_t_6;
47054
47055 /* "rados.pyx":3540
47056 * ReadOp _read_op = read_op
47057 * char *_oid = oid
47058 * int _flag = flag # <<<<<<<<<<<<<<
47059 *
47060 * with nogil:
47061 */
47062 __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_flag); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3540; __pyx_clineno = __LINE__47062; goto __pyx_L1_error;}
47063 __pyx_v__flag = __pyx_t_7;
47064
47065 /* "rados.pyx":3542
47066 * int _flag = flag
47067 *
47068 * with nogil: # <<<<<<<<<<<<<<
47069 * ret = rados_read_op_operate(_read_op.read_op, self.io, _oid, _flag)
47070 * if ret != 0:
47071 */
47072 {
47073 #ifdef WITH_THREAD1
47074 PyThreadState *_save;
47075 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
47076 #endif
47077 /*try:*/ {
47078
47079 /* "rados.pyx":3543
47080 *
47081 * with nogil:
47082 * ret = rados_read_op_operate(_read_op.read_op, self.io, _oid, _flag) # <<<<<<<<<<<<<<
47083 * if ret != 0:
47084 * raise make_ex(ret, "Failed to operate read op for oid %s" % oid)
47085 */
47086 __pyx_v_ret = rados_read_op_operate(__pyx_v__read_op->read_op, __pyx_v_self->io, __pyx_v__oid, __pyx_v__flag);
47087 }
47088
47089 /* "rados.pyx":3542
47090 * int _flag = flag
47091 *
47092 * with nogil: # <<<<<<<<<<<<<<
47093 * ret = rados_read_op_operate(_read_op.read_op, self.io, _oid, _flag)
47094 * if ret != 0:
47095 */
47096 /*finally:*/ {
47097 /*normal exit:*/{
47098 #ifdef WITH_THREAD1
47099 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
47100 #endif
47101 goto __pyx_L5;
47102 }
47103 __pyx_L5:;
47104 }
47105 }
47106
47107 /* "rados.pyx":3544
47108 * with nogil:
47109 * ret = rados_read_op_operate(_read_op.read_op, self.io, _oid, _flag)
47110 * if ret != 0: # <<<<<<<<<<<<<<
47111 * raise make_ex(ret, "Failed to operate read op for oid %s" % oid)
47112 *
47113 */
47114 __pyx_t_8 = ((__pyx_v_ret != 0) != 0);
47115 if (__pyx_t_8) {
47116
47117 /* "rados.pyx":3545
47118 * ret = rados_read_op_operate(_read_op.read_op, self.io, _oid, _flag)
47119 * if ret != 0:
47120 * raise make_ex(ret, "Failed to operate read op for oid %s" % oid) # <<<<<<<<<<<<<<
47121 *
47122 * @requires(('read_op', ReadOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('flag', opt(int)))
47123 */
47124 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3545; __pyx_clineno = __LINE__47124; goto __pyx_L1_error;}
47125 __Pyx_GOTREF(__pyx_t_1);
47126 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_operate_read_op_for_oi, __pyx_v_oid)PyString_Format(__pyx_kp_s_Failed_to_operate_read_op_for_oi, __pyx_v_oid
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3545; __pyx_clineno = __LINE__47126; goto __pyx_L1_error;}
47127 __Pyx_GOTREF(__pyx_t_2);
47128 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3545; __pyx_clineno = __LINE__47128; goto __pyx_L1_error;}
47129 __Pyx_GOTREF(__pyx_t_5);
47130 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
47131 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
47132 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
47133 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
47134 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3545; __pyx_clineno = __LINE__47134; goto __pyx_L1_error;}
47135
47136 /* "rados.pyx":3544
47137 * with nogil:
47138 * ret = rados_read_op_operate(_read_op.read_op, self.io, _oid, _flag)
47139 * if ret != 0: # <<<<<<<<<<<<<<
47140 * raise make_ex(ret, "Failed to operate read op for oid %s" % oid)
47141 *
47142 */
47143 }
47144
47145 /* "rados.pyx":3526
47146 *
47147 * @requires(('read_op', ReadOp), ('oid', str_type), ('flag', opt(int)))
47148 * def operate_read_op(self, read_op, oid, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
47149 * """
47150 * execute the real read operation
47151 */
47152
47153 /* function exit code */
47154 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
47155 goto __pyx_L0;
47156 __pyx_L1_error:;
47157 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
47158 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
47159 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
47160 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
47161 __Pyx_AddTraceback("rados.Ioctx.operate_read_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
47162 __pyx_r = NULL((void*)0);
47163 __pyx_L0:;
47164 __Pyx_XDECREF((PyObject *)__pyx_v__read_op)do { if (((PyObject *)__pyx_v__read_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__read_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__read_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__read_op)))); } while (0
); } while (0)
;
47165 __Pyx_XDECREF(__pyx_v_oid)do { if ((__pyx_v_oid) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_oid))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_oid)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_oid)))); } while (0); } while (0)
;
47166 __Pyx_XGIVEREF(__pyx_r);
47167 __Pyx_RefNannyFinishContext();
47168 return __pyx_r;
47169}
47170
47171/* "rados.pyx":3548
47172 *
47173 * @requires(('read_op', ReadOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('flag', opt(int)))
47174 * def operate_aio_read_op(self, read_op, oid, oncomplete=None, onsafe=None, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
47175 * """
47176 * execute the real read operation
47177 */
47178
47179/* Python wrapper */
47180static PyObject *__pyx_pw_5rados_5Ioctx_109operate_aio_read_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47181static char __pyx_doc_5rados_5Ioctx_108operate_aio_read_op[] = "Ioctx.operate_aio_read_op(self, read_op, oid, oncomplete=None, onsafe=None, flag=LIBRADOS_OPERATION_NOFLAG)\n\n execute the real read operation\n :para read_op: read operation object\n :type read_op: ReadOp\n :para oid: object name\n :type oid: str\n :param oncomplete: what to do when the remove is safe and complete in memory\n on all replicas\n :type oncomplete: completion\n :param onsafe: what to do when the remove is safe and complete on storage\n on all replicas\n :type onsafe: completion\n :para flag: flags to apply to the entire operation\n :type flag: int\n ";
47182static PyObject *__pyx_pw_5rados_5Ioctx_109operate_aio_read_op(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47183 PyObject *__pyx_v_read_op = 0;
47184 PyObject *__pyx_v_oid = 0;
47185 PyObject *__pyx_v_oncomplete = 0;
47186 PyObject *__pyx_v_onsafe = 0;
47187 PyObject *__pyx_v_flag = 0;
47188 int __pyx_lineno = 0;
47189 const char *__pyx_filename = NULL((void*)0);
47190 int __pyx_clineno = 0;
47191 PyObject *__pyx_r = 0;
47192 __Pyx_RefNannyDeclarations
47193 __Pyx_RefNannySetupContext("operate_aio_read_op (wrapper)", 0);
47194 {
47195 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_read_op,&__pyx_n_s_oid,&__pyx_n_s_oncomplete,&__pyx_n_s_onsafe,&__pyx_n_s_flag,0};
47196 PyObject* values[5] = {0,0,0,0,0};
47197 values[2] = ((PyObject *)Py_None(&_Py_NoneStruct));
47198 values[3] = ((PyObject *)Py_None(&_Py_NoneStruct));
47199 values[4] = __pyx_k__64;
47200 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
47201 Py_ssize_t kw_args;
47202 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
47203 switch (pos_args) {
47204 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
47205 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
47206 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
47207 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
47208 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
47209 case 0: break;
47210 default: goto __pyx_L5_argtuple_error;
47211 }
47212 kw_args = PyDict_Size(__pyx_kwds);
47213 switch (pos_args) {
47214 case 0:
47215 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op
)) != 0), 1)
) kw_args--;
47216 else goto __pyx_L5_argtuple_error;
47217 case 1:
47218 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oid
)) != 0), 1)
) kw_args--;
47219 else {
47220 __Pyx_RaiseArgtupleInvalid("operate_aio_read_op", 0, 2, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3548; __pyx_clineno = __LINE__47220; goto __pyx_L3_error;}
47221 }
47222 case 2:
47223 if (kw_args > 0) {
47224 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_oncomplete);
47225 if (value) { values[2] = value; kw_args--; }
47226 }
47227 case 3:
47228 if (kw_args > 0) {
47229 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_onsafe);
47230 if (value) { values[3] = value; kw_args--; }
47231 }
47232 case 4:
47233 if (kw_args > 0) {
47234 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flag);
47235 if (value) { values[4] = value; kw_args--; }
47236 }
47237 }
47238 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
47239 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "operate_aio_read_op") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "operate_aio_read_op") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3548; __pyx_clineno = __LINE__47239; goto __pyx_L3_error;}
47240 }
47241 } else {
47242 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
47243 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
47244 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
47245 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
47246 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
47247 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
47248 break;
47249 default: goto __pyx_L5_argtuple_error;
47250 }
47251 }
47252 __pyx_v_read_op = values[0];
47253 __pyx_v_oid = values[1];
47254 __pyx_v_oncomplete = values[2];
47255 __pyx_v_onsafe = values[3];
47256 __pyx_v_flag = values[4];
47257 }
47258 goto __pyx_L4_argument_unpacking_done;
47259 __pyx_L5_argtuple_error:;
47260 __Pyx_RaiseArgtupleInvalid("operate_aio_read_op", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3548; __pyx_clineno = __LINE__47260; goto __pyx_L3_error;}
47261 __pyx_L3_error:;
47262 __Pyx_AddTraceback("rados.Ioctx.operate_aio_read_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
47263 __Pyx_RefNannyFinishContext();
47264 return NULL((void*)0);
47265 __pyx_L4_argument_unpacking_done:;
47266 __pyx_r = __pyx_pf_5rados_5Ioctx_108operate_aio_read_op(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_read_op, __pyx_v_oid, __pyx_v_oncomplete, __pyx_v_onsafe, __pyx_v_flag);
47267
47268 /* function exit code */
47269 __Pyx_RefNannyFinishContext();
47270 return __pyx_r;
47271}
47272
47273static PyObject *__pyx_pf_5rados_5Ioctx_108operate_aio_read_op(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_oid, PyObject *__pyx_v_oncomplete, PyObject *__pyx_v_onsafe, PyObject *__pyx_v_flag) {
47274 struct __pyx_obj_5rados_ReadOp *__pyx_v__read_op = 0;
47275 char *__pyx_v__oid;
47276 struct __pyx_obj_5rados_Completion *__pyx_v_completion = 0;
47277 int __pyx_v__flag;
47278 int __pyx_v_ret;
47279 PyObject *__pyx_r = NULL((void*)0);
47280 __Pyx_RefNannyDeclarations
47281 PyObject *__pyx_t_1 = NULL((void*)0);
47282 PyObject *__pyx_t_2 = NULL((void*)0);
47283 PyObject *__pyx_t_3 = NULL((void*)0);
47284 Py_ssize_t __pyx_t_4;
47285 PyObject *__pyx_t_5 = NULL((void*)0);
47286 char *__pyx_t_6;
47287 int __pyx_t_7;
47288 int __pyx_t_8;
47289 int __pyx_lineno = 0;
47290 const char *__pyx_filename = NULL((void*)0);
47291 int __pyx_clineno = 0;
47292 __Pyx_RefNannySetupContext("operate_aio_read_op", 0);
47293 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
47294
47295 /* "rados.pyx":3564
47296 * :type flag: int
47297 * """
47298 * oid = cstr(oid, 'oid') # <<<<<<<<<<<<<<
47299 * cdef:
47300 * ReadOp _read_op = read_op
47301 */
47302 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3564; __pyx_clineno = __LINE__47302; goto __pyx_L1_error;}
47303 __Pyx_GOTREF(__pyx_t_2);
47304 __pyx_t_3 = NULL((void*)0);
47305 __pyx_t_4 = 0;
47306 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
47307 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
47308 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
47309 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
47310 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
47311 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
47312 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47313 __pyx_t_4 = 1;
47314 }
47315 }
47316 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3564; __pyx_clineno = __LINE__47316; goto __pyx_L1_error;}
47317 __Pyx_GOTREF(__pyx_t_5);
47318 if (__pyx_t_3) {
47319 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
47320 }
47321 __Pyx_INCREF(__pyx_v_oid)( ((PyObject*)(__pyx_v_oid))->ob_refcnt++);
47322 __Pyx_GIVEREF(__pyx_v_oid);
47323 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_oid
)
;
47324 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
47325 __Pyx_GIVEREF(__pyx_n_s_oid);
47326 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_oid
)
;
47327 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3564; __pyx_clineno = __LINE__47327; goto __pyx_L1_error;}
47328 __Pyx_GOTREF(__pyx_t_1);
47329 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
47330 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
47331 __Pyx_DECREF_SET(__pyx_v_oid, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_oid; __pyx_v_oid = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47332 __pyx_t_1 = 0;
47333
47334 /* "rados.pyx":3566
47335 * oid = cstr(oid, 'oid')
47336 * cdef:
47337 * ReadOp _read_op = read_op # <<<<<<<<<<<<<<
47338 * char *_oid = oid
47339 * Completion completion
47340 */
47341 if (!(likely(((__pyx_v_read_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp)))__builtin_expect(!!(((__pyx_v_read_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3566; __pyx_clineno = __LINE__47341; goto __pyx_L1_error;}
47342 __pyx_t_1 = __pyx_v_read_op;
47343 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
47344 __pyx_v__read_op = ((struct __pyx_obj_5rados_ReadOp *)__pyx_t_1);
47345 __pyx_t_1 = 0;
47346
47347 /* "rados.pyx":3567
47348 * cdef:
47349 * ReadOp _read_op = read_op
47350 * char *_oid = oid # <<<<<<<<<<<<<<
47351 * Completion completion
47352 * int _flag = flag
47353 */
47354 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_oid); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3567; __pyx_clineno = __LINE__47354; goto __pyx_L1_error;}
47355 __pyx_v__oid = __pyx_t_6;
47356
47357 /* "rados.pyx":3569
47358 * char *_oid = oid
47359 * Completion completion
47360 * int _flag = flag # <<<<<<<<<<<<<<
47361 *
47362 * completion = self.__get_completion(oncomplete, onsafe)
47363 */
47364 __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_flag); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3569; __pyx_clineno = __LINE__47364; goto __pyx_L1_error;}
47365 __pyx_v__flag = __pyx_t_7;
47366
47367 /* "rados.pyx":3571
47368 * int _flag = flag
47369 *
47370 * completion = self.__get_completion(oncomplete, onsafe) # <<<<<<<<<<<<<<
47371 * self.__track_completion(completion)
47372 *
47373 */
47374 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3571; __pyx_clineno = __LINE__47374; goto __pyx_L1_error;}
47375 __Pyx_GOTREF(__pyx_t_2);
47376 __pyx_t_5 = NULL((void*)0);
47377 __pyx_t_4 = 0;
47378 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
47379 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
47380 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
47381 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
47382 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
47383 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
47384 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47385 __pyx_t_4 = 1;
47386 }
47387 }
47388 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3571; __pyx_clineno = __LINE__47388; goto __pyx_L1_error;}
47389 __Pyx_GOTREF(__pyx_t_3);
47390 if (__pyx_t_5) {
47391 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
47392 }
47393 __Pyx_INCREF(__pyx_v_oncomplete)( ((PyObject*)(__pyx_v_oncomplete))->ob_refcnt++);
47394 __Pyx_GIVEREF(__pyx_v_oncomplete);
47395 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_oncomplete)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_oncomplete
)
;
47396 __Pyx_INCREF(__pyx_v_onsafe)( ((PyObject*)(__pyx_v_onsafe))->ob_refcnt++);
47397 __Pyx_GIVEREF(__pyx_v_onsafe);
47398 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_onsafe)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_v_onsafe
)
;
47399 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3571; __pyx_clineno = __LINE__47399; goto __pyx_L1_error;}
47400 __Pyx_GOTREF(__pyx_t_1);
47401 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
47402 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
47403 if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion)))__builtin_expect(!!(((__pyx_t_1) == (&_Py_NoneStruct)) ||
__builtin_expect(!!(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5rados_Completion
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3571; __pyx_clineno = __LINE__47403; goto __pyx_L1_error;}
47404 __pyx_v_completion = ((struct __pyx_obj_5rados_Completion *)__pyx_t_1);
47405 __pyx_t_1 = 0;
47406
47407 /* "rados.pyx":3572
47408 *
47409 * completion = self.__get_completion(oncomplete, onsafe)
47410 * self.__track_completion(completion) # <<<<<<<<<<<<<<
47411 *
47412 * with nogil:
47413 */
47414 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_track_completion); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3572; __pyx_clineno = __LINE__47414; goto __pyx_L1_error;}
47415 __Pyx_GOTREF(__pyx_t_2);
47416 __pyx_t_3 = NULL((void*)0);
47417 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
47418 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
47419 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
47420 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
47421 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
47422 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
47423 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47424 }
47425 }
47426 if (!__pyx_t_3) {
47427 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_completion)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3572; __pyx_clineno = __LINE__47427; goto __pyx_L1_error;}
47428 __Pyx_GOTREF(__pyx_t_1);
47429 } else {
47430 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3572; __pyx_clineno = __LINE__47430; goto __pyx_L1_error;}
47431 __Pyx_GOTREF(__pyx_t_5);
47432 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
47433 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
47434 __Pyx_GIVEREF(((PyObject *)__pyx_v_completion));
47435 PyTuple_SET_ITEM(__pyx_t_5, 0+1, ((PyObject *)__pyx_v_completion))(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = ((PyObject
*)__pyx_v_completion))
;
47436 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3572; __pyx_clineno = __LINE__47436; goto __pyx_L1_error;}
47437 __Pyx_GOTREF(__pyx_t_1);
47438 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
47439 }
47440 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
47441 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
47442
47443 /* "rados.pyx":3574
47444 * self.__track_completion(completion)
47445 *
47446 * with nogil: # <<<<<<<<<<<<<<
47447 * ret = rados_aio_read_op_operate(_read_op.read_op, self.io, completion.rados_comp, _oid, _flag)
47448 * if ret != 0:
47449 */
47450 {
47451 #ifdef WITH_THREAD1
47452 PyThreadState *_save;
47453 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
47454 #endif
47455 /*try:*/ {
47456
47457 /* "rados.pyx":3575
47458 *
47459 * with nogil:
47460 * ret = rados_aio_read_op_operate(_read_op.read_op, self.io, completion.rados_comp, _oid, _flag) # <<<<<<<<<<<<<<
47461 * if ret != 0:
47462 * completion._cleanup()
47463 */
47464 __pyx_v_ret = rados_aio_read_op_operate(__pyx_v__read_op->read_op, __pyx_v_self->io, __pyx_v_completion->rados_comp, __pyx_v__oid, __pyx_v__flag);
47465 }
47466
47467 /* "rados.pyx":3574
47468 * self.__track_completion(completion)
47469 *
47470 * with nogil: # <<<<<<<<<<<<<<
47471 * ret = rados_aio_read_op_operate(_read_op.read_op, self.io, completion.rados_comp, _oid, _flag)
47472 * if ret != 0:
47473 */
47474 /*finally:*/ {
47475 /*normal exit:*/{
47476 #ifdef WITH_THREAD1
47477 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
47478 #endif
47479 goto __pyx_L5;
47480 }
47481 __pyx_L5:;
47482 }
47483 }
47484
47485 /* "rados.pyx":3576
47486 * with nogil:
47487 * ret = rados_aio_read_op_operate(_read_op.read_op, self.io, completion.rados_comp, _oid, _flag)
47488 * if ret != 0: # <<<<<<<<<<<<<<
47489 * completion._cleanup()
47490 * raise make_ex(ret, "Failed to operate aio read op for oid %s" % oid)
47491 */
47492 __pyx_t_8 = ((__pyx_v_ret != 0) != 0);
47493 if (__pyx_t_8) {
47494
47495 /* "rados.pyx":3577
47496 * ret = rados_aio_read_op_operate(_read_op.read_op, self.io, completion.rados_comp, _oid, _flag)
47497 * if ret != 0:
47498 * completion._cleanup() # <<<<<<<<<<<<<<
47499 * raise make_ex(ret, "Failed to operate aio read op for oid %s" % oid)
47500 * return completion
47501 */
47502 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_completion), __pyx_n_s_cleanup); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3577; __pyx_clineno = __LINE__47502; goto __pyx_L1_error;}
47503 __Pyx_GOTREF(__pyx_t_2);
47504 __pyx_t_5 = NULL((void*)0);
47505 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
47506 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
47507 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
47508 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
47509 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
47510 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
47511 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47512 }
47513 }
47514 if (__pyx_t_5) {
47515 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3577; __pyx_clineno = __LINE__47515; goto __pyx_L1_error;}
47516 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
47517 } else {
47518 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3577; __pyx_clineno = __LINE__47518; goto __pyx_L1_error;}
47519 }
47520 __Pyx_GOTREF(__pyx_t_1);
47521 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
47522 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
47523
47524 /* "rados.pyx":3578
47525 * if ret != 0:
47526 * completion._cleanup()
47527 * raise make_ex(ret, "Failed to operate aio read op for oid %s" % oid) # <<<<<<<<<<<<<<
47528 * return completion
47529 *
47530 */
47531 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3578; __pyx_clineno = __LINE__47531; goto __pyx_L1_error;}
47532 __Pyx_GOTREF(__pyx_t_1);
47533 __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Failed_to_operate_aio_read_op_fo, __pyx_v_oid)PyString_Format(__pyx_kp_s_Failed_to_operate_aio_read_op_fo, __pyx_v_oid
)
; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3578; __pyx_clineno = __LINE__47533; goto __pyx_L1_error;}
47534 __Pyx_GOTREF(__pyx_t_2);
47535 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3578; __pyx_clineno = __LINE__47535; goto __pyx_L1_error;}
47536 __Pyx_GOTREF(__pyx_t_5);
47537 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
47538 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
47539 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
47540 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
47541 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3578; __pyx_clineno = __LINE__47541; goto __pyx_L1_error;}
47542
47543 /* "rados.pyx":3576
47544 * with nogil:
47545 * ret = rados_aio_read_op_operate(_read_op.read_op, self.io, completion.rados_comp, _oid, _flag)
47546 * if ret != 0: # <<<<<<<<<<<<<<
47547 * completion._cleanup()
47548 * raise make_ex(ret, "Failed to operate aio read op for oid %s" % oid)
47549 */
47550 }
47551
47552 /* "rados.pyx":3579
47553 * completion._cleanup()
47554 * raise make_ex(ret, "Failed to operate aio read op for oid %s" % oid)
47555 * return completion # <<<<<<<<<<<<<<
47556 *
47557 * @requires(('read_op', ReadOp), ('start_after', str_type), ('filter_prefix', str_type), ('max_return', int))
47558 */
47559 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
47560 __Pyx_INCREF(((PyObject *)__pyx_v_completion))( ((PyObject*)(((PyObject *)__pyx_v_completion)))->ob_refcnt
++)
;
47561 __pyx_r = ((PyObject *)__pyx_v_completion);
47562 goto __pyx_L0;
47563
47564 /* "rados.pyx":3548
47565 *
47566 * @requires(('read_op', ReadOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('flag', opt(int)))
47567 * def operate_aio_read_op(self, read_op, oid, oncomplete=None, onsafe=None, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
47568 * """
47569 * execute the real read operation
47570 */
47571
47572 /* function exit code */
47573 __pyx_L1_error:;
47574 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
47575 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
47576 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
47577 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
47578 __Pyx_AddTraceback("rados.Ioctx.operate_aio_read_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
47579 __pyx_r = NULL((void*)0);
47580 __pyx_L0:;
47581 __Pyx_XDECREF((PyObject *)__pyx_v__read_op)do { if (((PyObject *)__pyx_v__read_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__read_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__read_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__read_op)))); } while (0
); } while (0)
;
47582 __Pyx_XDECREF((PyObject *)__pyx_v_completion)do { if (((PyObject *)__pyx_v_completion) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v_completion))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v_completion)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v_completion)))); } while (
0); } while (0)
;
47583 __Pyx_XDECREF(__pyx_v_oid)do { if ((__pyx_v_oid) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_oid))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_oid)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_oid)))); } while (0); } while (0)
;
47584 __Pyx_XGIVEREF(__pyx_r);
47585 __Pyx_RefNannyFinishContext();
47586 return __pyx_r;
47587}
47588
47589/* "rados.pyx":3582
47590 *
47591 * @requires(('read_op', ReadOp), ('start_after', str_type), ('filter_prefix', str_type), ('max_return', int))
47592 * def get_omap_vals(self, read_op, start_after, filter_prefix, max_return): # <<<<<<<<<<<<<<
47593 * """
47594 * get the omap values
47595 */
47596
47597/* Python wrapper */
47598static PyObject *__pyx_pw_5rados_5Ioctx_111get_omap_vals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47599static char __pyx_doc_5rados_5Ioctx_110get_omap_vals[] = "Ioctx.get_omap_vals(self, read_op, start_after, filter_prefix, max_return)\n\n get the omap values\n :para read_op: read operation object\n :type read_op: ReadOp\n :para start_after: list keys starting after start_after\n :type start_after: str\n :para filter_prefix: list only keys beginning with filter_prefix\n :type filter_prefix: str\n :para max_return: list no more than max_return key/value pairs\n :type max_return: int\n :returns: an iterator over the requested omap values, return value from this action\n ";
47600static PyObject *__pyx_pw_5rados_5Ioctx_111get_omap_vals(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47601 PyObject *__pyx_v_read_op = 0;
47602 PyObject *__pyx_v_start_after = 0;
47603 PyObject *__pyx_v_filter_prefix = 0;
47604 PyObject *__pyx_v_max_return = 0;
47605 int __pyx_lineno = 0;
47606 const char *__pyx_filename = NULL((void*)0);
47607 int __pyx_clineno = 0;
47608 PyObject *__pyx_r = 0;
47609 __Pyx_RefNannyDeclarations
47610 __Pyx_RefNannySetupContext("get_omap_vals (wrapper)", 0);
47611 {
47612 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_read_op,&__pyx_n_s_start_after,&__pyx_n_s_filter_prefix,&__pyx_n_s_max_return,0};
47613 PyObject* values[4] = {0,0,0,0};
47614 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
47615 Py_ssize_t kw_args;
47616 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
47617 switch (pos_args) {
47618 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
47619 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
47620 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
47621 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
47622 case 0: break;
47623 default: goto __pyx_L5_argtuple_error;
47624 }
47625 kw_args = PyDict_Size(__pyx_kwds);
47626 switch (pos_args) {
47627 case 0:
47628 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op
)) != 0), 1)
) kw_args--;
47629 else goto __pyx_L5_argtuple_error;
47630 case 1:
47631 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_after)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_after
)) != 0), 1)
) kw_args--;
47632 else {
47633 __Pyx_RaiseArgtupleInvalid("get_omap_vals", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3582; __pyx_clineno = __LINE__47633; goto __pyx_L3_error;}
47634 }
47635 case 2:
47636 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_filter_prefix)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_filter_prefix
)) != 0), 1)
) kw_args--;
47637 else {
47638 __Pyx_RaiseArgtupleInvalid("get_omap_vals", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3582; __pyx_clineno = __LINE__47638; goto __pyx_L3_error;}
47639 }
47640 case 3:
47641 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_max_return)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_max_return
)) != 0), 1)
) kw_args--;
47642 else {
47643 __Pyx_RaiseArgtupleInvalid("get_omap_vals", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3582; __pyx_clineno = __LINE__47643; goto __pyx_L3_error;}
47644 }
47645 }
47646 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
47647 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_omap_vals") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "get_omap_vals") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3582; __pyx_clineno = __LINE__47647; goto __pyx_L3_error;}
47648 }
47649 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 4) {
47650 goto __pyx_L5_argtuple_error;
47651 } else {
47652 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
47653 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
47654 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
47655 values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
47656 }
47657 __pyx_v_read_op = values[0];
47658 __pyx_v_start_after = values[1];
47659 __pyx_v_filter_prefix = values[2];
47660 __pyx_v_max_return = values[3];
47661 }
47662 goto __pyx_L4_argument_unpacking_done;
47663 __pyx_L5_argtuple_error:;
47664 __Pyx_RaiseArgtupleInvalid("get_omap_vals", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3582; __pyx_clineno = __LINE__47664; goto __pyx_L3_error;}
47665 __pyx_L3_error:;
47666 __Pyx_AddTraceback("rados.Ioctx.get_omap_vals", __pyx_clineno, __pyx_lineno, __pyx_filename);
47667 __Pyx_RefNannyFinishContext();
47668 return NULL((void*)0);
47669 __pyx_L4_argument_unpacking_done:;
47670 __pyx_r = __pyx_pf_5rados_5Ioctx_110get_omap_vals(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_read_op, __pyx_v_start_after, __pyx_v_filter_prefix, __pyx_v_max_return);
47671
47672 /* function exit code */
47673 __Pyx_RefNannyFinishContext();
47674 return __pyx_r;
47675}
47676
47677static PyObject *__pyx_pf_5rados_5Ioctx_110get_omap_vals(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_start_after, PyObject *__pyx_v_filter_prefix, PyObject *__pyx_v_max_return) {
47678 char *__pyx_v__start_after;
47679 char *__pyx_v__filter_prefix;
47680 struct __pyx_obj_5rados_ReadOp *__pyx_v__read_op = 0;
47681 rados_omap_iter_t __pyx_v_iter_addr;
47682 int __pyx_v__max_return;
47683 struct __pyx_obj_5rados_OmapIterator *__pyx_v_it = NULL((void*)0);
47684 PyObject *__pyx_r = NULL((void*)0);
47685 __Pyx_RefNannyDeclarations
47686 PyObject *__pyx_t_1 = NULL((void*)0);
47687 int __pyx_t_2;
47688 PyObject *__pyx_t_3 = NULL((void*)0);
47689 PyObject *__pyx_t_4 = NULL((void*)0);
47690 PyObject *__pyx_t_5 = NULL((void*)0);
47691 Py_ssize_t __pyx_t_6;
47692 PyObject *__pyx_t_7 = NULL((void*)0);
47693 char *__pyx_t_8;
47694 int __pyx_t_9;
47695 int __pyx_lineno = 0;
47696 const char *__pyx_filename = NULL((void*)0);
47697 int __pyx_clineno = 0;
47698 __Pyx_RefNannySetupContext("get_omap_vals", 0);
47699 __Pyx_INCREF(__pyx_v_start_after)( ((PyObject*)(__pyx_v_start_after))->ob_refcnt++);
47700 __Pyx_INCREF(__pyx_v_filter_prefix)( ((PyObject*)(__pyx_v_filter_prefix))->ob_refcnt++);
47701
47702 /* "rados.pyx":3596
47703 * """
47704 *
47705 * start_after = cstr(start_after, 'start_after') if start_after else None # <<<<<<<<<<<<<<
47706 * filter_prefix = cstr(filter_prefix, 'filter_prefix') if filter_prefix else None
47707 * cdef:
47708 */
47709 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_start_after); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3596; __pyx_clineno = __LINE__47709; goto __pyx_L1_error;}
47710 if (__pyx_t_2) {
47711 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3596; __pyx_clineno = __LINE__47711; goto __pyx_L1_error;}
47712 __Pyx_GOTREF(__pyx_t_4);
47713 __pyx_t_5 = NULL((void*)0);
47714 __pyx_t_6 = 0;
47715 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
47716 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
47717 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
47718 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
47719 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
47720 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
47721 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47722 __pyx_t_6 = 1;
47723 }
47724 }
47725 __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3596; __pyx_clineno = __LINE__47725; goto __pyx_L1_error;}
47726 __Pyx_GOTREF(__pyx_t_7);
47727 if (__pyx_t_5) {
47728 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
47729 }
47730 __Pyx_INCREF(__pyx_v_start_after)( ((PyObject*)(__pyx_v_start_after))->ob_refcnt++);
47731 __Pyx_GIVEREF(__pyx_v_start_after);
47732 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_start_after)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_v_start_after
)
;
47733 __Pyx_INCREF(__pyx_n_s_start_after)( ((PyObject*)(__pyx_n_s_start_after))->ob_refcnt++);
47734 __Pyx_GIVEREF(__pyx_n_s_start_after);
47735 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_s_start_after)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_n_s_start_after
)
;
47736 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3596; __pyx_clineno = __LINE__47736; goto __pyx_L1_error;}
47737 __Pyx_GOTREF(__pyx_t_3);
47738 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
47739 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
47740 __pyx_t_1 = __pyx_t_3;
47741 __pyx_t_3 = 0;
47742 } else {
47743 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
47744 __pyx_t_1 = Py_None(&_Py_NoneStruct);
47745 }
47746 __Pyx_DECREF_SET(__pyx_v_start_after, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_start_after; __pyx_v_start_after
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
47747 __pyx_t_1 = 0;
47748
47749 /* "rados.pyx":3597
47750 *
47751 * start_after = cstr(start_after, 'start_after') if start_after else None
47752 * filter_prefix = cstr(filter_prefix, 'filter_prefix') if filter_prefix else None # <<<<<<<<<<<<<<
47753 * cdef:
47754 * char *_start_after = opt_str(start_after)
47755 */
47756 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_filter_prefix); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3597; __pyx_clineno = __LINE__47756; goto __pyx_L1_error;}
47757 if (__pyx_t_2) {
47758 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3597; __pyx_clineno = __LINE__47758; goto __pyx_L1_error;}
47759 __Pyx_GOTREF(__pyx_t_4);
47760 __pyx_t_7 = NULL((void*)0);
47761 __pyx_t_6 = 0;
47762 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
47763 __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
47764 if (likely(__pyx_t_7)__builtin_expect(!!(__pyx_t_7), 1)) {
47765 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
47766 __Pyx_INCREF(__pyx_t_7)( ((PyObject*)(__pyx_t_7))->ob_refcnt++);
47767 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
47768 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
47769 __pyx_t_6 = 1;
47770 }
47771 }
47772 __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3597; __pyx_clineno = __LINE__47772; goto __pyx_L1_error;}
47773 __Pyx_GOTREF(__pyx_t_5);
47774 if (__pyx_t_7) {
47775 __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_7); __pyx_t_7 = NULL((void*)0);
47776 }
47777 __Pyx_INCREF(__pyx_v_filter_prefix)( ((PyObject*)(__pyx_v_filter_prefix))->ob_refcnt++);
47778 __Pyx_GIVEREF(__pyx_v_filter_prefix);
47779 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_filter_prefix)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_6] = __pyx_v_filter_prefix
)
;
47780 __Pyx_INCREF(__pyx_n_s_filter_prefix)( ((PyObject*)(__pyx_n_s_filter_prefix))->ob_refcnt++);
47781 __Pyx_GIVEREF(__pyx_n_s_filter_prefix);
47782 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_n_s_filter_prefix)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_6] = __pyx_n_s_filter_prefix
)
;
47783 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3597; __pyx_clineno = __LINE__47783; goto __pyx_L1_error;}
47784 __Pyx_GOTREF(__pyx_t_3);
47785 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
47786 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
47787 __pyx_t_1 = __pyx_t_3;
47788 __pyx_t_3 = 0;
47789 } else {
47790 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
47791 __pyx_t_1 = Py_None(&_Py_NoneStruct);
47792 }
47793 __Pyx_DECREF_SET(__pyx_v_filter_prefix, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_filter_prefix; __pyx_v_filter_prefix
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
47794 __pyx_t_1 = 0;
47795
47796 /* "rados.pyx":3599
47797 * filter_prefix = cstr(filter_prefix, 'filter_prefix') if filter_prefix else None
47798 * cdef:
47799 * char *_start_after = opt_str(start_after) # <<<<<<<<<<<<<<
47800 * char *_filter_prefix = opt_str(filter_prefix)
47801 * ReadOp _read_op = read_op
47802 */
47803 __pyx_t_8 = __pyx_f_5rados_opt_str(__pyx_v_start_after); if (unlikely(__pyx_t_8 == NULL && PyErr_Occurred())__builtin_expect(!!(__pyx_t_8 == ((void*)0) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3599; __pyx_clineno = __LINE__47803; goto __pyx_L1_error;}
47804 __pyx_v__start_after = __pyx_t_8;
47805
47806 /* "rados.pyx":3600
47807 * cdef:
47808 * char *_start_after = opt_str(start_after)
47809 * char *_filter_prefix = opt_str(filter_prefix) # <<<<<<<<<<<<<<
47810 * ReadOp _read_op = read_op
47811 * rados_omap_iter_t iter_addr = NULL
47812 */
47813 __pyx_t_8 = __pyx_f_5rados_opt_str(__pyx_v_filter_prefix); if (unlikely(__pyx_t_8 == NULL && PyErr_Occurred())__builtin_expect(!!(__pyx_t_8 == ((void*)0) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3600; __pyx_clineno = __LINE__47813; goto __pyx_L1_error;}
47814 __pyx_v__filter_prefix = __pyx_t_8;
47815
47816 /* "rados.pyx":3601
47817 * char *_start_after = opt_str(start_after)
47818 * char *_filter_prefix = opt_str(filter_prefix)
47819 * ReadOp _read_op = read_op # <<<<<<<<<<<<<<
47820 * rados_omap_iter_t iter_addr = NULL
47821 * int _max_return = max_return
47822 */
47823 if (!(likely(((__pyx_v_read_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp)))__builtin_expect(!!(((__pyx_v_read_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3601; __pyx_clineno = __LINE__47823; goto __pyx_L1_error;}
47824 __pyx_t_1 = __pyx_v_read_op;
47825 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
47826 __pyx_v__read_op = ((struct __pyx_obj_5rados_ReadOp *)__pyx_t_1);
47827 __pyx_t_1 = 0;
47828
47829 /* "rados.pyx":3602
47830 * char *_filter_prefix = opt_str(filter_prefix)
47831 * ReadOp _read_op = read_op
47832 * rados_omap_iter_t iter_addr = NULL # <<<<<<<<<<<<<<
47833 * int _max_return = max_return
47834 *
47835 */
47836 __pyx_v_iter_addr = NULL((void*)0);
47837
47838 /* "rados.pyx":3603
47839 * ReadOp _read_op = read_op
47840 * rados_omap_iter_t iter_addr = NULL
47841 * int _max_return = max_return # <<<<<<<<<<<<<<
47842 *
47843 * with nogil:
47844 */
47845 __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_max_return); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_9 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3603; __pyx_clineno = __LINE__47845; goto __pyx_L1_error;}
47846 __pyx_v__max_return = __pyx_t_9;
47847
47848 /* "rados.pyx":3605
47849 * int _max_return = max_return
47850 *
47851 * with nogil: # <<<<<<<<<<<<<<
47852 * rados_read_op_omap_get_vals2(_read_op.read_op, _start_after, _filter_prefix,
47853 * _max_return, &iter_addr, NULL, NULL)
47854 */
47855 {
47856 #ifdef WITH_THREAD1
47857 PyThreadState *_save;
47858 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
47859 #endif
47860 /*try:*/ {
47861
47862 /* "rados.pyx":3606
47863 *
47864 * with nogil:
47865 * rados_read_op_omap_get_vals2(_read_op.read_op, _start_after, _filter_prefix, # <<<<<<<<<<<<<<
47866 * _max_return, &iter_addr, NULL, NULL)
47867 * it = OmapIterator(self)
47868 */
47869 rados_read_op_omap_get_vals2(__pyx_v__read_op->read_op, __pyx_v__start_after, __pyx_v__filter_prefix, __pyx_v__max_return, (&__pyx_v_iter_addr), NULL((void*)0), NULL((void*)0));
47870 }
47871
47872 /* "rados.pyx":3605
47873 * int _max_return = max_return
47874 *
47875 * with nogil: # <<<<<<<<<<<<<<
47876 * rados_read_op_omap_get_vals2(_read_op.read_op, _start_after, _filter_prefix,
47877 * _max_return, &iter_addr, NULL, NULL)
47878 */
47879 /*finally:*/ {
47880 /*normal exit:*/{
47881 #ifdef WITH_THREAD1
47882 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
47883 #endif
47884 goto __pyx_L5;
47885 }
47886 __pyx_L5:;
47887 }
47888 }
47889
47890 /* "rados.pyx":3608
47891 * rados_read_op_omap_get_vals2(_read_op.read_op, _start_after, _filter_prefix,
47892 * _max_return, &iter_addr, NULL, NULL)
47893 * it = OmapIterator(self) # <<<<<<<<<<<<<<
47894 * it.ctx = iter_addr
47895 * return it, 0 # 0 is meaningless; there for backward-compat
47896 */
47897 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3608; __pyx_clineno = __LINE__47897; goto __pyx_L1_error;}
47898 __Pyx_GOTREF(__pyx_t_1);
47899 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
47900 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
47901 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
47902 __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_OmapIterator), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3608; __pyx_clineno = __LINE__47902; goto __pyx_L1_error;}
47903 __Pyx_GOTREF(__pyx_t_3);
47904 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
47905 __pyx_v_it = ((struct __pyx_obj_5rados_OmapIterator *)__pyx_t_3);
47906 __pyx_t_3 = 0;
47907
47908 /* "rados.pyx":3609
47909 * _max_return, &iter_addr, NULL, NULL)
47910 * it = OmapIterator(self)
47911 * it.ctx = iter_addr # <<<<<<<<<<<<<<
47912 * return it, 0 # 0 is meaningless; there for backward-compat
47913 *
47914 */
47915 __pyx_v_it->ctx = __pyx_v_iter_addr;
47916
47917 /* "rados.pyx":3610
47918 * it = OmapIterator(self)
47919 * it.ctx = iter_addr
47920 * return it, 0 # 0 is meaningless; there for backward-compat # <<<<<<<<<<<<<<
47921 *
47922 * @requires(('read_op', ReadOp), ('start_after', str_type), ('max_return', int))
47923 */
47924 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
47925 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3610; __pyx_clineno = __LINE__47925; goto __pyx_L1_error;}
47926 __Pyx_GOTREF(__pyx_t_3);
47927 __Pyx_INCREF(((PyObject *)__pyx_v_it))( ((PyObject*)(((PyObject *)__pyx_v_it)))->ob_refcnt++);
47928 __Pyx_GIVEREF(((PyObject *)__pyx_v_it));
47929 PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_it))(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = ((PyObject *
)__pyx_v_it))
;
47930 __Pyx_INCREF(__pyx_int_0)( ((PyObject*)(__pyx_int_0))->ob_refcnt++);
47931 __Pyx_GIVEREF(__pyx_int_0);
47932 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_int_0);
47933 __pyx_r = __pyx_t_3;
47934 __pyx_t_3 = 0;
47935 goto __pyx_L0;
47936
47937 /* "rados.pyx":3582
47938 *
47939 * @requires(('read_op', ReadOp), ('start_after', str_type), ('filter_prefix', str_type), ('max_return', int))
47940 * def get_omap_vals(self, read_op, start_after, filter_prefix, max_return): # <<<<<<<<<<<<<<
47941 * """
47942 * get the omap values
47943 */
47944
47945 /* function exit code */
47946 __pyx_L1_error:;
47947 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
47948 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
47949 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
47950 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
47951 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
47952 __Pyx_AddTraceback("rados.Ioctx.get_omap_vals", __pyx_clineno, __pyx_lineno, __pyx_filename);
47953 __pyx_r = NULL((void*)0);
47954 __pyx_L0:;
47955 __Pyx_XDECREF((PyObject *)__pyx_v__read_op)do { if (((PyObject *)__pyx_v__read_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__read_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__read_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__read_op)))); } while (0
); } while (0)
;
47956 __Pyx_XDECREF((PyObject *)__pyx_v_it)do { if (((PyObject *)__pyx_v_it) == ((void*)0)) ; else do { if
( --((PyObject*)((PyObject *)__pyx_v_it))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)((PyObject *)__pyx_v_it
)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)((PyObject
*)__pyx_v_it)))); } while (0); } while (0)
;
47957 __Pyx_XDECREF(__pyx_v_start_after)do { if ((__pyx_v_start_after) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_start_after))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_start_after)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_start_after
)))); } while (0); } while (0)
;
47958 __Pyx_XDECREF(__pyx_v_filter_prefix)do { if ((__pyx_v_filter_prefix) == ((void*)0)) ; else do { if
( --((PyObject*)(__pyx_v_filter_prefix))->ob_refcnt != 0)
; else ( (*(((PyObject*)((PyObject *)(__pyx_v_filter_prefix)
))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_filter_prefix
)))); } while (0); } while (0)
;
47959 __Pyx_XGIVEREF(__pyx_r);
47960 __Pyx_RefNannyFinishContext();
47961 return __pyx_r;
47962}
47963
47964/* "rados.pyx":3613
47965 *
47966 * @requires(('read_op', ReadOp), ('start_after', str_type), ('max_return', int))
47967 * def get_omap_keys(self, read_op, start_after, max_return): # <<<<<<<<<<<<<<
47968 * """
47969 * get the omap keys
47970 */
47971
47972/* Python wrapper */
47973static PyObject *__pyx_pw_5rados_5Ioctx_113get_omap_keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
47974static char __pyx_doc_5rados_5Ioctx_112get_omap_keys[] = "Ioctx.get_omap_keys(self, read_op, start_after, max_return)\n\n get the omap keys\n :para read_op: read operation object\n :type read_op: ReadOp\n :para start_after: list keys starting after start_after\n :type start_after: str\n :para max_return: list no more than max_return key/value pairs\n :type max_return: int\n :returns: an iterator over the requested omap values, return value from this action\n ";
47975static PyObject *__pyx_pw_5rados_5Ioctx_113get_omap_keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
47976 PyObject *__pyx_v_read_op = 0;
47977 PyObject *__pyx_v_start_after = 0;
47978 PyObject *__pyx_v_max_return = 0;
47979 int __pyx_lineno = 0;
47980 const char *__pyx_filename = NULL((void*)0);
47981 int __pyx_clineno = 0;
47982 PyObject *__pyx_r = 0;
47983 __Pyx_RefNannyDeclarations
47984 __Pyx_RefNannySetupContext("get_omap_keys (wrapper)", 0);
47985 {
47986 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_read_op,&__pyx_n_s_start_after,&__pyx_n_s_max_return,0};
47987 PyObject* values[3] = {0,0,0};
47988 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
47989 Py_ssize_t kw_args;
47990 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
47991 switch (pos_args) {
47992 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
47993 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
47994 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
47995 case 0: break;
47996 default: goto __pyx_L5_argtuple_error;
47997 }
47998 kw_args = PyDict_Size(__pyx_kwds);
47999 switch (pos_args) {
48000 case 0:
48001 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op
)) != 0), 1)
) kw_args--;
48002 else goto __pyx_L5_argtuple_error;
48003 case 1:
48004 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_after)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_start_after
)) != 0), 1)
) kw_args--;
48005 else {
48006 __Pyx_RaiseArgtupleInvalid("get_omap_keys", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3613; __pyx_clineno = __LINE__48006; goto __pyx_L3_error;}
48007 }
48008 case 2:
48009 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_max_return)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_max_return
)) != 0), 1)
) kw_args--;
48010 else {
48011 __Pyx_RaiseArgtupleInvalid("get_omap_keys", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3613; __pyx_clineno = __LINE__48011; goto __pyx_L3_error;}
48012 }
48013 }
48014 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
48015 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_omap_keys") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "get_omap_keys") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3613; __pyx_clineno = __LINE__48015; goto __pyx_L3_error;}
48016 }
48017 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
48018 goto __pyx_L5_argtuple_error;
48019 } else {
48020 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
48021 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
48022 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
48023 }
48024 __pyx_v_read_op = values[0];
48025 __pyx_v_start_after = values[1];
48026 __pyx_v_max_return = values[2];
48027 }
48028 goto __pyx_L4_argument_unpacking_done;
48029 __pyx_L5_argtuple_error:;
48030 __Pyx_RaiseArgtupleInvalid("get_omap_keys", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3613; __pyx_clineno = __LINE__48030; goto __pyx_L3_error;}
48031 __pyx_L3_error:;
48032 __Pyx_AddTraceback("rados.Ioctx.get_omap_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
48033 __Pyx_RefNannyFinishContext();
48034 return NULL((void*)0);
48035 __pyx_L4_argument_unpacking_done:;
48036 __pyx_r = __pyx_pf_5rados_5Ioctx_112get_omap_keys(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_read_op, __pyx_v_start_after, __pyx_v_max_return);
48037
48038 /* function exit code */
48039 __Pyx_RefNannyFinishContext();
48040 return __pyx_r;
48041}
48042
48043static PyObject *__pyx_pf_5rados_5Ioctx_112get_omap_keys(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_start_after, PyObject *__pyx_v_max_return) {
48044 char *__pyx_v__start_after;
48045 struct __pyx_obj_5rados_ReadOp *__pyx_v__read_op = 0;
48046 rados_omap_iter_t __pyx_v_iter_addr;
48047 int __pyx_v__max_return;
48048 struct __pyx_obj_5rados_OmapIterator *__pyx_v_it = NULL((void*)0);
48049 PyObject *__pyx_r = NULL((void*)0);
48050 __Pyx_RefNannyDeclarations
48051 PyObject *__pyx_t_1 = NULL((void*)0);
48052 int __pyx_t_2;
48053 PyObject *__pyx_t_3 = NULL((void*)0);
48054 PyObject *__pyx_t_4 = NULL((void*)0);
48055 PyObject *__pyx_t_5 = NULL((void*)0);
48056 Py_ssize_t __pyx_t_6;
48057 PyObject *__pyx_t_7 = NULL((void*)0);
48058 char *__pyx_t_8;
48059 int __pyx_t_9;
48060 int __pyx_lineno = 0;
48061 const char *__pyx_filename = NULL((void*)0);
48062 int __pyx_clineno = 0;
48063 __Pyx_RefNannySetupContext("get_omap_keys", 0);
48064 __Pyx_INCREF(__pyx_v_start_after)( ((PyObject*)(__pyx_v_start_after))->ob_refcnt++);
48065
48066 /* "rados.pyx":3624
48067 * :returns: an iterator over the requested omap values, return value from this action
48068 * """
48069 * start_after = cstr(start_after, 'start_after') if start_after else None # <<<<<<<<<<<<<<
48070 * cdef:
48071 * char *_start_after = opt_str(start_after)
48072 */
48073 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_start_after); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3624; __pyx_clineno = __LINE__48073; goto __pyx_L1_error;}
48074 if (__pyx_t_2) {
48075 __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3624; __pyx_clineno = __LINE__48075; goto __pyx_L1_error;}
48076 __Pyx_GOTREF(__pyx_t_4);
48077 __pyx_t_5 = NULL((void*)0);
48078 __pyx_t_6 = 0;
48079 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 0)
) {
48080 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
48081 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
48082 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
48083 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
48084 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
48085 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
48086 __pyx_t_6 = 1;
48087 }
48088 }
48089 __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3624; __pyx_clineno = __LINE__48089; goto __pyx_L1_error;}
48090 __Pyx_GOTREF(__pyx_t_7);
48091 if (__pyx_t_5) {
48092 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
48093 }
48094 __Pyx_INCREF(__pyx_v_start_after)( ((PyObject*)(__pyx_v_start_after))->ob_refcnt++);
48095 __Pyx_GIVEREF(__pyx_v_start_after);
48096 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_start_after)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_v_start_after
)
;
48097 __Pyx_INCREF(__pyx_n_s_start_after)( ((PyObject*)(__pyx_n_s_start_after))->ob_refcnt++);
48098 __Pyx_GIVEREF(__pyx_n_s_start_after);
48099 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_s_start_after)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_n_s_start_after
)
;
48100 __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3624; __pyx_clineno = __LINE__48100; goto __pyx_L1_error;}
48101 __Pyx_GOTREF(__pyx_t_3);
48102 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
48103 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
48104 __pyx_t_1 = __pyx_t_3;
48105 __pyx_t_3 = 0;
48106 } else {
48107 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
48108 __pyx_t_1 = Py_None(&_Py_NoneStruct);
48109 }
48110 __Pyx_DECREF_SET(__pyx_v_start_after, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_start_after; __pyx_v_start_after
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
48111 __pyx_t_1 = 0;
48112
48113 /* "rados.pyx":3626
48114 * start_after = cstr(start_after, 'start_after') if start_after else None
48115 * cdef:
48116 * char *_start_after = opt_str(start_after) # <<<<<<<<<<<<<<
48117 * ReadOp _read_op = read_op
48118 * rados_omap_iter_t iter_addr = NULL
48119 */
48120 __pyx_t_8 = __pyx_f_5rados_opt_str(__pyx_v_start_after); if (unlikely(__pyx_t_8 == NULL && PyErr_Occurred())__builtin_expect(!!(__pyx_t_8 == ((void*)0) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3626; __pyx_clineno = __LINE__48120; goto __pyx_L1_error;}
48121 __pyx_v__start_after = __pyx_t_8;
48122
48123 /* "rados.pyx":3627
48124 * cdef:
48125 * char *_start_after = opt_str(start_after)
48126 * ReadOp _read_op = read_op # <<<<<<<<<<<<<<
48127 * rados_omap_iter_t iter_addr = NULL
48128 * int _max_return = max_return
48129 */
48130 if (!(likely(((__pyx_v_read_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp)))__builtin_expect(!!(((__pyx_v_read_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3627; __pyx_clineno = __LINE__48130; goto __pyx_L1_error;}
48131 __pyx_t_1 = __pyx_v_read_op;
48132 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
48133 __pyx_v__read_op = ((struct __pyx_obj_5rados_ReadOp *)__pyx_t_1);
48134 __pyx_t_1 = 0;
48135
48136 /* "rados.pyx":3628
48137 * char *_start_after = opt_str(start_after)
48138 * ReadOp _read_op = read_op
48139 * rados_omap_iter_t iter_addr = NULL # <<<<<<<<<<<<<<
48140 * int _max_return = max_return
48141 *
48142 */
48143 __pyx_v_iter_addr = NULL((void*)0);
48144
48145 /* "rados.pyx":3629
48146 * ReadOp _read_op = read_op
48147 * rados_omap_iter_t iter_addr = NULL
48148 * int _max_return = max_return # <<<<<<<<<<<<<<
48149 *
48150 * with nogil:
48151 */
48152 __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_v_max_return); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_9 == (int)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3629; __pyx_clineno = __LINE__48152; goto __pyx_L1_error;}
48153 __pyx_v__max_return = __pyx_t_9;
48154
48155 /* "rados.pyx":3631
48156 * int _max_return = max_return
48157 *
48158 * with nogil: # <<<<<<<<<<<<<<
48159 * rados_read_op_omap_get_keys2(_read_op.read_op, _start_after,
48160 * _max_return, &iter_addr, NULL, NULL)
48161 */
48162 {
48163 #ifdef WITH_THREAD1
48164 PyThreadState *_save;
48165 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
48166 #endif
48167 /*try:*/ {
48168
48169 /* "rados.pyx":3632
48170 *
48171 * with nogil:
48172 * rados_read_op_omap_get_keys2(_read_op.read_op, _start_after, # <<<<<<<<<<<<<<
48173 * _max_return, &iter_addr, NULL, NULL)
48174 * it = OmapIterator(self)
48175 */
48176 rados_read_op_omap_get_keys2(__pyx_v__read_op->read_op, __pyx_v__start_after, __pyx_v__max_return, (&__pyx_v_iter_addr), NULL((void*)0), NULL((void*)0));
48177 }
48178
48179 /* "rados.pyx":3631
48180 * int _max_return = max_return
48181 *
48182 * with nogil: # <<<<<<<<<<<<<<
48183 * rados_read_op_omap_get_keys2(_read_op.read_op, _start_after,
48184 * _max_return, &iter_addr, NULL, NULL)
48185 */
48186 /*finally:*/ {
48187 /*normal exit:*/{
48188 #ifdef WITH_THREAD1
48189 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
48190 #endif
48191 goto __pyx_L5;
48192 }
48193 __pyx_L5:;
48194 }
48195 }
48196
48197 /* "rados.pyx":3634
48198 * rados_read_op_omap_get_keys2(_read_op.read_op, _start_after,
48199 * _max_return, &iter_addr, NULL, NULL)
48200 * it = OmapIterator(self) # <<<<<<<<<<<<<<
48201 * it.ctx = iter_addr
48202 * return it, 0 # 0 is meaningless; there for backward-compat
48203 */
48204 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3634; __pyx_clineno = __LINE__48204; goto __pyx_L1_error;}
48205 __Pyx_GOTREF(__pyx_t_1);
48206 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
48207 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
48208 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
48209 __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_OmapIterator), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3634; __pyx_clineno = __LINE__48209; goto __pyx_L1_error;}
48210 __Pyx_GOTREF(__pyx_t_3);
48211 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
48212 __pyx_v_it = ((struct __pyx_obj_5rados_OmapIterator *)__pyx_t_3);
48213 __pyx_t_3 = 0;
48214
48215 /* "rados.pyx":3635
48216 * _max_return, &iter_addr, NULL, NULL)
48217 * it = OmapIterator(self)
48218 * it.ctx = iter_addr # <<<<<<<<<<<<<<
48219 * return it, 0 # 0 is meaningless; there for backward-compat
48220 *
48221 */
48222 __pyx_v_it->ctx = __pyx_v_iter_addr;
48223
48224 /* "rados.pyx":3636
48225 * it = OmapIterator(self)
48226 * it.ctx = iter_addr
48227 * return it, 0 # 0 is meaningless; there for backward-compat # <<<<<<<<<<<<<<
48228 *
48229 * @requires(('read_op', ReadOp), ('keys', tuple))
48230 */
48231 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
48232 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3636; __pyx_clineno = __LINE__48232; goto __pyx_L1_error;}
48233 __Pyx_GOTREF(__pyx_t_3);
48234 __Pyx_INCREF(((PyObject *)__pyx_v_it))( ((PyObject*)(((PyObject *)__pyx_v_it)))->ob_refcnt++);
48235 __Pyx_GIVEREF(((PyObject *)__pyx_v_it));
48236 PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_it))(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = ((PyObject *
)__pyx_v_it))
;
48237 __Pyx_INCREF(__pyx_int_0)( ((PyObject*)(__pyx_int_0))->ob_refcnt++);
48238 __Pyx_GIVEREF(__pyx_int_0);
48239 PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0)(((PyTupleObject *)(__pyx_t_3))->ob_item[1] = __pyx_int_0);
48240 __pyx_r = __pyx_t_3;
48241 __pyx_t_3 = 0;
48242 goto __pyx_L0;
48243
48244 /* "rados.pyx":3613
48245 *
48246 * @requires(('read_op', ReadOp), ('start_after', str_type), ('max_return', int))
48247 * def get_omap_keys(self, read_op, start_after, max_return): # <<<<<<<<<<<<<<
48248 * """
48249 * get the omap keys
48250 */
48251
48252 /* function exit code */
48253 __pyx_L1_error:;
48254 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
48255 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
48256 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
48257 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
48258 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
48259 __Pyx_AddTraceback("rados.Ioctx.get_omap_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
48260 __pyx_r = NULL((void*)0);
48261 __pyx_L0:;
48262 __Pyx_XDECREF((PyObject *)__pyx_v__read_op)do { if (((PyObject *)__pyx_v__read_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__read_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__read_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__read_op)))); } while (0
); } while (0)
;
48263 __Pyx_XDECREF((PyObject *)__pyx_v_it)do { if (((PyObject *)__pyx_v_it) == ((void*)0)) ; else do { if
( --((PyObject*)((PyObject *)__pyx_v_it))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)((PyObject *)__pyx_v_it
)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)((PyObject
*)__pyx_v_it)))); } while (0); } while (0)
;
48264 __Pyx_XDECREF(__pyx_v_start_after)do { if ((__pyx_v_start_after) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_start_after))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_start_after)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_start_after
)))); } while (0); } while (0)
;
48265 __Pyx_XGIVEREF(__pyx_r);
48266 __Pyx_RefNannyFinishContext();
48267 return __pyx_r;
48268}
48269
48270/* "rados.pyx":3639
48271 *
48272 * @requires(('read_op', ReadOp), ('keys', tuple))
48273 * def get_omap_vals_by_keys(self, read_op, keys): # <<<<<<<<<<<<<<
48274 * """
48275 * get the omap values by keys
48276 */
48277
48278/* Python wrapper */
48279static PyObject *__pyx_pw_5rados_5Ioctx_115get_omap_vals_by_keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48280static char __pyx_doc_5rados_5Ioctx_114get_omap_vals_by_keys[] = "Ioctx.get_omap_vals_by_keys(self, read_op, keys)\n\n get the omap values by keys\n :para read_op: read operation object\n :type read_op: ReadOp\n :para keys: input key tuple\n :type keys: tuple\n :returns: an iterator over the requested omap values, return value from this action\n ";
48281static PyObject *__pyx_pw_5rados_5Ioctx_115get_omap_vals_by_keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48282 PyObject *__pyx_v_read_op = 0;
48283 PyObject *__pyx_v_keys = 0;
48284 int __pyx_lineno = 0;
48285 const char *__pyx_filename = NULL((void*)0);
48286 int __pyx_clineno = 0;
48287 PyObject *__pyx_r = 0;
48288 __Pyx_RefNannyDeclarations
48289 __Pyx_RefNannySetupContext("get_omap_vals_by_keys (wrapper)", 0);
48290 {
48291 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_read_op,&__pyx_n_s_keys,0};
48292 PyObject* values[2] = {0,0};
48293 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
48294 Py_ssize_t kw_args;
48295 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
48296 switch (pos_args) {
48297 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
48298 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
48299 case 0: break;
48300 default: goto __pyx_L5_argtuple_error;
48301 }
48302 kw_args = PyDict_Size(__pyx_kwds);
48303 switch (pos_args) {
48304 case 0:
48305 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_read_op
)) != 0), 1)
) kw_args--;
48306 else goto __pyx_L5_argtuple_error;
48307 case 1:
48308 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_keys)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_keys
)) != 0), 1)
) kw_args--;
48309 else {
48310 __Pyx_RaiseArgtupleInvalid("get_omap_vals_by_keys", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3639; __pyx_clineno = __LINE__48310; goto __pyx_L3_error;}
48311 }
48312 }
48313 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
48314 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_omap_vals_by_keys") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "get_omap_vals_by_keys") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3639; __pyx_clineno = __LINE__48314; goto __pyx_L3_error;}
48315 }
48316 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
48317 goto __pyx_L5_argtuple_error;
48318 } else {
48319 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
48320 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
48321 }
48322 __pyx_v_read_op = values[0];
48323 __pyx_v_keys = values[1];
48324 }
48325 goto __pyx_L4_argument_unpacking_done;
48326 __pyx_L5_argtuple_error:;
48327 __Pyx_RaiseArgtupleInvalid("get_omap_vals_by_keys", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3639; __pyx_clineno = __LINE__48327; goto __pyx_L3_error;}
48328 __pyx_L3_error:;
48329 __Pyx_AddTraceback("rados.Ioctx.get_omap_vals_by_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
48330 __Pyx_RefNannyFinishContext();
48331 return NULL((void*)0);
48332 __pyx_L4_argument_unpacking_done:;
48333 __pyx_r = __pyx_pf_5rados_5Ioctx_114get_omap_vals_by_keys(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_read_op, __pyx_v_keys);
48334
48335 /* function exit code */
48336 __Pyx_RefNannyFinishContext();
48337 return __pyx_r;
48338}
48339
48340static PyObject *__pyx_pf_5rados_5Ioctx_114get_omap_vals_by_keys(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_read_op, PyObject *__pyx_v_keys) {
48341 struct __pyx_obj_5rados_ReadOp *__pyx_v__read_op = 0;
48342 rados_omap_iter_t __pyx_v_iter_addr;
48343 char **__pyx_v__keys;
48344 size_t __pyx_v_key_num;
48345 struct __pyx_obj_5rados_OmapIterator *__pyx_v_it = NULL((void*)0);
48346 PyObject *__pyx_r = NULL((void*)0);
48347 __Pyx_RefNannyDeclarations
48348 PyObject *__pyx_t_1 = NULL((void*)0);
48349 PyObject *__pyx_t_2 = NULL((void*)0);
48350 PyObject *__pyx_t_3 = NULL((void*)0);
48351 Py_ssize_t __pyx_t_4;
48352 PyObject *__pyx_t_5 = NULL((void*)0);
48353 int __pyx_t_6;
48354 int __pyx_t_7;
48355 char const *__pyx_t_8;
48356 PyObject *__pyx_t_9 = NULL((void*)0);
48357 PyObject *__pyx_t_10 = NULL((void*)0);
48358 PyObject *__pyx_t_11 = NULL((void*)0);
48359 PyObject *__pyx_t_12 = NULL((void*)0);
48360 PyObject *__pyx_t_13 = NULL((void*)0);
48361 PyObject *__pyx_t_14 = NULL((void*)0);
48362 int __pyx_lineno = 0;
48363 const char *__pyx_filename = NULL((void*)0);
48364 int __pyx_clineno = 0;
48365 __Pyx_RefNannySetupContext("get_omap_vals_by_keys", 0);
48366 __Pyx_INCREF(__pyx_v_keys)( ((PyObject*)(__pyx_v_keys))->ob_refcnt++);
48367
48368 /* "rados.pyx":3648
48369 * :returns: an iterator over the requested omap values, return value from this action
48370 * """
48371 * keys = cstr_list(keys, 'keys') # <<<<<<<<<<<<<<
48372 * cdef:
48373 * ReadOp _read_op = read_op
48374 */
48375 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3648; __pyx_clineno = __LINE__48375; goto __pyx_L1_error;}
48376 __Pyx_GOTREF(__pyx_t_2);
48377 __pyx_t_3 = NULL((void*)0);
48378 __pyx_t_4 = 0;
48379 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
48380 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
48381 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
48382 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
48383 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
48384 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
48385 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
48386 __pyx_t_4 = 1;
48387 }
48388 }
48389 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3648; __pyx_clineno = __LINE__48389; goto __pyx_L1_error;}
48390 __Pyx_GOTREF(__pyx_t_5);
48391 if (__pyx_t_3) {
48392 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
48393 }
48394 __Pyx_INCREF(__pyx_v_keys)( ((PyObject*)(__pyx_v_keys))->ob_refcnt++);
48395 __Pyx_GIVEREF(__pyx_v_keys);
48396 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_keys)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_keys
)
;
48397 __Pyx_INCREF(__pyx_n_s_keys)( ((PyObject*)(__pyx_n_s_keys))->ob_refcnt++);
48398 __Pyx_GIVEREF(__pyx_n_s_keys);
48399 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_keys)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_keys
)
;
48400 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3648; __pyx_clineno = __LINE__48400; goto __pyx_L1_error;}
48401 __Pyx_GOTREF(__pyx_t_1);
48402 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
48403 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
48404 __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_keys; __pyx_v_keys =
__pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
48405 __pyx_t_1 = 0;
48406
48407 /* "rados.pyx":3650
48408 * keys = cstr_list(keys, 'keys')
48409 * cdef:
48410 * ReadOp _read_op = read_op # <<<<<<<<<<<<<<
48411 * rados_omap_iter_t iter_addr
48412 * char **_keys = to_bytes_array(keys)
48413 */
48414 if (!(likely(((__pyx_v_read_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp)))__builtin_expect(!!(((__pyx_v_read_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_read_op, __pyx_ptype_5rados_ReadOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3650; __pyx_clineno = __LINE__48414; goto __pyx_L1_error;}
48415 __pyx_t_1 = __pyx_v_read_op;
48416 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
48417 __pyx_v__read_op = ((struct __pyx_obj_5rados_ReadOp *)__pyx_t_1);
48418 __pyx_t_1 = 0;
48419
48420 /* "rados.pyx":3652
48421 * ReadOp _read_op = read_op
48422 * rados_omap_iter_t iter_addr
48423 * char **_keys = to_bytes_array(keys) # <<<<<<<<<<<<<<
48424 * size_t key_num = len(keys)
48425 *
48426 */
48427 __pyx_v__keys = __pyx_f_5rados_to_bytes_array(__pyx_v_keys);
48428
48429 /* "rados.pyx":3653
48430 * rados_omap_iter_t iter_addr
48431 * char **_keys = to_bytes_array(keys)
48432 * size_t key_num = len(keys) # <<<<<<<<<<<<<<
48433 *
48434 * try:
48435 */
48436 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_keys); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3653; __pyx_clineno = __LINE__48436; goto __pyx_L1_error;}
48437 __pyx_v_key_num = __pyx_t_4;
48438
48439 /* "rados.pyx":3655
48440 * size_t key_num = len(keys)
48441 *
48442 * try: # <<<<<<<<<<<<<<
48443 * with nogil:
48444 * rados_read_op_omap_get_vals_by_keys(_read_op.read_op,
48445 */
48446 /*try:*/ {
48447
48448 /* "rados.pyx":3656
48449 *
48450 * try:
48451 * with nogil: # <<<<<<<<<<<<<<
48452 * rados_read_op_omap_get_vals_by_keys(_read_op.read_op,
48453 * <const char**>_keys,
48454 */
48455 {
48456 #ifdef WITH_THREAD1
48457 PyThreadState *_save;
48458 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
48459 #endif
48460 /*try:*/ {
48461
48462 /* "rados.pyx":3657
48463 * try:
48464 * with nogil:
48465 * rados_read_op_omap_get_vals_by_keys(_read_op.read_op, # <<<<<<<<<<<<<<
48466 * <const char**>_keys,
48467 * key_num, &iter_addr, NULL)
48468 */
48469 rados_read_op_omap_get_vals_by_keys(__pyx_v__read_op->read_op, ((char const **)__pyx_v__keys), __pyx_v_key_num, (&__pyx_v_iter_addr), NULL((void*)0));
48470 }
48471
48472 /* "rados.pyx":3656
48473 *
48474 * try:
48475 * with nogil: # <<<<<<<<<<<<<<
48476 * rados_read_op_omap_get_vals_by_keys(_read_op.read_op,
48477 * <const char**>_keys,
48478 */
48479 /*finally:*/ {
48480 /*normal exit:*/{
48481 #ifdef WITH_THREAD1
48482 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
48483 #endif
48484 goto __pyx_L8;
48485 }
48486 __pyx_L8:;
48487 }
48488 }
48489
48490 /* "rados.pyx":3660
48491 * <const char**>_keys,
48492 * key_num, &iter_addr, NULL)
48493 * it = OmapIterator(self) # <<<<<<<<<<<<<<
48494 * it.ctx = iter_addr
48495 * return it, 0 # 0 is meaningless; there for backward-compat
48496 */
48497 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3660; __pyx_clineno = __LINE__48497; goto __pyx_L4_error;}
48498 __Pyx_GOTREF(__pyx_t_1);
48499 __Pyx_INCREF(((PyObject *)__pyx_v_self))( ((PyObject*)(((PyObject *)__pyx_v_self)))->ob_refcnt++);
48500 __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
48501 PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self))(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = ((PyObject *
)__pyx_v_self))
;
48502 __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5rados_OmapIterator), __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3660; __pyx_clineno = __LINE__48502; goto __pyx_L4_error;}
48503 __Pyx_GOTREF(__pyx_t_2);
48504 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
48505 __pyx_v_it = ((struct __pyx_obj_5rados_OmapIterator *)__pyx_t_2);
48506 __pyx_t_2 = 0;
48507
48508 /* "rados.pyx":3661
48509 * key_num, &iter_addr, NULL)
48510 * it = OmapIterator(self)
48511 * it.ctx = iter_addr # <<<<<<<<<<<<<<
48512 * return it, 0 # 0 is meaningless; there for backward-compat
48513 * finally:
48514 */
48515 __pyx_v_it->ctx = __pyx_v_iter_addr;
48516
48517 /* "rados.pyx":3662
48518 * it = OmapIterator(self)
48519 * it.ctx = iter_addr
48520 * return it, 0 # 0 is meaningless; there for backward-compat # <<<<<<<<<<<<<<
48521 * finally:
48522 * free(_keys)
48523 */
48524 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
48525 __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3662; __pyx_clineno = __LINE__48525; goto __pyx_L4_error;}
48526 __Pyx_GOTREF(__pyx_t_2);
48527 __Pyx_INCREF(((PyObject *)__pyx_v_it))( ((PyObject*)(((PyObject *)__pyx_v_it)))->ob_refcnt++);
48528 __Pyx_GIVEREF(((PyObject *)__pyx_v_it));
48529 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_it))(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = ((PyObject *
)__pyx_v_it))
;
48530 __Pyx_INCREF(__pyx_int_0)( ((PyObject*)(__pyx_int_0))->ob_refcnt++);
48531 __Pyx_GIVEREF(__pyx_int_0);
48532 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_0)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_int_0);
48533 __pyx_r = __pyx_t_2;
48534 __pyx_t_2 = 0;
48535 goto __pyx_L3_return;
48536 }
48537
48538 /* "rados.pyx":3664
48539 * return it, 0 # 0 is meaningless; there for backward-compat
48540 * finally:
48541 * free(_keys) # <<<<<<<<<<<<<<
48542 *
48543 * @requires(('write_op', WriteOp), ('keys', tuple))
48544 */
48545 /*finally:*/ {
48546 /*exception exit:*/{
48547 __pyx_L4_error:;
48548 __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
48549 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
48550 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
48551 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
48552 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
48553 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
48554 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10
, &__pyx_t_11) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
48555 __Pyx_XGOTREF(__pyx_t_9);
48556 __Pyx_XGOTREF(__pyx_t_10);
48557 __Pyx_XGOTREF(__pyx_t_11);
48558 __Pyx_XGOTREF(__pyx_t_12);
48559 __Pyx_XGOTREF(__pyx_t_13);
48560 __Pyx_XGOTREF(__pyx_t_14);
48561 __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename;
48562 {
48563 free(__pyx_v__keys);
48564 }
48565 if (PY_MAJOR_VERSION2 >= 3) {
48566 __Pyx_XGIVEREF(__pyx_t_12);
48567 __Pyx_XGIVEREF(__pyx_t_13);
48568 __Pyx_XGIVEREF(__pyx_t_14);
48569 __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
48570 }
48571 __Pyx_XGIVEREF(__pyx_t_9);
48572 __Pyx_XGIVEREF(__pyx_t_10);
48573 __Pyx_XGIVEREF(__pyx_t_11);
48574 __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
48575 __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
48576 __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8;
48577 goto __pyx_L1_error;
48578 }
48579 __pyx_L3_return: {
48580 __pyx_t_14 = __pyx_r;
48581 __pyx_r = 0;
48582 free(__pyx_v__keys);
48583 __pyx_r = __pyx_t_14;
48584 __pyx_t_14 = 0;
48585 goto __pyx_L0;
48586 }
48587 }
48588
48589 /* "rados.pyx":3639
48590 *
48591 * @requires(('read_op', ReadOp), ('keys', tuple))
48592 * def get_omap_vals_by_keys(self, read_op, keys): # <<<<<<<<<<<<<<
48593 * """
48594 * get the omap values by keys
48595 */
48596
48597 /* function exit code */
48598 __pyx_L1_error:;
48599 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
48600 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
48601 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
48602 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
48603 __Pyx_AddTraceback("rados.Ioctx.get_omap_vals_by_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
48604 __pyx_r = NULL((void*)0);
48605 __pyx_L0:;
48606 __Pyx_XDECREF((PyObject *)__pyx_v__read_op)do { if (((PyObject *)__pyx_v__read_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__read_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__read_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__read_op)))); } while (0
); } while (0)
;
48607 __Pyx_XDECREF((PyObject *)__pyx_v_it)do { if (((PyObject *)__pyx_v_it) == ((void*)0)) ; else do { if
( --((PyObject*)((PyObject *)__pyx_v_it))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)((PyObject *)__pyx_v_it
)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)((PyObject
*)__pyx_v_it)))); } while (0); } while (0)
;
48608 __Pyx_XDECREF(__pyx_v_keys)do { if ((__pyx_v_keys) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_keys))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_keys)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_keys)))); } while (0); } while
(0)
;
48609 __Pyx_XGIVEREF(__pyx_r);
48610 __Pyx_RefNannyFinishContext();
48611 return __pyx_r;
48612}
48613
48614/* "rados.pyx":3667
48615 *
48616 * @requires(('write_op', WriteOp), ('keys', tuple))
48617 * def remove_omap_keys(self, write_op, keys): # <<<<<<<<<<<<<<
48618 * """
48619 * remove omap keys specifiled
48620 */
48621
48622/* Python wrapper */
48623static PyObject *__pyx_pw_5rados_5Ioctx_117remove_omap_keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48624static char __pyx_doc_5rados_5Ioctx_116remove_omap_keys[] = "Ioctx.remove_omap_keys(self, write_op, keys)\n\n remove omap keys specifiled\n :para write_op: write operation object\n :type write_op: WriteOp\n :para keys: input key tuple\n :type keys: tuple\n ";
48625static PyObject *__pyx_pw_5rados_5Ioctx_117remove_omap_keys(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48626 PyObject *__pyx_v_write_op = 0;
48627 PyObject *__pyx_v_keys = 0;
48628 int __pyx_lineno = 0;
48629 const char *__pyx_filename = NULL((void*)0);
48630 int __pyx_clineno = 0;
48631 PyObject *__pyx_r = 0;
48632 __Pyx_RefNannyDeclarations
48633 __Pyx_RefNannySetupContext("remove_omap_keys (wrapper)", 0);
48634 {
48635 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_write_op,&__pyx_n_s_keys,0};
48636 PyObject* values[2] = {0,0};
48637 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
48638 Py_ssize_t kw_args;
48639 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
48640 switch (pos_args) {
48641 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
48642 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
48643 case 0: break;
48644 default: goto __pyx_L5_argtuple_error;
48645 }
48646 kw_args = PyDict_Size(__pyx_kwds);
48647 switch (pos_args) {
48648 case 0:
48649 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_write_op
)) != 0), 1)
) kw_args--;
48650 else goto __pyx_L5_argtuple_error;
48651 case 1:
48652 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_keys)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_keys
)) != 0), 1)
) kw_args--;
48653 else {
48654 __Pyx_RaiseArgtupleInvalid("remove_omap_keys", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3667; __pyx_clineno = __LINE__48654; goto __pyx_L3_error;}
48655 }
48656 }
48657 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
48658 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "remove_omap_keys") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "remove_omap_keys") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3667; __pyx_clineno = __LINE__48658; goto __pyx_L3_error;}
48659 }
48660 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
48661 goto __pyx_L5_argtuple_error;
48662 } else {
48663 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
48664 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
48665 }
48666 __pyx_v_write_op = values[0];
48667 __pyx_v_keys = values[1];
48668 }
48669 goto __pyx_L4_argument_unpacking_done;
48670 __pyx_L5_argtuple_error:;
48671 __Pyx_RaiseArgtupleInvalid("remove_omap_keys", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3667; __pyx_clineno = __LINE__48671; goto __pyx_L3_error;}
48672 __pyx_L3_error:;
48673 __Pyx_AddTraceback("rados.Ioctx.remove_omap_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
48674 __Pyx_RefNannyFinishContext();
48675 return NULL((void*)0);
48676 __pyx_L4_argument_unpacking_done:;
48677 __pyx_r = __pyx_pf_5rados_5Ioctx_116remove_omap_keys(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_write_op, __pyx_v_keys);
48678
48679 /* function exit code */
48680 __Pyx_RefNannyFinishContext();
48681 return __pyx_r;
48682}
48683
48684static PyObject *__pyx_pf_5rados_5Ioctx_116remove_omap_keys(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op, PyObject *__pyx_v_keys) {
48685 struct __pyx_obj_5rados_WriteOp *__pyx_v__write_op = 0;
48686 size_t __pyx_v_key_num;
48687 char **__pyx_v__keys;
48688 PyObject *__pyx_r = NULL((void*)0);
48689 __Pyx_RefNannyDeclarations
48690 PyObject *__pyx_t_1 = NULL((void*)0);
48691 PyObject *__pyx_t_2 = NULL((void*)0);
48692 PyObject *__pyx_t_3 = NULL((void*)0);
48693 Py_ssize_t __pyx_t_4;
48694 PyObject *__pyx_t_5 = NULL((void*)0);
48695 int __pyx_lineno = 0;
48696 const char *__pyx_filename = NULL((void*)0);
48697 int __pyx_clineno = 0;
48698 __Pyx_RefNannySetupContext("remove_omap_keys", 0);
48699 __Pyx_INCREF(__pyx_v_keys)( ((PyObject*)(__pyx_v_keys))->ob_refcnt++);
48700
48701 /* "rados.pyx":3676
48702 * """
48703 *
48704 * keys = cstr_list(keys, 'keys') # <<<<<<<<<<<<<<
48705 * cdef:
48706 * WriteOp _write_op = write_op
48707 */
48708 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr_list); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3676; __pyx_clineno = __LINE__48708; goto __pyx_L1_error;}
48709 __Pyx_GOTREF(__pyx_t_2);
48710 __pyx_t_3 = NULL((void*)0);
48711 __pyx_t_4 = 0;
48712 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
48713 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
48714 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
48715 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
48716 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
48717 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
48718 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
48719 __pyx_t_4 = 1;
48720 }
48721 }
48722 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3676; __pyx_clineno = __LINE__48722; goto __pyx_L1_error;}
48723 __Pyx_GOTREF(__pyx_t_5);
48724 if (__pyx_t_3) {
48725 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
48726 }
48727 __Pyx_INCREF(__pyx_v_keys)( ((PyObject*)(__pyx_v_keys))->ob_refcnt++);
48728 __Pyx_GIVEREF(__pyx_v_keys);
48729 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_keys)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_keys
)
;
48730 __Pyx_INCREF(__pyx_n_s_keys)( ((PyObject*)(__pyx_n_s_keys))->ob_refcnt++);
48731 __Pyx_GIVEREF(__pyx_n_s_keys);
48732 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_keys)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_keys
)
;
48733 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3676; __pyx_clineno = __LINE__48733; goto __pyx_L1_error;}
48734 __Pyx_GOTREF(__pyx_t_1);
48735 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
48736 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
48737 __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_keys; __pyx_v_keys =
__pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
48738 __pyx_t_1 = 0;
48739
48740 /* "rados.pyx":3678
48741 * keys = cstr_list(keys, 'keys')
48742 * cdef:
48743 * WriteOp _write_op = write_op # <<<<<<<<<<<<<<
48744 * size_t key_num = len(keys)
48745 * char **_keys = to_bytes_array(keys)
48746 */
48747 if (!(likely(((__pyx_v_write_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp)))__builtin_expect(!!(((__pyx_v_write_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3678; __pyx_clineno = __LINE__48747; goto __pyx_L1_error;}
48748 __pyx_t_1 = __pyx_v_write_op;
48749 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
48750 __pyx_v__write_op = ((struct __pyx_obj_5rados_WriteOp *)__pyx_t_1);
48751 __pyx_t_1 = 0;
48752
48753 /* "rados.pyx":3679
48754 * cdef:
48755 * WriteOp _write_op = write_op
48756 * size_t key_num = len(keys) # <<<<<<<<<<<<<<
48757 * char **_keys = to_bytes_array(keys)
48758 *
48759 */
48760 __pyx_t_4 = PyObject_LengthPyObject_Size(__pyx_v_keys); if (unlikely(__pyx_t_4 == -1)__builtin_expect(!!(__pyx_t_4 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3679; __pyx_clineno = __LINE__48760; goto __pyx_L1_error;}
48761 __pyx_v_key_num = __pyx_t_4;
48762
48763 /* "rados.pyx":3680
48764 * WriteOp _write_op = write_op
48765 * size_t key_num = len(keys)
48766 * char **_keys = to_bytes_array(keys) # <<<<<<<<<<<<<<
48767 *
48768 * try:
48769 */
48770 __pyx_v__keys = __pyx_f_5rados_to_bytes_array(__pyx_v_keys);
48771
48772 /* "rados.pyx":3682
48773 * char **_keys = to_bytes_array(keys)
48774 *
48775 * try: # <<<<<<<<<<<<<<
48776 * with nogil:
48777 * rados_write_op_omap_rm_keys(_write_op.write_op, <const char**>_keys, key_num)
48778 */
48779 /*try:*/ {
48780
48781 /* "rados.pyx":3683
48782 *
48783 * try:
48784 * with nogil: # <<<<<<<<<<<<<<
48785 * rados_write_op_omap_rm_keys(_write_op.write_op, <const char**>_keys, key_num)
48786 * finally:
48787 */
48788 {
48789 #ifdef WITH_THREAD1
48790 PyThreadState *_save;
48791 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
48792 #endif
48793 /*try:*/ {
48794
48795 /* "rados.pyx":3684
48796 * try:
48797 * with nogil:
48798 * rados_write_op_omap_rm_keys(_write_op.write_op, <const char**>_keys, key_num) # <<<<<<<<<<<<<<
48799 * finally:
48800 * free(_keys)
48801 */
48802 rados_write_op_omap_rm_keys(__pyx_v__write_op->write_op, ((char const **)__pyx_v__keys), __pyx_v_key_num);
48803 }
48804
48805 /* "rados.pyx":3683
48806 *
48807 * try:
48808 * with nogil: # <<<<<<<<<<<<<<
48809 * rados_write_op_omap_rm_keys(_write_op.write_op, <const char**>_keys, key_num)
48810 * finally:
48811 */
48812 /*finally:*/ {
48813 /*normal exit:*/{
48814 #ifdef WITH_THREAD1
48815 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
48816 #endif
48817 goto __pyx_L8;
48818 }
48819 __pyx_L8:;
48820 }
48821 }
48822 }
48823
48824 /* "rados.pyx":3686
48825 * rados_write_op_omap_rm_keys(_write_op.write_op, <const char**>_keys, key_num)
48826 * finally:
48827 * free(_keys) # <<<<<<<<<<<<<<
48828 *
48829 * @requires(('write_op', WriteOp))
48830 */
48831 /*finally:*/ {
48832 /*normal exit:*/{
48833 free(__pyx_v__keys);
48834 goto __pyx_L5;
48835 }
48836 __pyx_L5:;
48837 }
48838
48839 /* "rados.pyx":3667
48840 *
48841 * @requires(('write_op', WriteOp), ('keys', tuple))
48842 * def remove_omap_keys(self, write_op, keys): # <<<<<<<<<<<<<<
48843 * """
48844 * remove omap keys specifiled
48845 */
48846
48847 /* function exit code */
48848 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
48849 goto __pyx_L0;
48850 __pyx_L1_error:;
48851 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
48852 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
48853 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
48854 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
48855 __Pyx_AddTraceback("rados.Ioctx.remove_omap_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
48856 __pyx_r = NULL((void*)0);
48857 __pyx_L0:;
48858 __Pyx_XDECREF((PyObject *)__pyx_v__write_op)do { if (((PyObject *)__pyx_v__write_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__write_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__write_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__write_op)))); } while (
0); } while (0)
;
48859 __Pyx_XDECREF(__pyx_v_keys)do { if ((__pyx_v_keys) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_keys))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_keys)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_keys)))); } while (0); } while
(0)
;
48860 __Pyx_XGIVEREF(__pyx_r);
48861 __Pyx_RefNannyFinishContext();
48862 return __pyx_r;
48863}
48864
48865/* "rados.pyx":3689
48866 *
48867 * @requires(('write_op', WriteOp))
48868 * def clear_omap(self, write_op): # <<<<<<<<<<<<<<
48869 * """
48870 * Remove all key/value pairs from an object
48871 */
48872
48873/* Python wrapper */
48874static PyObject *__pyx_pw_5rados_5Ioctx_119clear_omap(PyObject *__pyx_v_self, PyObject *__pyx_v_write_op); /*proto*/
48875static char __pyx_doc_5rados_5Ioctx_118clear_omap[] = "Ioctx.clear_omap(self, write_op)\n\n Remove all key/value pairs from an object\n :para write_op: write operation object\n :type write_op: WriteOp\n ";
48876static PyObject *__pyx_pw_5rados_5Ioctx_119clear_omap(PyObject *__pyx_v_self, PyObject *__pyx_v_write_op) {
48877 PyObject *__pyx_r = 0;
48878 __Pyx_RefNannyDeclarations
48879 __Pyx_RefNannySetupContext("clear_omap (wrapper)", 0);
48880 __pyx_r = __pyx_pf_5rados_5Ioctx_118clear_omap(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_write_op));
48881
48882 /* function exit code */
48883 __Pyx_RefNannyFinishContext();
48884 return __pyx_r;
48885}
48886
48887static PyObject *__pyx_pf_5rados_5Ioctx_118clear_omap(CYTHON_UNUSED__attribute__ ((__unused__)) struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_write_op) {
48888 struct __pyx_obj_5rados_WriteOp *__pyx_v__write_op = 0;
48889 PyObject *__pyx_r = NULL((void*)0);
48890 __Pyx_RefNannyDeclarations
48891 PyObject *__pyx_t_1 = NULL((void*)0);
48892 int __pyx_lineno = 0;
48893 const char *__pyx_filename = NULL((void*)0);
48894 int __pyx_clineno = 0;
48895 __Pyx_RefNannySetupContext("clear_omap", 0);
48896
48897 /* "rados.pyx":3697
48898 *
48899 * cdef:
48900 * WriteOp _write_op = write_op # <<<<<<<<<<<<<<
48901 *
48902 * with nogil:
48903 */
48904 if (!(likely(((__pyx_v_write_op) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp)))__builtin_expect(!!(((__pyx_v_write_op) == (&_Py_NoneStruct
)) || __builtin_expect(!!(__Pyx_TypeTest(__pyx_v_write_op, __pyx_ptype_5rados_WriteOp
)), 1)), 1)
)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3697; __pyx_clineno = __LINE__48904; goto __pyx_L1_error;}
48905 __pyx_t_1 = __pyx_v_write_op;
48906 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
48907 __pyx_v__write_op = ((struct __pyx_obj_5rados_WriteOp *)__pyx_t_1);
48908 __pyx_t_1 = 0;
48909
48910 /* "rados.pyx":3699
48911 * WriteOp _write_op = write_op
48912 *
48913 * with nogil: # <<<<<<<<<<<<<<
48914 * rados_write_op_omap_clear(_write_op.write_op)
48915 *
48916 */
48917 {
48918 #ifdef WITH_THREAD1
48919 PyThreadState *_save;
48920 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
48921 #endif
48922 /*try:*/ {
48923
48924 /* "rados.pyx":3700
48925 *
48926 * with nogil:
48927 * rados_write_op_omap_clear(_write_op.write_op) # <<<<<<<<<<<<<<
48928 *
48929 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('desc', str_type),
48930 */
48931 rados_write_op_omap_clear(__pyx_v__write_op->write_op);
48932 }
48933
48934 /* "rados.pyx":3699
48935 * WriteOp _write_op = write_op
48936 *
48937 * with nogil: # <<<<<<<<<<<<<<
48938 * rados_write_op_omap_clear(_write_op.write_op)
48939 *
48940 */
48941 /*finally:*/ {
48942 /*normal exit:*/{
48943 #ifdef WITH_THREAD1
48944 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
48945 #endif
48946 goto __pyx_L5;
48947 }
48948 __pyx_L5:;
48949 }
48950 }
48951
48952 /* "rados.pyx":3689
48953 *
48954 * @requires(('write_op', WriteOp))
48955 * def clear_omap(self, write_op): # <<<<<<<<<<<<<<
48956 * """
48957 * Remove all key/value pairs from an object
48958 */
48959
48960 /* function exit code */
48961 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
48962 goto __pyx_L0;
48963 __pyx_L1_error:;
48964 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
48965 __Pyx_AddTraceback("rados.Ioctx.clear_omap", __pyx_clineno, __pyx_lineno, __pyx_filename);
48966 __pyx_r = NULL((void*)0);
48967 __pyx_L0:;
48968 __Pyx_XDECREF((PyObject *)__pyx_v__write_op)do { if (((PyObject *)__pyx_v__write_op) == ((void*)0)) ; else
do { if ( --((PyObject*)((PyObject *)__pyx_v__write_op))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)((PyObject
*)__pyx_v__write_op)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)((PyObject *)__pyx_v__write_op)))); } while (
0); } while (0)
;
48969 __Pyx_XGIVEREF(__pyx_r);
48970 __Pyx_RefNannyFinishContext();
48971 return __pyx_r;
48972}
48973
48974/* "rados.pyx":3704
48975 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('desc', str_type),
48976 * ('duration', opt(int)), ('flags', int))
48977 * def lock_exclusive(self, key, name, cookie, desc="", duration=None, flags=0): # <<<<<<<<<<<<<<
48978 *
48979 * """
48980 */
48981
48982/* Python wrapper */
48983static PyObject *__pyx_pw_5rados_5Ioctx_121lock_exclusive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
48984static char __pyx_doc_5rados_5Ioctx_120lock_exclusive[] = "Ioctx.lock_exclusive(self, key, name, cookie, desc='', duration=None, flags=0)\n\n Take an exclusive lock on an object\n\n :param key: name of the object\n :type key: str\n :param name: name of the lock\n :type name: str\n :param cookie: cookie of the lock\n :type cookie: str\n :param desc: description of the lock\n :type desc: str\n :param duration: duration of the lock in seconds\n :type duration: int\n :param flags: flags\n :type flags: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
48985static PyObject *__pyx_pw_5rados_5Ioctx_121lock_exclusive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
48986 PyObject *__pyx_v_key = 0;
48987 PyObject *__pyx_v_name = 0;
48988 PyObject *__pyx_v_cookie = 0;
48989 PyObject *__pyx_v_desc = 0;
48990 PyObject *__pyx_v_duration = 0;
48991 PyObject *__pyx_v_flags = 0;
48992 int __pyx_lineno = 0;
48993 const char *__pyx_filename = NULL((void*)0);
48994 int __pyx_clineno = 0;
48995 PyObject *__pyx_r = 0;
48996 __Pyx_RefNannyDeclarations
48997 __Pyx_RefNannySetupContext("lock_exclusive (wrapper)", 0);
48998 {
48999 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_name_2,&__pyx_n_s_cookie,&__pyx_n_s_desc,&__pyx_n_s_duration,&__pyx_n_s_flags,0};
49000 PyObject* values[6] = {0,0,0,0,0,0};
49001 values[3] = ((PyObject *)__pyx_kp_s__10);
49002 values[4] = ((PyObject *)Py_None(&_Py_NoneStruct));
49003 values[5] = ((PyObject *)__pyx_int_0);
49004 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
49005 Py_ssize_t kw_args;
49006 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
49007 switch (pos_args) {
49008 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
49009 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
49010 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
49011 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
49012 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
49013 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
49014 case 0: break;
49015 default: goto __pyx_L5_argtuple_error;
49016 }
49017 kw_args = PyDict_Size(__pyx_kwds);
49018 switch (pos_args) {
49019 case 0:
49020 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
49021 else goto __pyx_L5_argtuple_error;
49022 case 1:
49023 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
49024 else {
49025 __Pyx_RaiseArgtupleInvalid("lock_exclusive", 0, 3, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3704; __pyx_clineno = __LINE__49025; goto __pyx_L3_error;}
49026 }
49027 case 2:
49028 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cookie)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cookie
)) != 0), 1)
) kw_args--;
49029 else {
49030 __Pyx_RaiseArgtupleInvalid("lock_exclusive", 0, 3, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3704; __pyx_clineno = __LINE__49030; goto __pyx_L3_error;}
49031 }
49032 case 3:
49033 if (kw_args > 0) {
49034 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_desc);
49035 if (value) { values[3] = value; kw_args--; }
49036 }
49037 case 4:
49038 if (kw_args > 0) {
49039 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_duration);
49040 if (value) { values[4] = value; kw_args--; }
49041 }
49042 case 5:
49043 if (kw_args > 0) {
49044 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags);
49045 if (value) { values[5] = value; kw_args--; }
49046 }
49047 }
49048 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
49049 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lock_exclusive") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "lock_exclusive") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3704; __pyx_clineno = __LINE__49049; goto __pyx_L3_error;}
49050 }
49051 } else {
49052 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
49053 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
49054 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
49055 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
49056 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
49057 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
49058 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
49059 break;
49060 default: goto __pyx_L5_argtuple_error;
49061 }
49062 }
49063 __pyx_v_key = values[0];
49064 __pyx_v_name = values[1];
49065 __pyx_v_cookie = values[2];
49066 __pyx_v_desc = values[3];
49067 __pyx_v_duration = values[4];
49068 __pyx_v_flags = values[5];
49069 }
49070 goto __pyx_L4_argument_unpacking_done;
49071 __pyx_L5_argtuple_error:;
49072 __Pyx_RaiseArgtupleInvalid("lock_exclusive", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3704; __pyx_clineno = __LINE__49072; goto __pyx_L3_error;}
49073 __pyx_L3_error:;
49074 __Pyx_AddTraceback("rados.Ioctx.lock_exclusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
49075 __Pyx_RefNannyFinishContext();
49076 return NULL((void*)0);
49077 __pyx_L4_argument_unpacking_done:;
49078 __pyx_r = __pyx_pf_5rados_5Ioctx_120lock_exclusive(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_name, __pyx_v_cookie, __pyx_v_desc, __pyx_v_duration, __pyx_v_flags);
49079
49080 /* function exit code */
49081 __Pyx_RefNannyFinishContext();
49082 return __pyx_r;
49083}
49084
49085static PyObject *__pyx_pf_5rados_5Ioctx_120lock_exclusive(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_name, PyObject *__pyx_v_cookie, PyObject *__pyx_v_desc, PyObject *__pyx_v_duration, PyObject *__pyx_v_flags) {
49086 char *__pyx_v__key;
49087 char *__pyx_v__name;
49088 char *__pyx_v__cookie;
49089 char *__pyx_v__desc;
49090 uint8_t __pyx_v__flags;
49091 struct timeval __pyx_v__duration;
49092 int __pyx_v_ret;
49093 PyObject *__pyx_r = NULL((void*)0);
49094 __Pyx_RefNannyDeclarations
49095 PyObject *__pyx_t_1 = NULL((void*)0);
49096 PyObject *__pyx_t_2 = NULL((void*)0);
49097 PyObject *__pyx_t_3 = NULL((void*)0);
49098 Py_ssize_t __pyx_t_4;
49099 PyObject *__pyx_t_5 = NULL((void*)0);
49100 char *__pyx_t_6;
49101 uint8_t __pyx_t_7;
49102 int __pyx_t_8;
49103 int __pyx_t_9;
49104 time_t __pyx_t_10;
49105 int __pyx_lineno = 0;
49106 const char *__pyx_filename = NULL((void*)0);
49107 int __pyx_clineno = 0;
49108 __Pyx_RefNannySetupContext("lock_exclusive", 0);
49109 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
49110 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
49111 __Pyx_INCREF(__pyx_v_cookie)( ((PyObject*)(__pyx_v_cookie))->ob_refcnt++);
49112 __Pyx_INCREF(__pyx_v_desc)( ((PyObject*)(__pyx_v_desc))->ob_refcnt++);
49113
49114 /* "rados.pyx":3725
49115 * :raises: :class:`Error`
49116 * """
49117 * self.require_ioctx_open() # <<<<<<<<<<<<<<
49118 *
49119 * key = cstr(key, 'key')
49120 */
49121 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3725; __pyx_clineno = __LINE__49121; goto __pyx_L1_error;}
49122 __Pyx_GOTREF(__pyx_t_2);
49123 __pyx_t_3 = NULL((void*)0);
49124 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
49125 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49126 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
49127 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49128 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
49129 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49130 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49131 }
49132 }
49133 if (__pyx_t_3) {
49134 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3725; __pyx_clineno = __LINE__49134; goto __pyx_L1_error;}
49135 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
49136 } else {
49137 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3725; __pyx_clineno = __LINE__49137; goto __pyx_L1_error;}
49138 }
49139 __Pyx_GOTREF(__pyx_t_1);
49140 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49141 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
49142
49143 /* "rados.pyx":3727
49144 * self.require_ioctx_open()
49145 *
49146 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
49147 * name = cstr(name, 'name')
49148 * cookie = cstr(cookie, 'cookie')
49149 */
49150 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3727; __pyx_clineno = __LINE__49150; goto __pyx_L1_error;}
49151 __Pyx_GOTREF(__pyx_t_2);
49152 __pyx_t_3 = NULL((void*)0);
49153 __pyx_t_4 = 0;
49154 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49155 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49156 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
49157 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49158 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
49159 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49160 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49161 __pyx_t_4 = 1;
49162 }
49163 }
49164 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3727; __pyx_clineno = __LINE__49164; goto __pyx_L1_error;}
49165 __Pyx_GOTREF(__pyx_t_5);
49166 if (__pyx_t_3) {
49167 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
49168 }
49169 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
49170 __Pyx_GIVEREF(__pyx_v_key);
49171 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
49172 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
49173 __Pyx_GIVEREF(__pyx_n_s_key);
49174 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
49175 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3727; __pyx_clineno = __LINE__49175; goto __pyx_L1_error;}
49176 __Pyx_GOTREF(__pyx_t_1);
49177 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
49178 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49179 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49180 __pyx_t_1 = 0;
49181
49182 /* "rados.pyx":3728
49183 *
49184 * key = cstr(key, 'key')
49185 * name = cstr(name, 'name') # <<<<<<<<<<<<<<
49186 * cookie = cstr(cookie, 'cookie')
49187 * desc = cstr(desc, 'desc')
49188 */
49189 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3728; __pyx_clineno = __LINE__49189; goto __pyx_L1_error;}
49190 __Pyx_GOTREF(__pyx_t_2);
49191 __pyx_t_5 = NULL((void*)0);
49192 __pyx_t_4 = 0;
49193 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49194 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49195 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
49196 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49197 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
49198 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49199 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49200 __pyx_t_4 = 1;
49201 }
49202 }
49203 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3728; __pyx_clineno = __LINE__49203; goto __pyx_L1_error;}
49204 __Pyx_GOTREF(__pyx_t_3);
49205 if (__pyx_t_5) {
49206 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
49207 }
49208 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
49209 __Pyx_GIVEREF(__pyx_v_name);
49210 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_name
)
;
49211 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
49212 __Pyx_GIVEREF(__pyx_n_s_name_2);
49213 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_name_2
)
;
49214 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3728; __pyx_clineno = __LINE__49214; goto __pyx_L1_error;}
49215 __Pyx_GOTREF(__pyx_t_1);
49216 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
49217 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49218 __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_name; __pyx_v_name =
__pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
49219 __pyx_t_1 = 0;
49220
49221 /* "rados.pyx":3729
49222 * key = cstr(key, 'key')
49223 * name = cstr(name, 'name')
49224 * cookie = cstr(cookie, 'cookie') # <<<<<<<<<<<<<<
49225 * desc = cstr(desc, 'desc')
49226 *
49227 */
49228 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3729; __pyx_clineno = __LINE__49228; goto __pyx_L1_error;}
49229 __Pyx_GOTREF(__pyx_t_2);
49230 __pyx_t_3 = NULL((void*)0);
49231 __pyx_t_4 = 0;
49232 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49233 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49234 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
49235 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49236 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
49237 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49238 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49239 __pyx_t_4 = 1;
49240 }
49241 }
49242 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3729; __pyx_clineno = __LINE__49242; goto __pyx_L1_error;}
49243 __Pyx_GOTREF(__pyx_t_5);
49244 if (__pyx_t_3) {
49245 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
49246 }
49247 __Pyx_INCREF(__pyx_v_cookie)( ((PyObject*)(__pyx_v_cookie))->ob_refcnt++);
49248 __Pyx_GIVEREF(__pyx_v_cookie);
49249 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_cookie)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_cookie
)
;
49250 __Pyx_INCREF(__pyx_n_s_cookie)( ((PyObject*)(__pyx_n_s_cookie))->ob_refcnt++);
49251 __Pyx_GIVEREF(__pyx_n_s_cookie);
49252 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_cookie)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_cookie
)
;
49253 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3729; __pyx_clineno = __LINE__49253; goto __pyx_L1_error;}
49254 __Pyx_GOTREF(__pyx_t_1);
49255 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
49256 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49257 __Pyx_DECREF_SET(__pyx_v_cookie, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_cookie; __pyx_v_cookie
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
49258 __pyx_t_1 = 0;
49259
49260 /* "rados.pyx":3730
49261 * name = cstr(name, 'name')
49262 * cookie = cstr(cookie, 'cookie')
49263 * desc = cstr(desc, 'desc') # <<<<<<<<<<<<<<
49264 *
49265 * cdef:
49266 */
49267 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3730; __pyx_clineno = __LINE__49267; goto __pyx_L1_error;}
49268 __Pyx_GOTREF(__pyx_t_2);
49269 __pyx_t_5 = NULL((void*)0);
49270 __pyx_t_4 = 0;
49271 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49272 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49273 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
49274 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49275 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
49276 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49277 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49278 __pyx_t_4 = 1;
49279 }
49280 }
49281 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3730; __pyx_clineno = __LINE__49281; goto __pyx_L1_error;}
49282 __Pyx_GOTREF(__pyx_t_3);
49283 if (__pyx_t_5) {
49284 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
49285 }
49286 __Pyx_INCREF(__pyx_v_desc)( ((PyObject*)(__pyx_v_desc))->ob_refcnt++);
49287 __Pyx_GIVEREF(__pyx_v_desc);
49288 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_desc)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_desc
)
;
49289 __Pyx_INCREF(__pyx_n_s_desc)( ((PyObject*)(__pyx_n_s_desc))->ob_refcnt++);
49290 __Pyx_GIVEREF(__pyx_n_s_desc);
49291 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_desc)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_desc
)
;
49292 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3730; __pyx_clineno = __LINE__49292; goto __pyx_L1_error;}
49293 __Pyx_GOTREF(__pyx_t_1);
49294 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
49295 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49296 __Pyx_DECREF_SET(__pyx_v_desc, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_desc; __pyx_v_desc =
__pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
49297 __pyx_t_1 = 0;
49298
49299 /* "rados.pyx":3733
49300 *
49301 * cdef:
49302 * char* _key = key # <<<<<<<<<<<<<<
49303 * char* _name = name
49304 * char* _cookie = cookie
49305 */
49306 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3733; __pyx_clineno = __LINE__49306; goto __pyx_L1_error;}
49307 __pyx_v__key = __pyx_t_6;
49308
49309 /* "rados.pyx":3734
49310 * cdef:
49311 * char* _key = key
49312 * char* _name = name # <<<<<<<<<<<<<<
49313 * char* _cookie = cookie
49314 * char* _desc = desc
49315 */
49316 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3734; __pyx_clineno = __LINE__49316; goto __pyx_L1_error;}
49317 __pyx_v__name = __pyx_t_6;
49318
49319 /* "rados.pyx":3735
49320 * char* _key = key
49321 * char* _name = name
49322 * char* _cookie = cookie # <<<<<<<<<<<<<<
49323 * char* _desc = desc
49324 * uint8_t _flags = flags
49325 */
49326 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_cookie); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3735; __pyx_clineno = __LINE__49326; goto __pyx_L1_error;}
49327 __pyx_v__cookie = __pyx_t_6;
49328
49329 /* "rados.pyx":3736
49330 * char* _name = name
49331 * char* _cookie = cookie
49332 * char* _desc = desc # <<<<<<<<<<<<<<
49333 * uint8_t _flags = flags
49334 * timeval _duration
49335 */
49336 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_desc); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3736; __pyx_clineno = __LINE__49336; goto __pyx_L1_error;}
49337 __pyx_v__desc = __pyx_t_6;
49338
49339 /* "rados.pyx":3737
49340 * char* _cookie = cookie
49341 * char* _desc = desc
49342 * uint8_t _flags = flags # <<<<<<<<<<<<<<
49343 * timeval _duration
49344 *
49345 */
49346 __pyx_t_7 = __Pyx_PyInt_As_uint8_t(__pyx_v_flags); if (unlikely((__pyx_t_7 == (uint8_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint8_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3737; __pyx_clineno = __LINE__49346; goto __pyx_L1_error;}
49347 __pyx_v__flags = __pyx_t_7;
49348
49349 /* "rados.pyx":3740
49350 * timeval _duration
49351 *
49352 * if duration is None: # <<<<<<<<<<<<<<
49353 * with nogil:
49354 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc,
49355 */
49356 __pyx_t_8 = (__pyx_v_duration == Py_None(&_Py_NoneStruct));
49357 __pyx_t_9 = (__pyx_t_8 != 0);
49358 if (__pyx_t_9) {
49359
49360 /* "rados.pyx":3741
49361 *
49362 * if duration is None:
49363 * with nogil: # <<<<<<<<<<<<<<
49364 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc,
49365 * NULL, _flags)
49366 */
49367 {
49368 #ifdef WITH_THREAD1
49369 PyThreadState *_save;
49370 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
49371 #endif
49372 /*try:*/ {
49373
49374 /* "rados.pyx":3742
49375 * if duration is None:
49376 * with nogil:
49377 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc, # <<<<<<<<<<<<<<
49378 * NULL, _flags)
49379 * else:
49380 */
49381 __pyx_v_ret = rados_lock_exclusive(__pyx_v_self->io, __pyx_v__key, __pyx_v__name, __pyx_v__cookie, __pyx_v__desc, NULL((void*)0), __pyx_v__flags);
49382 }
49383
49384 /* "rados.pyx":3741
49385 *
49386 * if duration is None:
49387 * with nogil: # <<<<<<<<<<<<<<
49388 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc,
49389 * NULL, _flags)
49390 */
49391 /*finally:*/ {
49392 /*normal exit:*/{
49393 #ifdef WITH_THREAD1
49394 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
49395 #endif
49396 goto __pyx_L6;
49397 }
49398 __pyx_L6:;
49399 }
49400 }
49401
49402 /* "rados.pyx":3740
49403 * timeval _duration
49404 *
49405 * if duration is None: # <<<<<<<<<<<<<<
49406 * with nogil:
49407 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc,
49408 */
49409 goto __pyx_L3;
49410 }
49411
49412 /* "rados.pyx":3745
49413 * NULL, _flags)
49414 * else:
49415 * _duration.tv_sec = duration # <<<<<<<<<<<<<<
49416 * with nogil:
49417 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc,
49418 */
49419 /*else*/ {
49420 __pyx_t_10 = __Pyx_PyInt_As_time_t(__pyx_v_duration); if (unlikely((__pyx_t_10 == (time_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_10 == (time_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3745; __pyx_clineno = __LINE__49420; goto __pyx_L1_error;}
49421 __pyx_v__duration.tv_sec = __pyx_t_10;
49422
49423 /* "rados.pyx":3746
49424 * else:
49425 * _duration.tv_sec = duration
49426 * with nogil: # <<<<<<<<<<<<<<
49427 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc,
49428 * &_duration, _flags)
49429 */
49430 {
49431 #ifdef WITH_THREAD1
49432 PyThreadState *_save;
49433 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
49434 #endif
49435 /*try:*/ {
49436
49437 /* "rados.pyx":3747
49438 * _duration.tv_sec = duration
49439 * with nogil:
49440 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc, # <<<<<<<<<<<<<<
49441 * &_duration, _flags)
49442 *
49443 */
49444 __pyx_v_ret = rados_lock_exclusive(__pyx_v_self->io, __pyx_v__key, __pyx_v__name, __pyx_v__cookie, __pyx_v__desc, (&__pyx_v__duration), __pyx_v__flags);
49445 }
49446
49447 /* "rados.pyx":3746
49448 * else:
49449 * _duration.tv_sec = duration
49450 * with nogil: # <<<<<<<<<<<<<<
49451 * ret = rados_lock_exclusive(self.io, _key, _name, _cookie, _desc,
49452 * &_duration, _flags)
49453 */
49454 /*finally:*/ {
49455 /*normal exit:*/{
49456 #ifdef WITH_THREAD1
49457 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
49458 #endif
49459 goto __pyx_L9;
49460 }
49461 __pyx_L9:;
49462 }
49463 }
49464 }
49465 __pyx_L3:;
49466
49467 /* "rados.pyx":3750
49468 * &_duration, _flags)
49469 *
49470 * if ret < 0: # <<<<<<<<<<<<<<
49471 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
49472 *
49473 */
49474 __pyx_t_9 = ((__pyx_v_ret < 0) != 0);
49475 if (__pyx_t_9) {
49476
49477 /* "rados.pyx":3751
49478 *
49479 * if ret < 0:
49480 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key)) # <<<<<<<<<<<<<<
49481 *
49482 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('tag', str_type),
49483 */
49484 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3751; __pyx_clineno = __LINE__49484; goto __pyx_L1_error;}
49485 __Pyx_GOTREF(__pyx_t_1);
49486 __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3751; __pyx_clineno = __LINE__49486; goto __pyx_L1_error;}
49487 __Pyx_GOTREF(__pyx_t_2);
49488 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
49489 __Pyx_GIVEREF(__pyx_v_self->name);
49490 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
49491 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
49492 __Pyx_GIVEREF(__pyx_v_name);
49493 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_name)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_name
)
;
49494 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
49495 __Pyx_GIVEREF(__pyx_v_key);
49496 PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[2] = __pyx_v_key);
49497 __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai, __pyx_t_2
)
; if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3751; __pyx_clineno = __LINE__49497; goto __pyx_L1_error;}
49498 __Pyx_GOTREF(__pyx_t_3);
49499 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49500 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3751; __pyx_clineno = __LINE__49500; goto __pyx_L1_error;}
49501 __Pyx_GOTREF(__pyx_t_2);
49502 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
49503 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
49504 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
49505 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49506 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3751; __pyx_clineno = __LINE__49506; goto __pyx_L1_error;}
49507
49508 /* "rados.pyx":3750
49509 * &_duration, _flags)
49510 *
49511 * if ret < 0: # <<<<<<<<<<<<<<
49512 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
49513 *
49514 */
49515 }
49516
49517 /* "rados.pyx":3704
49518 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('desc', str_type),
49519 * ('duration', opt(int)), ('flags', int))
49520 * def lock_exclusive(self, key, name, cookie, desc="", duration=None, flags=0): # <<<<<<<<<<<<<<
49521 *
49522 * """
49523 */
49524
49525 /* function exit code */
49526 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
49527 goto __pyx_L0;
49528 __pyx_L1_error:;
49529 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
49530 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
49531 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
49532 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
49533 __Pyx_AddTraceback("rados.Ioctx.lock_exclusive", __pyx_clineno, __pyx_lineno, __pyx_filename);
49534 __pyx_r = NULL((void*)0);
49535 __pyx_L0:;
49536 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
49537 __Pyx_XDECREF(__pyx_v_name)do { if ((__pyx_v_name) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_name))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_name)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_name)))); } while (0); } while
(0)
;
49538 __Pyx_XDECREF(__pyx_v_cookie)do { if ((__pyx_v_cookie) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_cookie))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_cookie)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_cookie)))); } while
(0); } while (0)
;
49539 __Pyx_XDECREF(__pyx_v_desc)do { if ((__pyx_v_desc) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_desc))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_desc)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_desc)))); } while (0); } while
(0)
;
49540 __Pyx_XGIVEREF(__pyx_r);
49541 __Pyx_RefNannyFinishContext();
49542 return __pyx_r;
49543}
49544
49545/* "rados.pyx":3755
49546 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('tag', str_type),
49547 * ('desc', str_type), ('duration', opt(int)), ('flags', int))
49548 * def lock_shared(self, key, name, cookie, tag, desc="", duration=None, flags=0): # <<<<<<<<<<<<<<
49549 *
49550 * """
49551 */
49552
49553/* Python wrapper */
49554static PyObject *__pyx_pw_5rados_5Ioctx_123lock_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
49555static char __pyx_doc_5rados_5Ioctx_122lock_shared[] = "Ioctx.lock_shared(self, key, name, cookie, tag, desc='', duration=None, flags=0)\n\n Take a shared lock on an object\n\n :param key: name of the object\n :type key: str\n :param name: name of the lock\n :type name: str\n :param cookie: cookie of the lock\n :type cookie: str\n :param tag: tag of the lock\n :type tag: str\n :param desc: description of the lock\n :type desc: str\n :param duration: duration of the lock in seconds\n :type duration: int\n :param flags: flags\n :type flags: int\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
49556static PyObject *__pyx_pw_5rados_5Ioctx_123lock_shared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
49557 PyObject *__pyx_v_key = 0;
49558 PyObject *__pyx_v_name = 0;
49559 PyObject *__pyx_v_cookie = 0;
49560 PyObject *__pyx_v_tag = 0;
49561 PyObject *__pyx_v_desc = 0;
49562 PyObject *__pyx_v_duration = 0;
49563 PyObject *__pyx_v_flags = 0;
49564 int __pyx_lineno = 0;
49565 const char *__pyx_filename = NULL((void*)0);
49566 int __pyx_clineno = 0;
49567 PyObject *__pyx_r = 0;
49568 __Pyx_RefNannyDeclarations
49569 __Pyx_RefNannySetupContext("lock_shared (wrapper)", 0);
49570 {
49571 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_name_2,&__pyx_n_s_cookie,&__pyx_n_s_tag,&__pyx_n_s_desc,&__pyx_n_s_duration,&__pyx_n_s_flags,0};
49572 PyObject* values[7] = {0,0,0,0,0,0,0};
49573 values[4] = ((PyObject *)__pyx_kp_s__10);
49574 values[5] = ((PyObject *)Py_None(&_Py_NoneStruct));
49575 values[6] = ((PyObject *)__pyx_int_0);
49576 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
49577 Py_ssize_t kw_args;
49578 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
49579 switch (pos_args) {
49580 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6)(((PyTupleObject *)(__pyx_args))->ob_item[6]);
49581 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
49582 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
49583 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
49584 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
49585 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
49586 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
49587 case 0: break;
49588 default: goto __pyx_L5_argtuple_error;
49589 }
49590 kw_args = PyDict_Size(__pyx_kwds);
49591 switch (pos_args) {
49592 case 0:
49593 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
49594 else goto __pyx_L5_argtuple_error;
49595 case 1:
49596 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
49597 else {
49598 __Pyx_RaiseArgtupleInvalid("lock_shared", 0, 4, 7, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3755; __pyx_clineno = __LINE__49598; goto __pyx_L3_error;}
49599 }
49600 case 2:
49601 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cookie)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cookie
)) != 0), 1)
) kw_args--;
49602 else {
49603 __Pyx_RaiseArgtupleInvalid("lock_shared", 0, 4, 7, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3755; __pyx_clineno = __LINE__49603; goto __pyx_L3_error;}
49604 }
49605 case 3:
49606 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_tag)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_tag
)) != 0), 1)
) kw_args--;
49607 else {
49608 __Pyx_RaiseArgtupleInvalid("lock_shared", 0, 4, 7, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3755; __pyx_clineno = __LINE__49608; goto __pyx_L3_error;}
49609 }
49610 case 4:
49611 if (kw_args > 0) {
49612 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_desc);
49613 if (value) { values[4] = value; kw_args--; }
49614 }
49615 case 5:
49616 if (kw_args > 0) {
49617 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_duration);
49618 if (value) { values[5] = value; kw_args--; }
49619 }
49620 case 6:
49621 if (kw_args > 0) {
49622 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_flags);
49623 if (value) { values[6] = value; kw_args--; }
49624 }
49625 }
49626 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
49627 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lock_shared") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "lock_shared") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3755; __pyx_clineno = __LINE__49627; goto __pyx_L3_error;}
49628 }
49629 } else {
49630 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
49631 case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6)(((PyTupleObject *)(__pyx_args))->ob_item[6]);
49632 case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5)(((PyTupleObject *)(__pyx_args))->ob_item[5]);
49633 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
49634 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
49635 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
49636 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
49637 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
49638 break;
49639 default: goto __pyx_L5_argtuple_error;
49640 }
49641 }
49642 __pyx_v_key = values[0];
49643 __pyx_v_name = values[1];
49644 __pyx_v_cookie = values[2];
49645 __pyx_v_tag = values[3];
49646 __pyx_v_desc = values[4];
49647 __pyx_v_duration = values[5];
49648 __pyx_v_flags = values[6];
49649 }
49650 goto __pyx_L4_argument_unpacking_done;
49651 __pyx_L5_argtuple_error:;
49652 __Pyx_RaiseArgtupleInvalid("lock_shared", 0, 4, 7, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3755; __pyx_clineno = __LINE__49652; goto __pyx_L3_error;}
49653 __pyx_L3_error:;
49654 __Pyx_AddTraceback("rados.Ioctx.lock_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
49655 __Pyx_RefNannyFinishContext();
49656 return NULL((void*)0);
49657 __pyx_L4_argument_unpacking_done:;
49658 __pyx_r = __pyx_pf_5rados_5Ioctx_122lock_shared(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_name, __pyx_v_cookie, __pyx_v_tag, __pyx_v_desc, __pyx_v_duration, __pyx_v_flags);
49659
49660 /* function exit code */
49661 __Pyx_RefNannyFinishContext();
49662 return __pyx_r;
49663}
49664
49665static PyObject *__pyx_pf_5rados_5Ioctx_122lock_shared(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_name, PyObject *__pyx_v_cookie, PyObject *__pyx_v_tag, PyObject *__pyx_v_desc, PyObject *__pyx_v_duration, PyObject *__pyx_v_flags) {
49666 char *__pyx_v__key;
49667 char *__pyx_v__tag;
49668 char *__pyx_v__name;
49669 char *__pyx_v__cookie;
49670 char *__pyx_v__desc;
49671 uint8_t __pyx_v__flags;
49672 struct timeval __pyx_v__duration;
49673 int __pyx_v_ret;
49674 PyObject *__pyx_r = NULL((void*)0);
49675 __Pyx_RefNannyDeclarations
49676 PyObject *__pyx_t_1 = NULL((void*)0);
49677 PyObject *__pyx_t_2 = NULL((void*)0);
49678 PyObject *__pyx_t_3 = NULL((void*)0);
49679 Py_ssize_t __pyx_t_4;
49680 PyObject *__pyx_t_5 = NULL((void*)0);
49681 char *__pyx_t_6;
49682 uint8_t __pyx_t_7;
49683 int __pyx_t_8;
49684 int __pyx_t_9;
49685 time_t __pyx_t_10;
49686 int __pyx_lineno = 0;
49687 const char *__pyx_filename = NULL((void*)0);
49688 int __pyx_clineno = 0;
49689 __Pyx_RefNannySetupContext("lock_shared", 0);
49690 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
49691 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
49692 __Pyx_INCREF(__pyx_v_cookie)( ((PyObject*)(__pyx_v_cookie))->ob_refcnt++);
49693 __Pyx_INCREF(__pyx_v_tag)( ((PyObject*)(__pyx_v_tag))->ob_refcnt++);
49694 __Pyx_INCREF(__pyx_v_desc)( ((PyObject*)(__pyx_v_desc))->ob_refcnt++);
49695
49696 /* "rados.pyx":3778
49697 * :raises: :class:`Error`
49698 * """
49699 * self.require_ioctx_open() # <<<<<<<<<<<<<<
49700 *
49701 * key = cstr(key, 'key')
49702 */
49703 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3778; __pyx_clineno = __LINE__49703; goto __pyx_L1_error;}
49704 __Pyx_GOTREF(__pyx_t_2);
49705 __pyx_t_3 = NULL((void*)0);
49706 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
49707 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49708 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
49709 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49710 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
49711 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49712 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49713 }
49714 }
49715 if (__pyx_t_3) {
49716 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3778; __pyx_clineno = __LINE__49716; goto __pyx_L1_error;}
49717 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
49718 } else {
49719 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3778; __pyx_clineno = __LINE__49719; goto __pyx_L1_error;}
49720 }
49721 __Pyx_GOTREF(__pyx_t_1);
49722 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49723 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
49724
49725 /* "rados.pyx":3780
49726 * self.require_ioctx_open()
49727 *
49728 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
49729 * tag = cstr(tag, 'tag')
49730 * name = cstr(name, 'name')
49731 */
49732 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3780; __pyx_clineno = __LINE__49732; goto __pyx_L1_error;}
49733 __Pyx_GOTREF(__pyx_t_2);
49734 __pyx_t_3 = NULL((void*)0);
49735 __pyx_t_4 = 0;
49736 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49737 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49738 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
49739 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49740 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
49741 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49742 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49743 __pyx_t_4 = 1;
49744 }
49745 }
49746 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3780; __pyx_clineno = __LINE__49746; goto __pyx_L1_error;}
49747 __Pyx_GOTREF(__pyx_t_5);
49748 if (__pyx_t_3) {
49749 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
49750 }
49751 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
49752 __Pyx_GIVEREF(__pyx_v_key);
49753 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
49754 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
49755 __Pyx_GIVEREF(__pyx_n_s_key);
49756 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
49757 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3780; __pyx_clineno = __LINE__49757; goto __pyx_L1_error;}
49758 __Pyx_GOTREF(__pyx_t_1);
49759 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
49760 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49761 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49762 __pyx_t_1 = 0;
49763
49764 /* "rados.pyx":3781
49765 *
49766 * key = cstr(key, 'key')
49767 * tag = cstr(tag, 'tag') # <<<<<<<<<<<<<<
49768 * name = cstr(name, 'name')
49769 * cookie = cstr(cookie, 'cookie')
49770 */
49771 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3781; __pyx_clineno = __LINE__49771; goto __pyx_L1_error;}
49772 __Pyx_GOTREF(__pyx_t_2);
49773 __pyx_t_5 = NULL((void*)0);
49774 __pyx_t_4 = 0;
49775 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49776 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49777 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
49778 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49779 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
49780 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49781 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49782 __pyx_t_4 = 1;
49783 }
49784 }
49785 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3781; __pyx_clineno = __LINE__49785; goto __pyx_L1_error;}
49786 __Pyx_GOTREF(__pyx_t_3);
49787 if (__pyx_t_5) {
49788 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
49789 }
49790 __Pyx_INCREF(__pyx_v_tag)( ((PyObject*)(__pyx_v_tag))->ob_refcnt++);
49791 __Pyx_GIVEREF(__pyx_v_tag);
49792 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_tag)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_tag
)
;
49793 __Pyx_INCREF(__pyx_n_s_tag)( ((PyObject*)(__pyx_n_s_tag))->ob_refcnt++);
49794 __Pyx_GIVEREF(__pyx_n_s_tag);
49795 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_tag)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_tag
)
;
49796 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3781; __pyx_clineno = __LINE__49796; goto __pyx_L1_error;}
49797 __Pyx_GOTREF(__pyx_t_1);
49798 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
49799 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49800 __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_tag; __pyx_v_tag = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49801 __pyx_t_1 = 0;
49802
49803 /* "rados.pyx":3782
49804 * key = cstr(key, 'key')
49805 * tag = cstr(tag, 'tag')
49806 * name = cstr(name, 'name') # <<<<<<<<<<<<<<
49807 * cookie = cstr(cookie, 'cookie')
49808 * desc = cstr(desc, 'desc')
49809 */
49810 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3782; __pyx_clineno = __LINE__49810; goto __pyx_L1_error;}
49811 __Pyx_GOTREF(__pyx_t_2);
49812 __pyx_t_3 = NULL((void*)0);
49813 __pyx_t_4 = 0;
49814 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49815 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49816 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
49817 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49818 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
49819 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49820 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49821 __pyx_t_4 = 1;
49822 }
49823 }
49824 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3782; __pyx_clineno = __LINE__49824; goto __pyx_L1_error;}
49825 __Pyx_GOTREF(__pyx_t_5);
49826 if (__pyx_t_3) {
49827 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
49828 }
49829 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
49830 __Pyx_GIVEREF(__pyx_v_name);
49831 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_name
)
;
49832 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
49833 __Pyx_GIVEREF(__pyx_n_s_name_2);
49834 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_name_2
)
;
49835 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3782; __pyx_clineno = __LINE__49835; goto __pyx_L1_error;}
49836 __Pyx_GOTREF(__pyx_t_1);
49837 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
49838 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49839 __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_name; __pyx_v_name =
__pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
49840 __pyx_t_1 = 0;
49841
49842 /* "rados.pyx":3783
49843 * tag = cstr(tag, 'tag')
49844 * name = cstr(name, 'name')
49845 * cookie = cstr(cookie, 'cookie') # <<<<<<<<<<<<<<
49846 * desc = cstr(desc, 'desc')
49847 *
49848 */
49849 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3783; __pyx_clineno = __LINE__49849; goto __pyx_L1_error;}
49850 __Pyx_GOTREF(__pyx_t_2);
49851 __pyx_t_5 = NULL((void*)0);
49852 __pyx_t_4 = 0;
49853 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49854 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49855 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
49856 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49857 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
49858 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49859 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49860 __pyx_t_4 = 1;
49861 }
49862 }
49863 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3783; __pyx_clineno = __LINE__49863; goto __pyx_L1_error;}
49864 __Pyx_GOTREF(__pyx_t_3);
49865 if (__pyx_t_5) {
49866 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
49867 }
49868 __Pyx_INCREF(__pyx_v_cookie)( ((PyObject*)(__pyx_v_cookie))->ob_refcnt++);
49869 __Pyx_GIVEREF(__pyx_v_cookie);
49870 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_cookie)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_cookie
)
;
49871 __Pyx_INCREF(__pyx_n_s_cookie)( ((PyObject*)(__pyx_n_s_cookie))->ob_refcnt++);
49872 __Pyx_GIVEREF(__pyx_n_s_cookie);
49873 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_cookie)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_cookie
)
;
49874 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3783; __pyx_clineno = __LINE__49874; goto __pyx_L1_error;}
49875 __Pyx_GOTREF(__pyx_t_1);
49876 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
49877 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49878 __Pyx_DECREF_SET(__pyx_v_cookie, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_cookie; __pyx_v_cookie
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
49879 __pyx_t_1 = 0;
49880
49881 /* "rados.pyx":3784
49882 * name = cstr(name, 'name')
49883 * cookie = cstr(cookie, 'cookie')
49884 * desc = cstr(desc, 'desc') # <<<<<<<<<<<<<<
49885 *
49886 * cdef:
49887 */
49888 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3784; __pyx_clineno = __LINE__49888; goto __pyx_L1_error;}
49889 __Pyx_GOTREF(__pyx_t_2);
49890 __pyx_t_3 = NULL((void*)0);
49891 __pyx_t_4 = 0;
49892 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
49893 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
49894 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
49895 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
49896 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
49897 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
49898 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
49899 __pyx_t_4 = 1;
49900 }
49901 }
49902 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3784; __pyx_clineno = __LINE__49902; goto __pyx_L1_error;}
49903 __Pyx_GOTREF(__pyx_t_5);
49904 if (__pyx_t_3) {
49905 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
49906 }
49907 __Pyx_INCREF(__pyx_v_desc)( ((PyObject*)(__pyx_v_desc))->ob_refcnt++);
49908 __Pyx_GIVEREF(__pyx_v_desc);
49909 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_desc)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_desc
)
;
49910 __Pyx_INCREF(__pyx_n_s_desc)( ((PyObject*)(__pyx_n_s_desc))->ob_refcnt++);
49911 __Pyx_GIVEREF(__pyx_n_s_desc);
49912 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_desc)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_desc
)
;
49913 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3784; __pyx_clineno = __LINE__49913; goto __pyx_L1_error;}
49914 __Pyx_GOTREF(__pyx_t_1);
49915 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
49916 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
49917 __Pyx_DECREF_SET(__pyx_v_desc, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_desc; __pyx_v_desc =
__pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
49918 __pyx_t_1 = 0;
49919
49920 /* "rados.pyx":3787
49921 *
49922 * cdef:
49923 * char* _key = key # <<<<<<<<<<<<<<
49924 * char* _tag = tag
49925 * char* _name = name
49926 */
49927 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3787; __pyx_clineno = __LINE__49927; goto __pyx_L1_error;}
49928 __pyx_v__key = __pyx_t_6;
49929
49930 /* "rados.pyx":3788
49931 * cdef:
49932 * char* _key = key
49933 * char* _tag = tag # <<<<<<<<<<<<<<
49934 * char* _name = name
49935 * char* _cookie = cookie
49936 */
49937 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_tag); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3788; __pyx_clineno = __LINE__49937; goto __pyx_L1_error;}
49938 __pyx_v__tag = __pyx_t_6;
49939
49940 /* "rados.pyx":3789
49941 * char* _key = key
49942 * char* _tag = tag
49943 * char* _name = name # <<<<<<<<<<<<<<
49944 * char* _cookie = cookie
49945 * char* _desc = desc
49946 */
49947 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3789; __pyx_clineno = __LINE__49947; goto __pyx_L1_error;}
49948 __pyx_v__name = __pyx_t_6;
49949
49950 /* "rados.pyx":3790
49951 * char* _tag = tag
49952 * char* _name = name
49953 * char* _cookie = cookie # <<<<<<<<<<<<<<
49954 * char* _desc = desc
49955 * uint8_t _flags = flags
49956 */
49957 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_cookie); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3790; __pyx_clineno = __LINE__49957; goto __pyx_L1_error;}
49958 __pyx_v__cookie = __pyx_t_6;
49959
49960 /* "rados.pyx":3791
49961 * char* _name = name
49962 * char* _cookie = cookie
49963 * char* _desc = desc # <<<<<<<<<<<<<<
49964 * uint8_t _flags = flags
49965 * timeval _duration
49966 */
49967 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_desc); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3791; __pyx_clineno = __LINE__49967; goto __pyx_L1_error;}
49968 __pyx_v__desc = __pyx_t_6;
49969
49970 /* "rados.pyx":3792
49971 * char* _cookie = cookie
49972 * char* _desc = desc
49973 * uint8_t _flags = flags # <<<<<<<<<<<<<<
49974 * timeval _duration
49975 *
49976 */
49977 __pyx_t_7 = __Pyx_PyInt_As_uint8_t(__pyx_v_flags); if (unlikely((__pyx_t_7 == (uint8_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_7 == (uint8_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3792; __pyx_clineno = __LINE__49977; goto __pyx_L1_error;}
49978 __pyx_v__flags = __pyx_t_7;
49979
49980 /* "rados.pyx":3795
49981 * timeval _duration
49982 *
49983 * if duration is None: # <<<<<<<<<<<<<<
49984 * with nogil:
49985 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
49986 */
49987 __pyx_t_8 = (__pyx_v_duration == Py_None(&_Py_NoneStruct));
49988 __pyx_t_9 = (__pyx_t_8 != 0);
49989 if (__pyx_t_9) {
49990
49991 /* "rados.pyx":3796
49992 *
49993 * if duration is None:
49994 * with nogil: # <<<<<<<<<<<<<<
49995 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
49996 * NULL, _flags)
49997 */
49998 {
49999 #ifdef WITH_THREAD1
50000 PyThreadState *_save;
50001 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
50002 #endif
50003 /*try:*/ {
50004
50005 /* "rados.pyx":3797
50006 * if duration is None:
50007 * with nogil:
50008 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc, # <<<<<<<<<<<<<<
50009 * NULL, _flags)
50010 * else:
50011 */
50012 __pyx_v_ret = rados_lock_shared(__pyx_v_self->io, __pyx_v__key, __pyx_v__name, __pyx_v__cookie, __pyx_v__tag, __pyx_v__desc, NULL((void*)0), __pyx_v__flags);
50013 }
50014
50015 /* "rados.pyx":3796
50016 *
50017 * if duration is None:
50018 * with nogil: # <<<<<<<<<<<<<<
50019 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
50020 * NULL, _flags)
50021 */
50022 /*finally:*/ {
50023 /*normal exit:*/{
50024 #ifdef WITH_THREAD1
50025 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
50026 #endif
50027 goto __pyx_L6;
50028 }
50029 __pyx_L6:;
50030 }
50031 }
50032
50033 /* "rados.pyx":3795
50034 * timeval _duration
50035 *
50036 * if duration is None: # <<<<<<<<<<<<<<
50037 * with nogil:
50038 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
50039 */
50040 goto __pyx_L3;
50041 }
50042
50043 /* "rados.pyx":3800
50044 * NULL, _flags)
50045 * else:
50046 * _duration.tv_sec = duration # <<<<<<<<<<<<<<
50047 * with nogil:
50048 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
50049 */
50050 /*else*/ {
50051 __pyx_t_10 = __Pyx_PyInt_As_time_t(__pyx_v_duration); if (unlikely((__pyx_t_10 == (time_t)-1) && PyErr_Occurred())__builtin_expect(!!((__pyx_t_10 == (time_t)-1) && PyErr_Occurred
()), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3800; __pyx_clineno = __LINE__50051; goto __pyx_L1_error;}
50052 __pyx_v__duration.tv_sec = __pyx_t_10;
50053
50054 /* "rados.pyx":3801
50055 * else:
50056 * _duration.tv_sec = duration
50057 * with nogil: # <<<<<<<<<<<<<<
50058 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
50059 * &_duration, _flags)
50060 */
50061 {
50062 #ifdef WITH_THREAD1
50063 PyThreadState *_save;
50064 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
50065 #endif
50066 /*try:*/ {
50067
50068 /* "rados.pyx":3802
50069 * _duration.tv_sec = duration
50070 * with nogil:
50071 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc, # <<<<<<<<<<<<<<
50072 * &_duration, _flags)
50073 * if ret < 0:
50074 */
50075 __pyx_v_ret = rados_lock_shared(__pyx_v_self->io, __pyx_v__key, __pyx_v__name, __pyx_v__cookie, __pyx_v__tag, __pyx_v__desc, (&__pyx_v__duration), __pyx_v__flags);
50076 }
50077
50078 /* "rados.pyx":3801
50079 * else:
50080 * _duration.tv_sec = duration
50081 * with nogil: # <<<<<<<<<<<<<<
50082 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
50083 * &_duration, _flags)
50084 */
50085 /*finally:*/ {
50086 /*normal exit:*/{
50087 #ifdef WITH_THREAD1
50088 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
50089 #endif
50090 goto __pyx_L9;
50091 }
50092 __pyx_L9:;
50093 }
50094 }
50095 }
50096 __pyx_L3:;
50097
50098 /* "rados.pyx":3804
50099 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
50100 * &_duration, _flags)
50101 * if ret < 0: # <<<<<<<<<<<<<<
50102 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
50103 *
50104 */
50105 __pyx_t_9 = ((__pyx_v_ret < 0) != 0);
50106 if (__pyx_t_9) {
50107
50108 /* "rados.pyx":3805
50109 * &_duration, _flags)
50110 * if ret < 0:
50111 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key)) # <<<<<<<<<<<<<<
50112 *
50113 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type))
50114 */
50115 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3805; __pyx_clineno = __LINE__50115; goto __pyx_L1_error;}
50116 __Pyx_GOTREF(__pyx_t_1);
50117 __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3805; __pyx_clineno = __LINE__50117; goto __pyx_L1_error;}
50118 __Pyx_GOTREF(__pyx_t_2);
50119 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
50120 __Pyx_GIVEREF(__pyx_v_self->name);
50121 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
50122 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
50123 __Pyx_GIVEREF(__pyx_v_name);
50124 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_name)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_name
)
;
50125 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
50126 __Pyx_GIVEREF(__pyx_v_key);
50127 PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[2] = __pyx_v_key);
50128 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3805; __pyx_clineno = __LINE__50128; goto __pyx_L1_error;}
50129 __Pyx_GOTREF(__pyx_t_5);
50130 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50131 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3805; __pyx_clineno = __LINE__50131; goto __pyx_L1_error;}
50132 __Pyx_GOTREF(__pyx_t_2);
50133 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
50134 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
50135 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
50136 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50137 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3805; __pyx_clineno = __LINE__50137; goto __pyx_L1_error;}
50138
50139 /* "rados.pyx":3804
50140 * ret = rados_lock_shared(self.io, _key, _name, _cookie, _tag, _desc,
50141 * &_duration, _flags)
50142 * if ret < 0: # <<<<<<<<<<<<<<
50143 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
50144 *
50145 */
50146 }
50147
50148 /* "rados.pyx":3755
50149 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('tag', str_type),
50150 * ('desc', str_type), ('duration', opt(int)), ('flags', int))
50151 * def lock_shared(self, key, name, cookie, tag, desc="", duration=None, flags=0): # <<<<<<<<<<<<<<
50152 *
50153 * """
50154 */
50155
50156 /* function exit code */
50157 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
50158 goto __pyx_L0;
50159 __pyx_L1_error:;
50160 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
50161 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
50162 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
50163 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
50164 __Pyx_AddTraceback("rados.Ioctx.lock_shared", __pyx_clineno, __pyx_lineno, __pyx_filename);
50165 __pyx_r = NULL((void*)0);
50166 __pyx_L0:;
50167 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
50168 __Pyx_XDECREF(__pyx_v_name)do { if ((__pyx_v_name) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_name))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_name)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_name)))); } while (0); } while
(0)
;
50169 __Pyx_XDECREF(__pyx_v_cookie)do { if ((__pyx_v_cookie) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_cookie))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_cookie)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_cookie)))); } while
(0); } while (0)
;
50170 __Pyx_XDECREF(__pyx_v_tag)do { if ((__pyx_v_tag) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_tag))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_tag)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_tag)))); } while (0); } while (0)
;
50171 __Pyx_XDECREF(__pyx_v_desc)do { if ((__pyx_v_desc) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_desc))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_desc)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_desc)))); } while (0); } while
(0)
;
50172 __Pyx_XGIVEREF(__pyx_r);
50173 __Pyx_RefNannyFinishContext();
50174 return __pyx_r;
50175}
50176
50177/* "rados.pyx":3808
50178 *
50179 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type))
50180 * def unlock(self, key, name, cookie): # <<<<<<<<<<<<<<
50181 *
50182 * """
50183 */
50184
50185/* Python wrapper */
50186static PyObject *__pyx_pw_5rados_5Ioctx_125unlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50187static char __pyx_doc_5rados_5Ioctx_124unlock[] = "Ioctx.unlock(self, key, name, cookie)\n\n Release a shared or exclusive lock on an object\n\n :param key: name of the object\n :type key: str\n :param name: name of the lock\n :type name: str\n :param cookie: cookie of the lock\n :type cookie: str\n\n :raises: :class:`TypeError`\n :raises: :class:`Error`\n ";
50188static PyObject *__pyx_pw_5rados_5Ioctx_125unlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50189 PyObject *__pyx_v_key = 0;
50190 PyObject *__pyx_v_name = 0;
50191 PyObject *__pyx_v_cookie = 0;
50192 int __pyx_lineno = 0;
50193 const char *__pyx_filename = NULL((void*)0);
50194 int __pyx_clineno = 0;
50195 PyObject *__pyx_r = 0;
50196 __Pyx_RefNannyDeclarations
50197 __Pyx_RefNannySetupContext("unlock (wrapper)", 0);
50198 {
50199 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_name_2,&__pyx_n_s_cookie,0};
50200 PyObject* values[3] = {0,0,0};
50201 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
50202 Py_ssize_t kw_args;
50203 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
50204 switch (pos_args) {
50205 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
50206 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
50207 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
50208 case 0: break;
50209 default: goto __pyx_L5_argtuple_error;
50210 }
50211 kw_args = PyDict_Size(__pyx_kwds);
50212 switch (pos_args) {
50213 case 0:
50214 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
50215 else goto __pyx_L5_argtuple_error;
50216 case 1:
50217 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name_2
)) != 0), 1)
) kw_args--;
50218 else {
50219 __Pyx_RaiseArgtupleInvalid("unlock", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3808; __pyx_clineno = __LINE__50219; goto __pyx_L3_error;}
50220 }
50221 case 2:
50222 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cookie)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cookie
)) != 0), 1)
) kw_args--;
50223 else {
50224 __Pyx_RaiseArgtupleInvalid("unlock", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3808; __pyx_clineno = __LINE__50224; goto __pyx_L3_error;}
50225 }
50226 }
50227 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
50228 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "unlock") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "unlock") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3808; __pyx_clineno = __LINE__50228; goto __pyx_L3_error;}
50229 }
50230 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
50231 goto __pyx_L5_argtuple_error;
50232 } else {
50233 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
50234 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
50235 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
50236 }
50237 __pyx_v_key = values[0];
50238 __pyx_v_name = values[1];
50239 __pyx_v_cookie = values[2];
50240 }
50241 goto __pyx_L4_argument_unpacking_done;
50242 __pyx_L5_argtuple_error:;
50243 __Pyx_RaiseArgtupleInvalid("unlock", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3808; __pyx_clineno = __LINE__50243; goto __pyx_L3_error;}
50244 __pyx_L3_error:;
50245 __Pyx_AddTraceback("rados.Ioctx.unlock", __pyx_clineno, __pyx_lineno, __pyx_filename);
50246 __Pyx_RefNannyFinishContext();
50247 return NULL((void*)0);
50248 __pyx_L4_argument_unpacking_done:;
50249 __pyx_r = __pyx_pf_5rados_5Ioctx_124unlock(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_key, __pyx_v_name, __pyx_v_cookie);
50250
50251 /* function exit code */
50252 __Pyx_RefNannyFinishContext();
50253 return __pyx_r;
50254}
50255
50256static PyObject *__pyx_pf_5rados_5Ioctx_124unlock(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_name, PyObject *__pyx_v_cookie) {
50257 char *__pyx_v__key;
50258 char *__pyx_v__name;
50259 char *__pyx_v__cookie;
50260 int __pyx_v_ret;
50261 PyObject *__pyx_r = NULL((void*)0);
50262 __Pyx_RefNannyDeclarations
50263 PyObject *__pyx_t_1 = NULL((void*)0);
50264 PyObject *__pyx_t_2 = NULL((void*)0);
50265 PyObject *__pyx_t_3 = NULL((void*)0);
50266 Py_ssize_t __pyx_t_4;
50267 PyObject *__pyx_t_5 = NULL((void*)0);
50268 char *__pyx_t_6;
50269 int __pyx_t_7;
50270 int __pyx_lineno = 0;
50271 const char *__pyx_filename = NULL((void*)0);
50272 int __pyx_clineno = 0;
50273 __Pyx_RefNannySetupContext("unlock", 0);
50274 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
50275 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
50276 __Pyx_INCREF(__pyx_v_cookie)( ((PyObject*)(__pyx_v_cookie))->ob_refcnt++);
50277
50278 /* "rados.pyx":3823
50279 * :raises: :class:`Error`
50280 * """
50281 * self.require_ioctx_open() # <<<<<<<<<<<<<<
50282 *
50283 * key = cstr(key, 'key')
50284 */
50285 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_require_ioctx_open); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3823; __pyx_clineno = __LINE__50285; goto __pyx_L1_error;}
50286 __Pyx_GOTREF(__pyx_t_2);
50287 __pyx_t_3 = NULL((void*)0);
50288 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
50289 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
50290 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
50291 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
50292 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
50293 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
50294 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
50295 }
50296 }
50297 if (__pyx_t_3) {
50298 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3823; __pyx_clineno = __LINE__50298; goto __pyx_L1_error;}
50299 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
50300 } else {
50301 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3823; __pyx_clineno = __LINE__50301; goto __pyx_L1_error;}
50302 }
50303 __Pyx_GOTREF(__pyx_t_1);
50304 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50305 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
50306
50307 /* "rados.pyx":3825
50308 * self.require_ioctx_open()
50309 *
50310 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
50311 * name = cstr(name, 'name')
50312 * cookie = cstr(cookie, 'cookie')
50313 */
50314 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3825; __pyx_clineno = __LINE__50314; goto __pyx_L1_error;}
50315 __Pyx_GOTREF(__pyx_t_2);
50316 __pyx_t_3 = NULL((void*)0);
50317 __pyx_t_4 = 0;
50318 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
50319 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
50320 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
50321 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
50322 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
50323 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
50324 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
50325 __pyx_t_4 = 1;
50326 }
50327 }
50328 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3825; __pyx_clineno = __LINE__50328; goto __pyx_L1_error;}
50329 __Pyx_GOTREF(__pyx_t_5);
50330 if (__pyx_t_3) {
50331 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
50332 }
50333 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
50334 __Pyx_GIVEREF(__pyx_v_key);
50335 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
50336 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
50337 __Pyx_GIVEREF(__pyx_n_s_key);
50338 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
50339 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3825; __pyx_clineno = __LINE__50339; goto __pyx_L1_error;}
50340 __Pyx_GOTREF(__pyx_t_1);
50341 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
50342 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50343 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
50344 __pyx_t_1 = 0;
50345
50346 /* "rados.pyx":3826
50347 *
50348 * key = cstr(key, 'key')
50349 * name = cstr(name, 'name') # <<<<<<<<<<<<<<
50350 * cookie = cstr(cookie, 'cookie')
50351 *
50352 */
50353 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3826; __pyx_clineno = __LINE__50353; goto __pyx_L1_error;}
50354 __Pyx_GOTREF(__pyx_t_2);
50355 __pyx_t_5 = NULL((void*)0);
50356 __pyx_t_4 = 0;
50357 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
50358 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
50359 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
50360 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
50361 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
50362 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
50363 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
50364 __pyx_t_4 = 1;
50365 }
50366 }
50367 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3826; __pyx_clineno = __LINE__50367; goto __pyx_L1_error;}
50368 __Pyx_GOTREF(__pyx_t_3);
50369 if (__pyx_t_5) {
50370 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
50371 }
50372 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
50373 __Pyx_GIVEREF(__pyx_v_name);
50374 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_name)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_name
)
;
50375 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
50376 __Pyx_GIVEREF(__pyx_n_s_name_2);
50377 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_name_2
)
;
50378 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3826; __pyx_clineno = __LINE__50378; goto __pyx_L1_error;}
50379 __Pyx_GOTREF(__pyx_t_1);
50380 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
50381 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50382 __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_name; __pyx_v_name =
__pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0
) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (0); }
while (0)
;
50383 __pyx_t_1 = 0;
50384
50385 /* "rados.pyx":3827
50386 * key = cstr(key, 'key')
50387 * name = cstr(name, 'name')
50388 * cookie = cstr(cookie, 'cookie') # <<<<<<<<<<<<<<
50389 *
50390 * cdef:
50391 */
50392 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3827; __pyx_clineno = __LINE__50392; goto __pyx_L1_error;}
50393 __Pyx_GOTREF(__pyx_t_2);
50394 __pyx_t_3 = NULL((void*)0);
50395 __pyx_t_4 = 0;
50396 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
50397 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
50398 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
50399 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
50400 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
50401 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
50402 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
50403 __pyx_t_4 = 1;
50404 }
50405 }
50406 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3827; __pyx_clineno = __LINE__50406; goto __pyx_L1_error;}
50407 __Pyx_GOTREF(__pyx_t_5);
50408 if (__pyx_t_3) {
50409 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
50410 }
50411 __Pyx_INCREF(__pyx_v_cookie)( ((PyObject*)(__pyx_v_cookie))->ob_refcnt++);
50412 __Pyx_GIVEREF(__pyx_v_cookie);
50413 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_cookie)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_cookie
)
;
50414 __Pyx_INCREF(__pyx_n_s_cookie)( ((PyObject*)(__pyx_n_s_cookie))->ob_refcnt++);
50415 __Pyx_GIVEREF(__pyx_n_s_cookie);
50416 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_cookie)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_cookie
)
;
50417 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3827; __pyx_clineno = __LINE__50417; goto __pyx_L1_error;}
50418 __Pyx_GOTREF(__pyx_t_1);
50419 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
50420 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50421 __Pyx_DECREF_SET(__pyx_v_cookie, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_cookie; __pyx_v_cookie
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
50422 __pyx_t_1 = 0;
50423
50424 /* "rados.pyx":3830
50425 *
50426 * cdef:
50427 * char* _key = key # <<<<<<<<<<<<<<
50428 * char* _name = name
50429 * char* _cookie = cookie
50430 */
50431 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3830; __pyx_clineno = __LINE__50431; goto __pyx_L1_error;}
50432 __pyx_v__key = __pyx_t_6;
50433
50434 /* "rados.pyx":3831
50435 * cdef:
50436 * char* _key = key
50437 * char* _name = name # <<<<<<<<<<<<<<
50438 * char* _cookie = cookie
50439 *
50440 */
50441 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3831; __pyx_clineno = __LINE__50441; goto __pyx_L1_error;}
50442 __pyx_v__name = __pyx_t_6;
50443
50444 /* "rados.pyx":3832
50445 * char* _key = key
50446 * char* _name = name
50447 * char* _cookie = cookie # <<<<<<<<<<<<<<
50448 *
50449 * with nogil:
50450 */
50451 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_cookie); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3832; __pyx_clineno = __LINE__50451; goto __pyx_L1_error;}
50452 __pyx_v__cookie = __pyx_t_6;
50453
50454 /* "rados.pyx":3834
50455 * char* _cookie = cookie
50456 *
50457 * with nogil: # <<<<<<<<<<<<<<
50458 * ret = rados_unlock(self.io, _key, _name, _cookie)
50459 * if ret < 0:
50460 */
50461 {
50462 #ifdef WITH_THREAD1
50463 PyThreadState *_save;
50464 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
50465 #endif
50466 /*try:*/ {
50467
50468 /* "rados.pyx":3835
50469 *
50470 * with nogil:
50471 * ret = rados_unlock(self.io, _key, _name, _cookie) # <<<<<<<<<<<<<<
50472 * if ret < 0:
50473 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
50474 */
50475 __pyx_v_ret = rados_unlock(__pyx_v_self->io, __pyx_v__key, __pyx_v__name, __pyx_v__cookie);
50476 }
50477
50478 /* "rados.pyx":3834
50479 * char* _cookie = cookie
50480 *
50481 * with nogil: # <<<<<<<<<<<<<<
50482 * ret = rados_unlock(self.io, _key, _name, _cookie)
50483 * if ret < 0:
50484 */
50485 /*finally:*/ {
50486 /*normal exit:*/{
50487 #ifdef WITH_THREAD1
50488 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
50489 #endif
50490 goto __pyx_L5;
50491 }
50492 __pyx_L5:;
50493 }
50494 }
50495
50496 /* "rados.pyx":3836
50497 * with nogil:
50498 * ret = rados_unlock(self.io, _key, _name, _cookie)
50499 * if ret < 0: # <<<<<<<<<<<<<<
50500 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
50501 *
50502 */
50503 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
50504 if (__pyx_t_7) {
50505
50506 /* "rados.pyx":3837
50507 * ret = rados_unlock(self.io, _key, _name, _cookie)
50508 * if ret < 0:
50509 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key)) # <<<<<<<<<<<<<<
50510 *
50511 * def set_osdmap_full_try(self):
50512 */
50513 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3837; __pyx_clineno = __LINE__50513; goto __pyx_L1_error;}
50514 __Pyx_GOTREF(__pyx_t_1);
50515 __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3837; __pyx_clineno = __LINE__50515; goto __pyx_L1_error;}
50516 __Pyx_GOTREF(__pyx_t_2);
50517 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
50518 __Pyx_GIVEREF(__pyx_v_self->name);
50519 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_v_self
->name)
;
50520 __Pyx_INCREF(__pyx_v_name)( ((PyObject*)(__pyx_v_name))->ob_refcnt++);
50521 __Pyx_GIVEREF(__pyx_v_name);
50522 PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_name)(((PyTupleObject *)(__pyx_t_2))->ob_item[1] = __pyx_v_name
)
;
50523 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
50524 __Pyx_GIVEREF(__pyx_v_key);
50525 PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_key)(((PyTupleObject *)(__pyx_t_2))->ob_item[2] = __pyx_v_key);
50526 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai, __pyx_t_2)PyString_Format(__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai, __pyx_t_2
)
; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3837; __pyx_clineno = __LINE__50526; goto __pyx_L1_error;}
50527 __Pyx_GOTREF(__pyx_t_5);
50528 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50529 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3837; __pyx_clineno = __LINE__50529; goto __pyx_L1_error;}
50530 __Pyx_GOTREF(__pyx_t_2);
50531 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
50532 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
50533 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
50534 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50535 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3837; __pyx_clineno = __LINE__50535; goto __pyx_L1_error;}
50536
50537 /* "rados.pyx":3836
50538 * with nogil:
50539 * ret = rados_unlock(self.io, _key, _name, _cookie)
50540 * if ret < 0: # <<<<<<<<<<<<<<
50541 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
50542 *
50543 */
50544 }
50545
50546 /* "rados.pyx":3808
50547 *
50548 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type))
50549 * def unlock(self, key, name, cookie): # <<<<<<<<<<<<<<
50550 *
50551 * """
50552 */
50553
50554 /* function exit code */
50555 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
50556 goto __pyx_L0;
50557 __pyx_L1_error:;
50558 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
50559 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
50560 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
50561 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
50562 __Pyx_AddTraceback("rados.Ioctx.unlock", __pyx_clineno, __pyx_lineno, __pyx_filename);
50563 __pyx_r = NULL((void*)0);
50564 __pyx_L0:;
50565 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
50566 __Pyx_XDECREF(__pyx_v_name)do { if ((__pyx_v_name) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_name))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_name)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_name)))); } while (0); } while
(0)
;
50567 __Pyx_XDECREF(__pyx_v_cookie)do { if ((__pyx_v_cookie) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_cookie))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_cookie)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_cookie)))); } while
(0); } while (0)
;
50568 __Pyx_XGIVEREF(__pyx_r);
50569 __Pyx_RefNannyFinishContext();
50570 return __pyx_r;
50571}
50572
50573/* "rados.pyx":3839
50574 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
50575 *
50576 * def set_osdmap_full_try(self): # <<<<<<<<<<<<<<
50577 * """
50578 * Set global osdmap_full_try label to true
50579 */
50580
50581/* Python wrapper */
50582static PyObject *__pyx_pw_5rados_5Ioctx_127set_osdmap_full_try(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
50583static char __pyx_doc_5rados_5Ioctx_126set_osdmap_full_try[] = "Ioctx.set_osdmap_full_try(self)\n\n Set global osdmap_full_try label to true\n ";
50584static PyObject *__pyx_pw_5rados_5Ioctx_127set_osdmap_full_try(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
50585 PyObject *__pyx_r = 0;
50586 __Pyx_RefNannyDeclarations
50587 __Pyx_RefNannySetupContext("set_osdmap_full_try (wrapper)", 0);
50588 __pyx_r = __pyx_pf_5rados_5Ioctx_126set_osdmap_full_try(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
50589
50590 /* function exit code */
50591 __Pyx_RefNannyFinishContext();
50592 return __pyx_r;
50593}
50594
50595static PyObject *__pyx_pf_5rados_5Ioctx_126set_osdmap_full_try(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
50596 PyObject *__pyx_r = NULL((void*)0);
50597 __Pyx_RefNannyDeclarations
50598 __Pyx_RefNannySetupContext("set_osdmap_full_try", 0);
50599
50600 /* "rados.pyx":3843
50601 * Set global osdmap_full_try label to true
50602 * """
50603 * with nogil: # <<<<<<<<<<<<<<
50604 * rados_set_osdmap_full_try(self.io)
50605 *
50606 */
50607 {
50608 #ifdef WITH_THREAD1
50609 PyThreadState *_save;
50610 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
50611 #endif
50612 /*try:*/ {
50613
50614 /* "rados.pyx":3844
50615 * """
50616 * with nogil:
50617 * rados_set_osdmap_full_try(self.io) # <<<<<<<<<<<<<<
50618 *
50619 * def unset_osdmap_full_try(self):
50620 */
50621 rados_set_osdmap_full_try(__pyx_v_self->io);
50622 }
50623
50624 /* "rados.pyx":3843
50625 * Set global osdmap_full_try label to true
50626 * """
50627 * with nogil: # <<<<<<<<<<<<<<
50628 * rados_set_osdmap_full_try(self.io)
50629 *
50630 */
50631 /*finally:*/ {
50632 /*normal exit:*/{
50633 #ifdef WITH_THREAD1
50634 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
50635 #endif
50636 goto __pyx_L5;
50637 }
50638 __pyx_L5:;
50639 }
50640 }
50641
50642 /* "rados.pyx":3839
50643 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
50644 *
50645 * def set_osdmap_full_try(self): # <<<<<<<<<<<<<<
50646 * """
50647 * Set global osdmap_full_try label to true
50648 */
50649
50650 /* function exit code */
50651 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
50652 __Pyx_XGIVEREF(__pyx_r);
50653 __Pyx_RefNannyFinishContext();
50654 return __pyx_r;
50655}
50656
50657/* "rados.pyx":3846
50658 * rados_set_osdmap_full_try(self.io)
50659 *
50660 * def unset_osdmap_full_try(self): # <<<<<<<<<<<<<<
50661 * """
50662 * Unset
50663 */
50664
50665/* Python wrapper */
50666static PyObject *__pyx_pw_5rados_5Ioctx_129unset_osdmap_full_try(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
50667static char __pyx_doc_5rados_5Ioctx_128unset_osdmap_full_try[] = "Ioctx.unset_osdmap_full_try(self)\n\n Unset\n ";
50668static PyObject *__pyx_pw_5rados_5Ioctx_129unset_osdmap_full_try(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
50669 PyObject *__pyx_r = 0;
50670 __Pyx_RefNannyDeclarations
50671 __Pyx_RefNannySetupContext("unset_osdmap_full_try (wrapper)", 0);
50672 __pyx_r = __pyx_pf_5rados_5Ioctx_128unset_osdmap_full_try(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
50673
50674 /* function exit code */
50675 __Pyx_RefNannyFinishContext();
50676 return __pyx_r;
50677}
50678
50679static PyObject *__pyx_pf_5rados_5Ioctx_128unset_osdmap_full_try(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
50680 PyObject *__pyx_r = NULL((void*)0);
50681 __Pyx_RefNannyDeclarations
50682 __Pyx_RefNannySetupContext("unset_osdmap_full_try", 0);
50683
50684 /* "rados.pyx":3850
50685 * Unset
50686 * """
50687 * with nogil: # <<<<<<<<<<<<<<
50688 * rados_unset_osdmap_full_try(self.io)
50689 *
50690 */
50691 {
50692 #ifdef WITH_THREAD1
50693 PyThreadState *_save;
50694 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
50695 #endif
50696 /*try:*/ {
50697
50698 /* "rados.pyx":3851
50699 * """
50700 * with nogil:
50701 * rados_unset_osdmap_full_try(self.io) # <<<<<<<<<<<<<<
50702 *
50703 * def application_enable(self, app_name, force=False):
50704 */
50705 rados_unset_osdmap_full_try(__pyx_v_self->io);
50706 }
50707
50708 /* "rados.pyx":3850
50709 * Unset
50710 * """
50711 * with nogil: # <<<<<<<<<<<<<<
50712 * rados_unset_osdmap_full_try(self.io)
50713 *
50714 */
50715 /*finally:*/ {
50716 /*normal exit:*/{
50717 #ifdef WITH_THREAD1
50718 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
50719 #endif
50720 goto __pyx_L5;
50721 }
50722 __pyx_L5:;
50723 }
50724 }
50725
50726 /* "rados.pyx":3846
50727 * rados_set_osdmap_full_try(self.io)
50728 *
50729 * def unset_osdmap_full_try(self): # <<<<<<<<<<<<<<
50730 * """
50731 * Unset
50732 */
50733
50734 /* function exit code */
50735 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
50736 __Pyx_XGIVEREF(__pyx_r);
50737 __Pyx_RefNannyFinishContext();
50738 return __pyx_r;
50739}
50740
50741/* "rados.pyx":3853
50742 * rados_unset_osdmap_full_try(self.io)
50743 *
50744 * def application_enable(self, app_name, force=False): # <<<<<<<<<<<<<<
50745 * """
50746 * Enable an application on an OSD pool
50747 */
50748
50749/* Python wrapper */
50750static PyObject *__pyx_pw_5rados_5Ioctx_131application_enable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
50751static char __pyx_doc_5rados_5Ioctx_130application_enable[] = "Ioctx.application_enable(self, app_name, force=False)\n\n Enable an application on an OSD pool\n\n :param app_name: application name\n :type app_name: str\n :param force: False if only a single app should exist per pool\n :type expire_seconds: boool\n\n :raises: :class:`Error`\n ";
50752static PyObject *__pyx_pw_5rados_5Ioctx_131application_enable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
50753 PyObject *__pyx_v_app_name = 0;
50754 PyObject *__pyx_v_force = 0;
50755 int __pyx_lineno = 0;
50756 const char *__pyx_filename = NULL((void*)0);
50757 int __pyx_clineno = 0;
50758 PyObject *__pyx_r = 0;
50759 __Pyx_RefNannyDeclarations
50760 __Pyx_RefNannySetupContext("application_enable (wrapper)", 0);
50761 {
50762 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_app_name,&__pyx_n_s_force,0};
50763 PyObject* values[2] = {0,0};
50764 values[1] = ((PyObject *)Py_False((PyObject *) &_Py_ZeroStruct));
50765 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
50766 Py_ssize_t kw_args;
50767 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
50768 switch (pos_args) {
50769 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
50770 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
50771 case 0: break;
50772 default: goto __pyx_L5_argtuple_error;
50773 }
50774 kw_args = PyDict_Size(__pyx_kwds);
50775 switch (pos_args) {
50776 case 0:
50777 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_app_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_app_name
)) != 0), 1)
) kw_args--;
50778 else goto __pyx_L5_argtuple_error;
50779 case 1:
50780 if (kw_args > 0) {
50781 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_force);
50782 if (value) { values[1] = value; kw_args--; }
50783 }
50784 }
50785 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
50786 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "application_enable") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "application_enable") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3853; __pyx_clineno = __LINE__50786; goto __pyx_L3_error;}
50787 }
50788 } else {
50789 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
50790 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
50791 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
50792 break;
50793 default: goto __pyx_L5_argtuple_error;
50794 }
50795 }
50796 __pyx_v_app_name = values[0];
50797 __pyx_v_force = values[1];
50798 }
50799 goto __pyx_L4_argument_unpacking_done;
50800 __pyx_L5_argtuple_error:;
50801 __Pyx_RaiseArgtupleInvalid("application_enable", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3853; __pyx_clineno = __LINE__50801; goto __pyx_L3_error;}
50802 __pyx_L3_error:;
50803 __Pyx_AddTraceback("rados.Ioctx.application_enable", __pyx_clineno, __pyx_lineno, __pyx_filename);
50804 __Pyx_RefNannyFinishContext();
50805 return NULL((void*)0);
50806 __pyx_L4_argument_unpacking_done:;
50807 __pyx_r = __pyx_pf_5rados_5Ioctx_130application_enable(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_app_name, __pyx_v_force);
50808
50809 /* function exit code */
50810 __Pyx_RefNannyFinishContext();
50811 return __pyx_r;
50812}
50813
50814static PyObject *__pyx_pf_5rados_5Ioctx_130application_enable(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name, PyObject *__pyx_v_force) {
50815 char *__pyx_v__app_name;
50816 int __pyx_v__force;
50817 int __pyx_v_ret;
50818 PyObject *__pyx_r = NULL((void*)0);
50819 __Pyx_RefNannyDeclarations
50820 PyObject *__pyx_t_1 = NULL((void*)0);
50821 PyObject *__pyx_t_2 = NULL((void*)0);
50822 PyObject *__pyx_t_3 = NULL((void*)0);
50823 Py_ssize_t __pyx_t_4;
50824 PyObject *__pyx_t_5 = NULL((void*)0);
50825 char *__pyx_t_6;
50826 int __pyx_t_7;
50827 int __pyx_t_8;
50828 int __pyx_lineno = 0;
50829 const char *__pyx_filename = NULL((void*)0);
50830 int __pyx_clineno = 0;
50831 __Pyx_RefNannySetupContext("application_enable", 0);
50832 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
50833
50834 /* "rados.pyx":3864
50835 * :raises: :class:`Error`
50836 * """
50837 * app_name = cstr(app_name, 'app_name') # <<<<<<<<<<<<<<
50838 * cdef:
50839 * char *_app_name = app_name
50840 */
50841 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3864; __pyx_clineno = __LINE__50841; goto __pyx_L1_error;}
50842 __Pyx_GOTREF(__pyx_t_2);
50843 __pyx_t_3 = NULL((void*)0);
50844 __pyx_t_4 = 0;
50845 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
50846 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
50847 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
50848 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
50849 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
50850 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
50851 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
50852 __pyx_t_4 = 1;
50853 }
50854 }
50855 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3864; __pyx_clineno = __LINE__50855; goto __pyx_L1_error;}
50856 __Pyx_GOTREF(__pyx_t_5);
50857 if (__pyx_t_3) {
50858 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
50859 }
50860 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
50861 __Pyx_GIVEREF(__pyx_v_app_name);
50862 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_app_name
)
;
50863 __Pyx_INCREF(__pyx_n_s_app_name)( ((PyObject*)(__pyx_n_s_app_name))->ob_refcnt++);
50864 __Pyx_GIVEREF(__pyx_n_s_app_name);
50865 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_app_name
)
;
50866 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3864; __pyx_clineno = __LINE__50866; goto __pyx_L1_error;}
50867 __Pyx_GOTREF(__pyx_t_1);
50868 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
50869 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50870 __Pyx_DECREF_SET(__pyx_v_app_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_app_name; __pyx_v_app_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
50871 __pyx_t_1 = 0;
50872
50873 /* "rados.pyx":3866
50874 * app_name = cstr(app_name, 'app_name')
50875 * cdef:
50876 * char *_app_name = app_name # <<<<<<<<<<<<<<
50877 * int _force = (1 if force else 0)
50878 *
50879 */
50880 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_app_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3866; __pyx_clineno = __LINE__50880; goto __pyx_L1_error;}
50881 __pyx_v__app_name = __pyx_t_6;
50882
50883 /* "rados.pyx":3867
50884 * cdef:
50885 * char *_app_name = app_name
50886 * int _force = (1 if force else 0) # <<<<<<<<<<<<<<
50887 *
50888 * with nogil:
50889 */
50890 __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_8 < 0)__builtin_expect(!!(__pyx_t_8 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3867; __pyx_clineno = __LINE__50890; goto __pyx_L1_error;}
50891 if (__pyx_t_8) {
50892 __pyx_t_7 = 1;
50893 } else {
50894 __pyx_t_7 = 0;
50895 }
50896 __pyx_v__force = __pyx_t_7;
50897
50898 /* "rados.pyx":3869
50899 * int _force = (1 if force else 0)
50900 *
50901 * with nogil: # <<<<<<<<<<<<<<
50902 * ret = rados_application_enable(self.io, _app_name, _force)
50903 * if ret < 0:
50904 */
50905 {
50906 #ifdef WITH_THREAD1
50907 PyThreadState *_save;
50908 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
50909 #endif
50910 /*try:*/ {
50911
50912 /* "rados.pyx":3870
50913 *
50914 * with nogil:
50915 * ret = rados_application_enable(self.io, _app_name, _force) # <<<<<<<<<<<<<<
50916 * if ret < 0:
50917 * raise make_ex(ret, "error enabling application")
50918 */
50919 __pyx_v_ret = rados_application_enable(__pyx_v_self->io, __pyx_v__app_name, __pyx_v__force);
50920 }
50921
50922 /* "rados.pyx":3869
50923 * int _force = (1 if force else 0)
50924 *
50925 * with nogil: # <<<<<<<<<<<<<<
50926 * ret = rados_application_enable(self.io, _app_name, _force)
50927 * if ret < 0:
50928 */
50929 /*finally:*/ {
50930 /*normal exit:*/{
50931 #ifdef WITH_THREAD1
50932 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
50933 #endif
50934 goto __pyx_L5;
50935 }
50936 __pyx_L5:;
50937 }
50938 }
50939
50940 /* "rados.pyx":3871
50941 * with nogil:
50942 * ret = rados_application_enable(self.io, _app_name, _force)
50943 * if ret < 0: # <<<<<<<<<<<<<<
50944 * raise make_ex(ret, "error enabling application")
50945 *
50946 */
50947 __pyx_t_8 = ((__pyx_v_ret < 0) != 0);
50948 if (__pyx_t_8) {
50949
50950 /* "rados.pyx":3872
50951 * ret = rados_application_enable(self.io, _app_name, _force)
50952 * if ret < 0:
50953 * raise make_ex(ret, "error enabling application") # <<<<<<<<<<<<<<
50954 *
50955 * def application_list(self):
50956 */
50957 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3872; __pyx_clineno = __LINE__50957; goto __pyx_L1_error;}
50958 __Pyx_GOTREF(__pyx_t_1);
50959 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_error_enabling_application); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3872; __pyx_clineno = __LINE__50959; goto __pyx_L1_error;}
50960 __Pyx_GOTREF(__pyx_t_2);
50961 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
50962 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
50963 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
50964 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3872; __pyx_clineno = __LINE__50964; goto __pyx_L1_error;}
50965
50966 /* "rados.pyx":3871
50967 * with nogil:
50968 * ret = rados_application_enable(self.io, _app_name, _force)
50969 * if ret < 0: # <<<<<<<<<<<<<<
50970 * raise make_ex(ret, "error enabling application")
50971 *
50972 */
50973 }
50974
50975 /* "rados.pyx":3853
50976 * rados_unset_osdmap_full_try(self.io)
50977 *
50978 * def application_enable(self, app_name, force=False): # <<<<<<<<<<<<<<
50979 * """
50980 * Enable an application on an OSD pool
50981 */
50982
50983 /* function exit code */
50984 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
50985 goto __pyx_L0;
50986 __pyx_L1_error:;
50987 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
50988 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
50989 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
50990 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
50991 __Pyx_AddTraceback("rados.Ioctx.application_enable", __pyx_clineno, __pyx_lineno, __pyx_filename);
50992 __pyx_r = NULL((void*)0);
50993 __pyx_L0:;
50994 __Pyx_XDECREF(__pyx_v_app_name)do { if ((__pyx_v_app_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_app_name))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_app_name)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_app_name)))); }
while (0); } while (0)
;
50995 __Pyx_XGIVEREF(__pyx_r);
50996 __Pyx_RefNannyFinishContext();
50997 return __pyx_r;
50998}
50999
51000/* "rados.pyx":3874
51001 * raise make_ex(ret, "error enabling application")
51002 *
51003 * def application_list(self): # <<<<<<<<<<<<<<
51004 * """
51005 * Returns a list of enabled applications
51006 */
51007
51008/* Python wrapper */
51009static PyObject *__pyx_pw_5rados_5Ioctx_133application_list(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
51010static char __pyx_doc_5rados_5Ioctx_132application_list[] = "Ioctx.application_list(self)\n\n Returns a list of enabled applications\n\n :returns: list of app name string\n ";
51011static PyObject *__pyx_pw_5rados_5Ioctx_133application_list(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
51012 PyObject *__pyx_r = 0;
51013 __Pyx_RefNannyDeclarations
51014 __Pyx_RefNannySetupContext("application_list (wrapper)", 0);
51015 __pyx_r = __pyx_pf_5rados_5Ioctx_132application_list(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
51016
51017 /* function exit code */
51018 __Pyx_RefNannyFinishContext();
51019 return __pyx_r;
51020}
51021
51022static PyObject *__pyx_pf_5rados_5Ioctx_132application_list(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
51023 size_t __pyx_v_length;
51024 char *__pyx_v_apps;
51025 int __pyx_v_ret;
51026 PyObject *__pyx_v_app = NULL((void*)0);
51027 PyObject *__pyx_r = NULL((void*)0);
51028 __Pyx_RefNannyDeclarations
51029 void *__pyx_t_1;
51030 int __pyx_t_2;
51031 PyObject *__pyx_t_3 = NULL((void*)0);
51032 PyObject *__pyx_t_4 = NULL((void*)0);
51033 PyObject *__pyx_t_5 = NULL((void*)0);
51034 Py_ssize_t __pyx_t_6;
51035 PyObject *(*__pyx_t_7)(PyObject *);
51036 PyObject *__pyx_t_8 = NULL((void*)0);
51037 PyObject *__pyx_t_9 = NULL((void*)0);
51038 PyObject *__pyx_t_10 = NULL((void*)0);
51039 int __pyx_t_11;
51040 int __pyx_t_12;
51041 char const *__pyx_t_13;
51042 PyObject *__pyx_t_14 = NULL((void*)0);
51043 PyObject *__pyx_t_15 = NULL((void*)0);
51044 PyObject *__pyx_t_16 = NULL((void*)0);
51045 PyObject *__pyx_t_17 = NULL((void*)0);
51046 PyObject *__pyx_t_18 = NULL((void*)0);
51047 PyObject *__pyx_t_19 = NULL((void*)0);
51048 int __pyx_lineno = 0;
51049 const char *__pyx_filename = NULL((void*)0);
51050 int __pyx_clineno = 0;
51051 __Pyx_RefNannySetupContext("application_list", 0);
51052
51053 /* "rados.pyx":3881
51054 * """
51055 * cdef:
51056 * size_t length = 128 # <<<<<<<<<<<<<<
51057 * char *apps = NULL
51058 *
51059 */
51060 __pyx_v_length = 0x80;
51061
51062 /* "rados.pyx":3882
51063 * cdef:
51064 * size_t length = 128
51065 * char *apps = NULL # <<<<<<<<<<<<<<
51066 *
51067 * try:
51068 */
51069 __pyx_v_apps = NULL((void*)0);
51070
51071 /* "rados.pyx":3884
51072 * char *apps = NULL
51073 *
51074 * try: # <<<<<<<<<<<<<<
51075 * while True:
51076 * apps = <char *>realloc_chk(apps, length)
51077 */
51078 /*try:*/ {
51079
51080 /* "rados.pyx":3885
51081 *
51082 * try:
51083 * while True: # <<<<<<<<<<<<<<
51084 * apps = <char *>realloc_chk(apps, length)
51085 * with nogil:
51086 */
51087 while (1) {
51088
51089 /* "rados.pyx":3886
51090 * try:
51091 * while True:
51092 * apps = <char *>realloc_chk(apps, length) # <<<<<<<<<<<<<<
51093 * with nogil:
51094 * ret = rados_application_list(self.io, apps, &length)
51095 */
51096 __pyx_t_1 = __pyx_f_5rados_realloc_chk(__pyx_v_apps, __pyx_v_length); if (unlikely(__pyx_t_1 == NULL)__builtin_expect(!!(__pyx_t_1 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3886; __pyx_clineno = __LINE__51096; goto __pyx_L4_error;}
51097 __pyx_v_apps = ((char *)__pyx_t_1);
51098
51099 /* "rados.pyx":3887
51100 * while True:
51101 * apps = <char *>realloc_chk(apps, length)
51102 * with nogil: # <<<<<<<<<<<<<<
51103 * ret = rados_application_list(self.io, apps, &length)
51104 * if ret == 0:
51105 */
51106 {
51107 #ifdef WITH_THREAD1
51108 PyThreadState *_save;
51109 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
51110 #endif
51111 /*try:*/ {
51112
51113 /* "rados.pyx":3888
51114 * apps = <char *>realloc_chk(apps, length)
51115 * with nogil:
51116 * ret = rados_application_list(self.io, apps, &length) # <<<<<<<<<<<<<<
51117 * if ret == 0:
51118 * return [decode_cstr(app) for app in
51119 */
51120 __pyx_v_ret = rados_application_list(__pyx_v_self->io, __pyx_v_apps, (&__pyx_v_length));
51121 }
51122
51123 /* "rados.pyx":3887
51124 * while True:
51125 * apps = <char *>realloc_chk(apps, length)
51126 * with nogil: # <<<<<<<<<<<<<<
51127 * ret = rados_application_list(self.io, apps, &length)
51128 * if ret == 0:
51129 */
51130 /*finally:*/ {
51131 /*normal exit:*/{
51132 #ifdef WITH_THREAD1
51133 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
51134 #endif
51135 goto __pyx_L12;
51136 }
51137 __pyx_L12:;
51138 }
51139 }
51140
51141 /* "rados.pyx":3889
51142 * with nogil:
51143 * ret = rados_application_list(self.io, apps, &length)
51144 * if ret == 0: # <<<<<<<<<<<<<<
51145 * return [decode_cstr(app) for app in
51146 * apps[:length].split(b'\0') if app]
51147 */
51148 __pyx_t_2 = ((__pyx_v_ret == 0) != 0);
51149 if (__pyx_t_2) {
51150
51151 /* "rados.pyx":3890
51152 * ret = rados_application_list(self.io, apps, &length)
51153 * if ret == 0:
51154 * return [decode_cstr(app) for app in # <<<<<<<<<<<<<<
51155 * apps[:length].split(b'\0') if app]
51156 * elif ret == -errno.ENOENT:
51157 */
51158 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
51159 __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3890; __pyx_clineno = __LINE__51159; goto __pyx_L4_error;}
51160 __Pyx_GOTREF(__pyx_t_3);
51161
51162 /* "rados.pyx":3891
51163 * if ret == 0:
51164 * return [decode_cstr(app) for app in
51165 * apps[:length].split(b'\0') if app] # <<<<<<<<<<<<<<
51166 * elif ret == -errno.ENOENT:
51167 * return None
51168 */
51169 __pyx_t_4 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_apps + 0, __pyx_v_length - 0); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51169; goto __pyx_L4_error;}
51170 __Pyx_GOTREF(__pyx_t_4);
51171 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51171; goto __pyx_L4_error;}
51172 __Pyx_GOTREF(__pyx_t_5);
51173 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
51174 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__65, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51174; goto __pyx_L4_error;}
51175 __Pyx_GOTREF(__pyx_t_4);
51176 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
51177 if (likely(PyList_CheckExact(__pyx_t_4))__builtin_expect(!!(((((PyObject*)(__pyx_t_4))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_4)((((PyObject*)(__pyx_t_4))->ob_type) == &PyTuple_Type)) {
51178 __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++); __pyx_t_6 = 0;
51179 __pyx_t_7 = NULL((void*)0);
51180 } else {
51181 __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51181; goto __pyx_L4_error;}
51182 __Pyx_GOTREF(__pyx_t_5);
51183 __pyx_t_7 = Py_TYPE(__pyx_t_5)(((PyObject*)(__pyx_t_5))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51183; goto __pyx_L4_error;}
51184 }
51185 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
51186 for (;;) {
51187 if (likely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 1)) {
51188 if (likely(PyList_CheckExact(__pyx_t_5))__builtin_expect(!!(((((PyObject*)(__pyx_t_5))->ob_type) ==
&PyList_Type)), 1)
) {
51189 if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)(((PyVarObject*)(__pyx_t_5))->ob_size)) break;
51190 #if CYTHON_COMPILING_IN_CPYTHON1
51191 __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6)(((PyListObject *)(__pyx_t_5))->ob_item[__pyx_t_6]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_6++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51191; goto __pyx_L4_error;}
51192 #else
51193 __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6)( (((PyObject*)(__pyx_t_5))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_5, __pyx_t_6) )
; __pyx_t_6++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51193; goto __pyx_L4_error;}
51194 __Pyx_GOTREF(__pyx_t_4);
51195 #endif
51196 } else {
51197 if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)(((PyVarObject*)(__pyx_t_5))->ob_size)) break;
51198 #if CYTHON_COMPILING_IN_CPYTHON1
51199 __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)(((PyTupleObject *)(__pyx_t_5))->ob_item[__pyx_t_6]); __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++); __pyx_t_6++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51199; goto __pyx_L4_error;}
51200 #else
51201 __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6)( (((PyObject*)(__pyx_t_5))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_5, __pyx_t_6) )
; __pyx_t_6++; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51201; goto __pyx_L4_error;}
51202 __Pyx_GOTREF(__pyx_t_4);
51203 #endif
51204 }
51205 } else {
51206 __pyx_t_4 = __pyx_t_7(__pyx_t_5);
51207 if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {
51208 PyObject* exc_type = PyErr_Occurred();
51209 if (exc_type) {
51210 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
51211 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51211; goto __pyx_L4_error;}
51212 }
51213 break;
51214 }
51215 __Pyx_GOTREF(__pyx_t_4);
51216 }
51217 __Pyx_XDECREF_SET(__pyx_v_app, __pyx_t_4)do { PyObject *tmp = (PyObject *) __pyx_v_app; __pyx_v_app = __pyx_t_4
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
51218 __pyx_t_4 = 0;
51219 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_app); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__51219; goto __pyx_L4_error;}
51220 if (__pyx_t_2) {
51221
51222 /* "rados.pyx":3890
51223 * ret = rados_application_list(self.io, apps, &length)
51224 * if ret == 0:
51225 * return [decode_cstr(app) for app in # <<<<<<<<<<<<<<
51226 * apps[:length].split(b'\0') if app]
51227 * elif ret == -errno.ENOENT:
51228 */
51229 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3890; __pyx_clineno = __LINE__51229; goto __pyx_L4_error;}
51230 __Pyx_GOTREF(__pyx_t_8);
51231 __pyx_t_9 = NULL((void*)0);
51232 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
51233 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
51234 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
51235 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
51236 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
51237 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
51238 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51239 }
51240 }
51241 if (!__pyx_t_9) {
51242 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_app); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3890; __pyx_clineno = __LINE__51242; goto __pyx_L4_error;}
51243 __Pyx_GOTREF(__pyx_t_4);
51244 } else {
51245 __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3890; __pyx_clineno = __LINE__51245; goto __pyx_L4_error;}
51246 __Pyx_GOTREF(__pyx_t_10);
51247 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_10))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
51248 __Pyx_INCREF(__pyx_v_app)( ((PyObject*)(__pyx_v_app))->ob_refcnt++);
51249 __Pyx_GIVEREF(__pyx_v_app);
51250 PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_app)(((PyTupleObject *)(__pyx_t_10))->ob_item[0+1] = __pyx_v_app
)
;
51251 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3890; __pyx_clineno = __LINE__51251; goto __pyx_L4_error;}
51252 __Pyx_GOTREF(__pyx_t_4);
51253 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
51254 }
51255 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
51256 if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_4))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_3, (PyObject
*)__pyx_t_4)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3890; __pyx_clineno = __LINE__51256; goto __pyx_L4_error;}
51257 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
51258
51259 /* "rados.pyx":3891
51260 * if ret == 0:
51261 * return [decode_cstr(app) for app in
51262 * apps[:length].split(b'\0') if app] # <<<<<<<<<<<<<<
51263 * elif ret == -errno.ENOENT:
51264 * return None
51265 */
51266 }
51267
51268 /* "rados.pyx":3890
51269 * ret = rados_application_list(self.io, apps, &length)
51270 * if ret == 0:
51271 * return [decode_cstr(app) for app in # <<<<<<<<<<<<<<
51272 * apps[:length].split(b'\0') if app]
51273 * elif ret == -errno.ENOENT:
51274 */
51275 }
51276 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
51277 __pyx_r = __pyx_t_3;
51278 __pyx_t_3 = 0;
51279 goto __pyx_L3_return;
51280
51281 /* "rados.pyx":3889
51282 * with nogil:
51283 * ret = rados_application_list(self.io, apps, &length)
51284 * if ret == 0: # <<<<<<<<<<<<<<
51285 * return [decode_cstr(app) for app in
51286 * apps[:length].split(b'\0') if app]
51287 */
51288 }
51289
51290 /* "rados.pyx":3892
51291 * return [decode_cstr(app) for app in
51292 * apps[:length].split(b'\0') if app]
51293 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
51294 * return None
51295 * elif ret == -errno.ERANGE:
51296 */
51297 __pyx_t_2 = ((__pyx_v_ret == (-ENOENT2)) != 0);
51298 if (__pyx_t_2) {
51299
51300 /* "rados.pyx":3893
51301 * apps[:length].split(b'\0') if app]
51302 * elif ret == -errno.ENOENT:
51303 * return None # <<<<<<<<<<<<<<
51304 * elif ret == -errno.ERANGE:
51305 * pass
51306 */
51307 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
51308 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
51309 __pyx_r = Py_None(&_Py_NoneStruct);
51310 goto __pyx_L3_return;
51311
51312 /* "rados.pyx":3892
51313 * return [decode_cstr(app) for app in
51314 * apps[:length].split(b'\0') if app]
51315 * elif ret == -errno.ENOENT: # <<<<<<<<<<<<<<
51316 * return None
51317 * elif ret == -errno.ERANGE:
51318 */
51319 }
51320
51321 /* "rados.pyx":3894
51322 * elif ret == -errno.ENOENT:
51323 * return None
51324 * elif ret == -errno.ERANGE: # <<<<<<<<<<<<<<
51325 * pass
51326 * else:
51327 */
51328 __pyx_t_2 = ((__pyx_v_ret == (-ERANGE34)) != 0);
51329 if (__pyx_t_2) {
51330 goto __pyx_L13;
51331 }
51332
51333 /* "rados.pyx":3897
51334 * pass
51335 * else:
51336 * raise make_ex(ret, "error listing applications") # <<<<<<<<<<<<<<
51337 * finally:
51338 * free(apps)
51339 */
51340 /*else*/ {
51341 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3897; __pyx_clineno = __LINE__51341; goto __pyx_L4_error;}
51342 __Pyx_GOTREF(__pyx_t_3);
51343 __pyx_t_5 = __pyx_f_5rados_make_ex(__pyx_t_3, __pyx_kp_s_error_listing_applications); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3897; __pyx_clineno = __LINE__51343; goto __pyx_L4_error;}
51344 __Pyx_GOTREF(__pyx_t_5);
51345 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
51346 __Pyx_Raise(__pyx_t_5, 0, 0, 0);
51347 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
51348 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3897; __pyx_clineno = __LINE__51348; goto __pyx_L4_error;}
51349 }
51350 __pyx_L13:;
51351 }
51352 }
51353
51354 /* "rados.pyx":3899
51355 * raise make_ex(ret, "error listing applications")
51356 * finally:
51357 * free(apps) # <<<<<<<<<<<<<<
51358 *
51359 * def application_metadata_set(self, app_name, key, value):
51360 */
51361 /*finally:*/ {
51362 /*normal exit:*/{
51363 free(__pyx_v_apps);
51364 goto __pyx_L5;
51365 }
51366 /*exception exit:*/{
51367 __pyx_L4_error:;
51368 __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
51369 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
; __pyx_t_9 = 0;
51370 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
; __pyx_t_10 = 0;
51371 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
; __pyx_t_8 = 0;
51372 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
51373 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
51374 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
51375 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
51376 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_14, &
__pyx_t_15, &__pyx_t_16) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
51377 __Pyx_XGOTREF(__pyx_t_14);
51378 __Pyx_XGOTREF(__pyx_t_15);
51379 __Pyx_XGOTREF(__pyx_t_16);
51380 __Pyx_XGOTREF(__pyx_t_17);
51381 __Pyx_XGOTREF(__pyx_t_18);
51382 __Pyx_XGOTREF(__pyx_t_19);
51383 __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
51384 {
51385 free(__pyx_v_apps);
51386 }
51387 if (PY_MAJOR_VERSION2 >= 3) {
51388 __Pyx_XGIVEREF(__pyx_t_17);
51389 __Pyx_XGIVEREF(__pyx_t_18);
51390 __Pyx_XGIVEREF(__pyx_t_19);
51391 __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
51392 }
51393 __Pyx_XGIVEREF(__pyx_t_14);
51394 __Pyx_XGIVEREF(__pyx_t_15);
51395 __Pyx_XGIVEREF(__pyx_t_16);
51396 __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
51397 __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
51398 __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
51399 goto __pyx_L1_error;
51400 }
51401 __pyx_L3_return: {
51402 __pyx_t_19 = __pyx_r;
51403 __pyx_r = 0;
51404 free(__pyx_v_apps);
51405 __pyx_r = __pyx_t_19;
51406 __pyx_t_19 = 0;
51407 goto __pyx_L0;
51408 }
51409 __pyx_L5:;
51410 }
51411
51412 /* "rados.pyx":3874
51413 * raise make_ex(ret, "error enabling application")
51414 *
51415 * def application_list(self): # <<<<<<<<<<<<<<
51416 * """
51417 * Returns a list of enabled applications
51418 */
51419
51420 /* function exit code */
51421 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
51422 goto __pyx_L0;
51423 __pyx_L1_error:;
51424 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
51425 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
51426 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
51427 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
51428 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
51429 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
;
51430 __Pyx_AddTraceback("rados.Ioctx.application_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
51431 __pyx_r = NULL((void*)0);
51432 __pyx_L0:;
51433 __Pyx_XDECREF(__pyx_v_app)do { if ((__pyx_v_app) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_app))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_app)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_app)))); } while (0); } while (0)
;
51434 __Pyx_XGIVEREF(__pyx_r);
51435 __Pyx_RefNannyFinishContext();
51436 return __pyx_r;
51437}
51438
51439/* "rados.pyx":3901
51440 * free(apps)
51441 *
51442 * def application_metadata_set(self, app_name, key, value): # <<<<<<<<<<<<<<
51443 * """
51444 * Sets application metadata on an OSD pool
51445 */
51446
51447/* Python wrapper */
51448static PyObject *__pyx_pw_5rados_5Ioctx_135application_metadata_set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51449static char __pyx_doc_5rados_5Ioctx_134application_metadata_set[] = "Ioctx.application_metadata_set(self, app_name, key, value)\n\n Sets application metadata on an OSD pool\n\n :param app_name: application name\n :type app_name: str\n :param key: metadata key\n :type key: str\n :param value: metadata value\n :type value: str\n\n :raises: :class:`Error`\n ";
51450static PyObject *__pyx_pw_5rados_5Ioctx_135application_metadata_set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51451 PyObject *__pyx_v_app_name = 0;
51452 PyObject *__pyx_v_key = 0;
51453 PyObject *__pyx_v_value = 0;
51454 int __pyx_lineno = 0;
51455 const char *__pyx_filename = NULL((void*)0);
51456 int __pyx_clineno = 0;
51457 PyObject *__pyx_r = 0;
51458 __Pyx_RefNannyDeclarations
51459 __Pyx_RefNannySetupContext("application_metadata_set (wrapper)", 0);
51460 {
51461 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_app_name,&__pyx_n_s_key,&__pyx_n_s_value,0};
51462 PyObject* values[3] = {0,0,0};
51463 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
51464 Py_ssize_t kw_args;
51465 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
51466 switch (pos_args) {
51467 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
51468 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
51469 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
51470 case 0: break;
51471 default: goto __pyx_L5_argtuple_error;
51472 }
51473 kw_args = PyDict_Size(__pyx_kwds);
51474 switch (pos_args) {
51475 case 0:
51476 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_app_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_app_name
)) != 0), 1)
) kw_args--;
51477 else goto __pyx_L5_argtuple_error;
51478 case 1:
51479 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
51480 else {
51481 __Pyx_RaiseArgtupleInvalid("application_metadata_set", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3901; __pyx_clineno = __LINE__51481; goto __pyx_L3_error;}
51482 }
51483 case 2:
51484 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value
)) != 0), 1)
) kw_args--;
51485 else {
51486 __Pyx_RaiseArgtupleInvalid("application_metadata_set", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3901; __pyx_clineno = __LINE__51486; goto __pyx_L3_error;}
51487 }
51488 }
51489 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
51490 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "application_metadata_set") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "application_metadata_set") < 0), 0
)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3901; __pyx_clineno = __LINE__51490; goto __pyx_L3_error;}
51491 }
51492 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
51493 goto __pyx_L5_argtuple_error;
51494 } else {
51495 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
51496 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
51497 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
51498 }
51499 __pyx_v_app_name = values[0];
51500 __pyx_v_key = values[1];
51501 __pyx_v_value = values[2];
51502 }
51503 goto __pyx_L4_argument_unpacking_done;
51504 __pyx_L5_argtuple_error:;
51505 __Pyx_RaiseArgtupleInvalid("application_metadata_set", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3901; __pyx_clineno = __LINE__51505; goto __pyx_L3_error;}
51506 __pyx_L3_error:;
51507 __Pyx_AddTraceback("rados.Ioctx.application_metadata_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
51508 __Pyx_RefNannyFinishContext();
51509 return NULL((void*)0);
51510 __pyx_L4_argument_unpacking_done:;
51511 __pyx_r = __pyx_pf_5rados_5Ioctx_134application_metadata_set(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_app_name, __pyx_v_key, __pyx_v_value);
51512
51513 /* function exit code */
51514 __Pyx_RefNannyFinishContext();
51515 return __pyx_r;
51516}
51517
51518static PyObject *__pyx_pf_5rados_5Ioctx_134application_metadata_set(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
51519 char *__pyx_v__app_name;
51520 char *__pyx_v__key;
51521 char *__pyx_v__value;
51522 int __pyx_v_ret;
51523 PyObject *__pyx_r = NULL((void*)0);
51524 __Pyx_RefNannyDeclarations
51525 PyObject *__pyx_t_1 = NULL((void*)0);
51526 PyObject *__pyx_t_2 = NULL((void*)0);
51527 PyObject *__pyx_t_3 = NULL((void*)0);
51528 Py_ssize_t __pyx_t_4;
51529 PyObject *__pyx_t_5 = NULL((void*)0);
51530 char *__pyx_t_6;
51531 int __pyx_t_7;
51532 int __pyx_lineno = 0;
51533 const char *__pyx_filename = NULL((void*)0);
51534 int __pyx_clineno = 0;
51535 __Pyx_RefNannySetupContext("application_metadata_set", 0);
51536 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
51537 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
51538 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
51539
51540 /* "rados.pyx":3914
51541 * :raises: :class:`Error`
51542 * """
51543 * app_name = cstr(app_name, 'app_name') # <<<<<<<<<<<<<<
51544 * key = cstr(key, 'key')
51545 * value = cstr(value, 'value')
51546 */
51547 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3914; __pyx_clineno = __LINE__51547; goto __pyx_L1_error;}
51548 __Pyx_GOTREF(__pyx_t_2);
51549 __pyx_t_3 = NULL((void*)0);
51550 __pyx_t_4 = 0;
51551 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
51552 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
51553 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
51554 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
51555 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
51556 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
51557 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51558 __pyx_t_4 = 1;
51559 }
51560 }
51561 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3914; __pyx_clineno = __LINE__51561; goto __pyx_L1_error;}
51562 __Pyx_GOTREF(__pyx_t_5);
51563 if (__pyx_t_3) {
51564 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
51565 }
51566 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
51567 __Pyx_GIVEREF(__pyx_v_app_name);
51568 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_app_name
)
;
51569 __Pyx_INCREF(__pyx_n_s_app_name)( ((PyObject*)(__pyx_n_s_app_name))->ob_refcnt++);
51570 __Pyx_GIVEREF(__pyx_n_s_app_name);
51571 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_app_name
)
;
51572 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3914; __pyx_clineno = __LINE__51572; goto __pyx_L1_error;}
51573 __Pyx_GOTREF(__pyx_t_1);
51574 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
51575 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
51576 __Pyx_DECREF_SET(__pyx_v_app_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_app_name; __pyx_v_app_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
51577 __pyx_t_1 = 0;
51578
51579 /* "rados.pyx":3915
51580 * """
51581 * app_name = cstr(app_name, 'app_name')
51582 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
51583 * value = cstr(value, 'value')
51584 * cdef:
51585 */
51586 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3915; __pyx_clineno = __LINE__51586; goto __pyx_L1_error;}
51587 __Pyx_GOTREF(__pyx_t_2);
51588 __pyx_t_5 = NULL((void*)0);
51589 __pyx_t_4 = 0;
51590 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
51591 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
51592 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
51593 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
51594 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
51595 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
51596 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51597 __pyx_t_4 = 1;
51598 }
51599 }
51600 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3915; __pyx_clineno = __LINE__51600; goto __pyx_L1_error;}
51601 __Pyx_GOTREF(__pyx_t_3);
51602 if (__pyx_t_5) {
51603 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
51604 }
51605 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
51606 __Pyx_GIVEREF(__pyx_v_key);
51607 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
51608 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
51609 __Pyx_GIVEREF(__pyx_n_s_key);
51610 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
51611 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3915; __pyx_clineno = __LINE__51611; goto __pyx_L1_error;}
51612 __Pyx_GOTREF(__pyx_t_1);
51613 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
51614 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
51615 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51616 __pyx_t_1 = 0;
51617
51618 /* "rados.pyx":3916
51619 * app_name = cstr(app_name, 'app_name')
51620 * key = cstr(key, 'key')
51621 * value = cstr(value, 'value') # <<<<<<<<<<<<<<
51622 * cdef:
51623 * char *_app_name = app_name
51624 */
51625 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3916; __pyx_clineno = __LINE__51625; goto __pyx_L1_error;}
51626 __Pyx_GOTREF(__pyx_t_2);
51627 __pyx_t_3 = NULL((void*)0);
51628 __pyx_t_4 = 0;
51629 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
51630 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
51631 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
51632 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
51633 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
51634 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
51635 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51636 __pyx_t_4 = 1;
51637 }
51638 }
51639 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3916; __pyx_clineno = __LINE__51639; goto __pyx_L1_error;}
51640 __Pyx_GOTREF(__pyx_t_5);
51641 if (__pyx_t_3) {
51642 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
51643 }
51644 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
51645 __Pyx_GIVEREF(__pyx_v_value);
51646 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_value)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_value
)
;
51647 __Pyx_INCREF(__pyx_n_s_value)( ((PyObject*)(__pyx_n_s_value))->ob_refcnt++);
51648 __Pyx_GIVEREF(__pyx_n_s_value);
51649 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_value)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_value
)
;
51650 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3916; __pyx_clineno = __LINE__51650; goto __pyx_L1_error;}
51651 __Pyx_GOTREF(__pyx_t_1);
51652 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
51653 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
51654 __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_value; __pyx_v_value
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
51655 __pyx_t_1 = 0;
51656
51657 /* "rados.pyx":3918
51658 * value = cstr(value, 'value')
51659 * cdef:
51660 * char *_app_name = app_name # <<<<<<<<<<<<<<
51661 * char *_key = key
51662 * char *_value = value
51663 */
51664 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_app_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3918; __pyx_clineno = __LINE__51664; goto __pyx_L1_error;}
51665 __pyx_v__app_name = __pyx_t_6;
51666
51667 /* "rados.pyx":3919
51668 * cdef:
51669 * char *_app_name = app_name
51670 * char *_key = key # <<<<<<<<<<<<<<
51671 * char *_value = value
51672 *
51673 */
51674 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3919; __pyx_clineno = __LINE__51674; goto __pyx_L1_error;}
51675 __pyx_v__key = __pyx_t_6;
51676
51677 /* "rados.pyx":3920
51678 * char *_app_name = app_name
51679 * char *_key = key
51680 * char *_value = value # <<<<<<<<<<<<<<
51681 *
51682 * with nogil:
51683 */
51684 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_value); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3920; __pyx_clineno = __LINE__51684; goto __pyx_L1_error;}
51685 __pyx_v__value = __pyx_t_6;
51686
51687 /* "rados.pyx":3922
51688 * char *_value = value
51689 *
51690 * with nogil: # <<<<<<<<<<<<<<
51691 * ret = rados_application_metadata_set(self.io, _app_name, _key,
51692 * _value)
51693 */
51694 {
51695 #ifdef WITH_THREAD1
51696 PyThreadState *_save;
51697 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
51698 #endif
51699 /*try:*/ {
51700
51701 /* "rados.pyx":3923
51702 *
51703 * with nogil:
51704 * ret = rados_application_metadata_set(self.io, _app_name, _key, # <<<<<<<<<<<<<<
51705 * _value)
51706 * if ret < 0:
51707 */
51708 __pyx_v_ret = rados_application_metadata_set(__pyx_v_self->io, __pyx_v__app_name, __pyx_v__key, __pyx_v__value);
51709 }
51710
51711 /* "rados.pyx":3922
51712 * char *_value = value
51713 *
51714 * with nogil: # <<<<<<<<<<<<<<
51715 * ret = rados_application_metadata_set(self.io, _app_name, _key,
51716 * _value)
51717 */
51718 /*finally:*/ {
51719 /*normal exit:*/{
51720 #ifdef WITH_THREAD1
51721 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
51722 #endif
51723 goto __pyx_L5;
51724 }
51725 __pyx_L5:;
51726 }
51727 }
51728
51729 /* "rados.pyx":3925
51730 * ret = rados_application_metadata_set(self.io, _app_name, _key,
51731 * _value)
51732 * if ret < 0: # <<<<<<<<<<<<<<
51733 * raise make_ex(ret, "error setting application metadata")
51734 *
51735 */
51736 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
51737 if (__pyx_t_7) {
51738
51739 /* "rados.pyx":3926
51740 * _value)
51741 * if ret < 0:
51742 * raise make_ex(ret, "error setting application metadata") # <<<<<<<<<<<<<<
51743 *
51744 * def application_metadata_remove(self, app_name, key):
51745 */
51746 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3926; __pyx_clineno = __LINE__51746; goto __pyx_L1_error;}
51747 __Pyx_GOTREF(__pyx_t_1);
51748 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_error_setting_application_metada); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3926; __pyx_clineno = __LINE__51748; goto __pyx_L1_error;}
51749 __Pyx_GOTREF(__pyx_t_2);
51750 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
51751 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
51752 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
51753 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3926; __pyx_clineno = __LINE__51753; goto __pyx_L1_error;}
51754
51755 /* "rados.pyx":3925
51756 * ret = rados_application_metadata_set(self.io, _app_name, _key,
51757 * _value)
51758 * if ret < 0: # <<<<<<<<<<<<<<
51759 * raise make_ex(ret, "error setting application metadata")
51760 *
51761 */
51762 }
51763
51764 /* "rados.pyx":3901
51765 * free(apps)
51766 *
51767 * def application_metadata_set(self, app_name, key, value): # <<<<<<<<<<<<<<
51768 * """
51769 * Sets application metadata on an OSD pool
51770 */
51771
51772 /* function exit code */
51773 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
51774 goto __pyx_L0;
51775 __pyx_L1_error:;
51776 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
51777 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
51778 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
51779 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
51780 __Pyx_AddTraceback("rados.Ioctx.application_metadata_set", __pyx_clineno, __pyx_lineno, __pyx_filename);
51781 __pyx_r = NULL((void*)0);
51782 __pyx_L0:;
51783 __Pyx_XDECREF(__pyx_v_app_name)do { if ((__pyx_v_app_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_app_name))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_app_name)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_app_name)))); }
while (0); } while (0)
;
51784 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
51785 __Pyx_XDECREF(__pyx_v_value)do { if ((__pyx_v_value) == ((void*)0)) ; else do { if ( --((
PyObject*)(__pyx_v_value))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(__pyx_v_value)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_value)))); } while (0); }
while (0)
;
51786 __Pyx_XGIVEREF(__pyx_r);
51787 __Pyx_RefNannyFinishContext();
51788 return __pyx_r;
51789}
51790
51791/* "rados.pyx":3928
51792 * raise make_ex(ret, "error setting application metadata")
51793 *
51794 * def application_metadata_remove(self, app_name, key): # <<<<<<<<<<<<<<
51795 * """
51796 * Remove application metadata from an OSD pool
51797 */
51798
51799/* Python wrapper */
51800static PyObject *__pyx_pw_5rados_5Ioctx_137application_metadata_remove(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
51801static char __pyx_doc_5rados_5Ioctx_136application_metadata_remove[] = "Ioctx.application_metadata_remove(self, app_name, key)\n\n Remove application metadata from an OSD pool\n\n :param app_name: application name\n :type app_name: str\n :param key: metadata key\n :type key: str\n\n :raises: :class:`Error`\n ";
51802static PyObject *__pyx_pw_5rados_5Ioctx_137application_metadata_remove(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
51803 PyObject *__pyx_v_app_name = 0;
51804 PyObject *__pyx_v_key = 0;
51805 int __pyx_lineno = 0;
51806 const char *__pyx_filename = NULL((void*)0);
51807 int __pyx_clineno = 0;
51808 PyObject *__pyx_r = 0;
51809 __Pyx_RefNannyDeclarations
51810 __Pyx_RefNannySetupContext("application_metadata_remove (wrapper)", 0);
51811 {
51812 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_app_name,&__pyx_n_s_key,0};
51813 PyObject* values[2] = {0,0};
51814 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
51815 Py_ssize_t kw_args;
51816 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
51817 switch (pos_args) {
51818 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
51819 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
51820 case 0: break;
51821 default: goto __pyx_L5_argtuple_error;
51822 }
51823 kw_args = PyDict_Size(__pyx_kwds);
51824 switch (pos_args) {
51825 case 0:
51826 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_app_name)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_app_name
)) != 0), 1)
) kw_args--;
51827 else goto __pyx_L5_argtuple_error;
51828 case 1:
51829 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
51830 else {
51831 __Pyx_RaiseArgtupleInvalid("application_metadata_remove", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3928; __pyx_clineno = __LINE__51831; goto __pyx_L3_error;}
51832 }
51833 }
51834 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
51835 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "application_metadata_remove") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "application_metadata_remove") < 0)
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3928; __pyx_clineno = __LINE__51835; goto __pyx_L3_error;}
51836 }
51837 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
51838 goto __pyx_L5_argtuple_error;
51839 } else {
51840 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
51841 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
51842 }
51843 __pyx_v_app_name = values[0];
51844 __pyx_v_key = values[1];
51845 }
51846 goto __pyx_L4_argument_unpacking_done;
51847 __pyx_L5_argtuple_error:;
51848 __Pyx_RaiseArgtupleInvalid("application_metadata_remove", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3928; __pyx_clineno = __LINE__51848; goto __pyx_L3_error;}
51849 __pyx_L3_error:;
51850 __Pyx_AddTraceback("rados.Ioctx.application_metadata_remove", __pyx_clineno, __pyx_lineno, __pyx_filename);
51851 __Pyx_RefNannyFinishContext();
51852 return NULL((void*)0);
51853 __pyx_L4_argument_unpacking_done:;
51854 __pyx_r = __pyx_pf_5rados_5Ioctx_136application_metadata_remove(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), __pyx_v_app_name, __pyx_v_key);
51855
51856 /* function exit code */
51857 __Pyx_RefNannyFinishContext();
51858 return __pyx_r;
51859}
51860
51861static PyObject *__pyx_pf_5rados_5Ioctx_136application_metadata_remove(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name, PyObject *__pyx_v_key) {
51862 char *__pyx_v__app_name;
51863 char *__pyx_v__key;
51864 int __pyx_v_ret;
51865 PyObject *__pyx_r = NULL((void*)0);
51866 __Pyx_RefNannyDeclarations
51867 PyObject *__pyx_t_1 = NULL((void*)0);
51868 PyObject *__pyx_t_2 = NULL((void*)0);
51869 PyObject *__pyx_t_3 = NULL((void*)0);
51870 Py_ssize_t __pyx_t_4;
51871 PyObject *__pyx_t_5 = NULL((void*)0);
51872 char *__pyx_t_6;
51873 int __pyx_t_7;
51874 int __pyx_lineno = 0;
51875 const char *__pyx_filename = NULL((void*)0);
51876 int __pyx_clineno = 0;
51877 __Pyx_RefNannySetupContext("application_metadata_remove", 0);
51878 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
51879 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
51880
51881 /* "rados.pyx":3939
51882 * :raises: :class:`Error`
51883 * """
51884 * app_name = cstr(app_name, 'app_name') # <<<<<<<<<<<<<<
51885 * key = cstr(key, 'key')
51886 * cdef:
51887 */
51888 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3939; __pyx_clineno = __LINE__51888; goto __pyx_L1_error;}
51889 __Pyx_GOTREF(__pyx_t_2);
51890 __pyx_t_3 = NULL((void*)0);
51891 __pyx_t_4 = 0;
51892 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
51893 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
51894 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
51895 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
51896 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
51897 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
51898 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51899 __pyx_t_4 = 1;
51900 }
51901 }
51902 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3939; __pyx_clineno = __LINE__51902; goto __pyx_L1_error;}
51903 __Pyx_GOTREF(__pyx_t_5);
51904 if (__pyx_t_3) {
51905 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
51906 }
51907 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
51908 __Pyx_GIVEREF(__pyx_v_app_name);
51909 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_app_name
)
;
51910 __Pyx_INCREF(__pyx_n_s_app_name)( ((PyObject*)(__pyx_n_s_app_name))->ob_refcnt++);
51911 __Pyx_GIVEREF(__pyx_n_s_app_name);
51912 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_app_name
)
;
51913 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3939; __pyx_clineno = __LINE__51913; goto __pyx_L1_error;}
51914 __Pyx_GOTREF(__pyx_t_1);
51915 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
51916 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
51917 __Pyx_DECREF_SET(__pyx_v_app_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_app_name; __pyx_v_app_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
51918 __pyx_t_1 = 0;
51919
51920 /* "rados.pyx":3940
51921 * """
51922 * app_name = cstr(app_name, 'app_name')
51923 * key = cstr(key, 'key') # <<<<<<<<<<<<<<
51924 * cdef:
51925 * char *_app_name = app_name
51926 */
51927 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3940; __pyx_clineno = __LINE__51927; goto __pyx_L1_error;}
51928 __Pyx_GOTREF(__pyx_t_2);
51929 __pyx_t_5 = NULL((void*)0);
51930 __pyx_t_4 = 0;
51931 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
51932 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
51933 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
51934 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
51935 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
51936 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
51937 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51938 __pyx_t_4 = 1;
51939 }
51940 }
51941 __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3940; __pyx_clineno = __LINE__51941; goto __pyx_L1_error;}
51942 __Pyx_GOTREF(__pyx_t_3);
51943 if (__pyx_t_5) {
51944 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_3))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
51945 }
51946 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
51947 __Pyx_GIVEREF(__pyx_v_key);
51948 PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_key)(((PyTupleObject *)(__pyx_t_3))->ob_item[0+__pyx_t_4] = __pyx_v_key
)
;
51949 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
51950 __Pyx_GIVEREF(__pyx_n_s_key);
51951 PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_3))->ob_item[1+__pyx_t_4] = __pyx_n_s_key
)
;
51952 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3940; __pyx_clineno = __LINE__51952; goto __pyx_L1_error;}
51953 __Pyx_GOTREF(__pyx_t_1);
51954 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
51955 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
51956 __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_1
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
51957 __pyx_t_1 = 0;
51958
51959 /* "rados.pyx":3942
51960 * key = cstr(key, 'key')
51961 * cdef:
51962 * char *_app_name = app_name # <<<<<<<<<<<<<<
51963 * char *_key = key
51964 *
51965 */
51966 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_app_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3942; __pyx_clineno = __LINE__51966; goto __pyx_L1_error;}
51967 __pyx_v__app_name = __pyx_t_6;
51968
51969 /* "rados.pyx":3943
51970 * cdef:
51971 * char *_app_name = app_name
51972 * char *_key = key # <<<<<<<<<<<<<<
51973 *
51974 * with nogil:
51975 */
51976 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3943; __pyx_clineno = __LINE__51976; goto __pyx_L1_error;}
51977 __pyx_v__key = __pyx_t_6;
51978
51979 /* "rados.pyx":3945
51980 * char *_key = key
51981 *
51982 * with nogil: # <<<<<<<<<<<<<<
51983 * ret = rados_application_metadata_remove(self.io, _app_name, _key)
51984 * if ret < 0:
51985 */
51986 {
51987 #ifdef WITH_THREAD1
51988 PyThreadState *_save;
51989 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
51990 #endif
51991 /*try:*/ {
51992
51993 /* "rados.pyx":3946
51994 *
51995 * with nogil:
51996 * ret = rados_application_metadata_remove(self.io, _app_name, _key) # <<<<<<<<<<<<<<
51997 * if ret < 0:
51998 * raise make_ex(ret, "error removing application metadata")
51999 */
52000 __pyx_v_ret = rados_application_metadata_remove(__pyx_v_self->io, __pyx_v__app_name, __pyx_v__key);
52001 }
52002
52003 /* "rados.pyx":3945
52004 * char *_key = key
52005 *
52006 * with nogil: # <<<<<<<<<<<<<<
52007 * ret = rados_application_metadata_remove(self.io, _app_name, _key)
52008 * if ret < 0:
52009 */
52010 /*finally:*/ {
52011 /*normal exit:*/{
52012 #ifdef WITH_THREAD1
52013 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
52014 #endif
52015 goto __pyx_L5;
52016 }
52017 __pyx_L5:;
52018 }
52019 }
52020
52021 /* "rados.pyx":3947
52022 * with nogil:
52023 * ret = rados_application_metadata_remove(self.io, _app_name, _key)
52024 * if ret < 0: # <<<<<<<<<<<<<<
52025 * raise make_ex(ret, "error removing application metadata")
52026 *
52027 */
52028 __pyx_t_7 = ((__pyx_v_ret < 0) != 0);
52029 if (__pyx_t_7) {
52030
52031 /* "rados.pyx":3948
52032 * ret = rados_application_metadata_remove(self.io, _app_name, _key)
52033 * if ret < 0:
52034 * raise make_ex(ret, "error removing application metadata") # <<<<<<<<<<<<<<
52035 *
52036 * def application_metadata_list(self, app_name):
52037 */
52038 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3948; __pyx_clineno = __LINE__52038; goto __pyx_L1_error;}
52039 __Pyx_GOTREF(__pyx_t_1);
52040 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_error_removing_application_metad); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3948; __pyx_clineno = __LINE__52040; goto __pyx_L1_error;}
52041 __Pyx_GOTREF(__pyx_t_2);
52042 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
52043 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
52044 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52045 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3948; __pyx_clineno = __LINE__52045; goto __pyx_L1_error;}
52046
52047 /* "rados.pyx":3947
52048 * with nogil:
52049 * ret = rados_application_metadata_remove(self.io, _app_name, _key)
52050 * if ret < 0: # <<<<<<<<<<<<<<
52051 * raise make_ex(ret, "error removing application metadata")
52052 *
52053 */
52054 }
52055
52056 /* "rados.pyx":3928
52057 * raise make_ex(ret, "error setting application metadata")
52058 *
52059 * def application_metadata_remove(self, app_name, key): # <<<<<<<<<<<<<<
52060 * """
52061 * Remove application metadata from an OSD pool
52062 */
52063
52064 /* function exit code */
52065 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
52066 goto __pyx_L0;
52067 __pyx_L1_error:;
52068 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
52069 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
52070 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
52071 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
52072 __Pyx_AddTraceback("rados.Ioctx.application_metadata_remove", __pyx_clineno, __pyx_lineno, __pyx_filename);
52073 __pyx_r = NULL((void*)0);
52074 __pyx_L0:;
52075 __Pyx_XDECREF(__pyx_v_app_name)do { if ((__pyx_v_app_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_app_name))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_app_name)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_app_name)))); }
while (0); } while (0)
;
52076 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
52077 __Pyx_XGIVEREF(__pyx_r);
52078 __Pyx_RefNannyFinishContext();
52079 return __pyx_r;
52080}
52081
52082/* "rados.pyx":3950
52083 * raise make_ex(ret, "error removing application metadata")
52084 *
52085 * def application_metadata_list(self, app_name): # <<<<<<<<<<<<<<
52086 * """
52087 * Returns a list of enabled applications
52088 */
52089
52090/* Python wrapper */
52091static PyObject *__pyx_pw_5rados_5Ioctx_139application_metadata_list(PyObject *__pyx_v_self, PyObject *__pyx_v_app_name); /*proto*/
52092static char __pyx_doc_5rados_5Ioctx_138application_metadata_list[] = "Ioctx.application_metadata_list(self, app_name)\n\n Returns a list of enabled applications\n\n :param app_name: application name\n :type app_name: str\n :returns: list of key/value tuples\n ";
52093static PyObject *__pyx_pw_5rados_5Ioctx_139application_metadata_list(PyObject *__pyx_v_self, PyObject *__pyx_v_app_name) {
52094 PyObject *__pyx_r = 0;
52095 __Pyx_RefNannyDeclarations
52096 __Pyx_RefNannySetupContext("application_metadata_list (wrapper)", 0);
52097 __pyx_r = __pyx_pf_5rados_5Ioctx_138application_metadata_list(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_app_name));
52098
52099 /* function exit code */
52100 __Pyx_RefNannyFinishContext();
52101 return __pyx_r;
52102}
52103
52104static PyObject *__pyx_pf_5rados_5Ioctx_138application_metadata_list(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_app_name) {
52105 char *__pyx_v__app_name;
52106 size_t __pyx_v_key_length;
52107 size_t __pyx_v_val_length;
52108 char *__pyx_v_c_keys;
52109 char *__pyx_v_c_vals;
52110 int __pyx_v_ret;
52111 PyObject *__pyx_v_keys = NULL((void*)0);
52112 PyObject *__pyx_v_vals = NULL((void*)0);
52113 PyObject *__pyx_v_key = NULL((void*)0);
52114 PyObject *__pyx_v_val = NULL((void*)0);
52115 PyObject *__pyx_r = NULL((void*)0);
52116 __Pyx_RefNannyDeclarations
52117 PyObject *__pyx_t_1 = NULL((void*)0);
52118 PyObject *__pyx_t_2 = NULL((void*)0);
52119 PyObject *__pyx_t_3 = NULL((void*)0);
52120 Py_ssize_t __pyx_t_4;
52121 PyObject *__pyx_t_5 = NULL((void*)0);
52122 char *__pyx_t_6;
52123 void *__pyx_t_7;
52124 int __pyx_t_8;
52125 PyObject *(*__pyx_t_9)(PyObject *);
52126 PyObject *__pyx_t_10 = NULL((void*)0);
52127 PyObject *__pyx_t_11 = NULL((void*)0);
52128 int __pyx_t_12;
52129 int __pyx_t_13;
52130 char const *__pyx_t_14;
52131 PyObject *__pyx_t_15 = NULL((void*)0);
52132 PyObject *__pyx_t_16 = NULL((void*)0);
52133 PyObject *__pyx_t_17 = NULL((void*)0);
52134 PyObject *__pyx_t_18 = NULL((void*)0);
52135 PyObject *__pyx_t_19 = NULL((void*)0);
52136 PyObject *__pyx_t_20 = NULL((void*)0);
52137 int __pyx_lineno = 0;
52138 const char *__pyx_filename = NULL((void*)0);
52139 int __pyx_clineno = 0;
52140 __Pyx_RefNannySetupContext("application_metadata_list", 0);
52141 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
52142
52143 /* "rados.pyx":3958
52144 * :returns: list of key/value tuples
52145 * """
52146 * app_name = cstr(app_name, 'app_name') # <<<<<<<<<<<<<<
52147 * cdef:
52148 * char *_app_name = app_name
52149 */
52150 __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_cstr); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3958; __pyx_clineno = __LINE__52150; goto __pyx_L1_error;}
52151 __Pyx_GOTREF(__pyx_t_2);
52152 __pyx_t_3 = NULL((void*)0);
52153 __pyx_t_4 = 0;
52154 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 0)
) {
52155 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
52156 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
52157 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
52158 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
52159 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
52160 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
52161 __pyx_t_4 = 1;
52162 }
52163 }
52164 __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3958; __pyx_clineno = __LINE__52164; goto __pyx_L1_error;}
52165 __Pyx_GOTREF(__pyx_t_5);
52166 if (__pyx_t_3) {
52167 __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_3); __pyx_t_3 = NULL((void*)0);
52168 }
52169 __Pyx_INCREF(__pyx_v_app_name)( ((PyObject*)(__pyx_v_app_name))->ob_refcnt++);
52170 __Pyx_GIVEREF(__pyx_v_app_name);
52171 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_app_name
)
;
52172 __Pyx_INCREF(__pyx_n_s_app_name)( ((PyObject*)(__pyx_n_s_app_name))->ob_refcnt++);
52173 __Pyx_GIVEREF(__pyx_n_s_app_name);
52174 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_n_s_app_name)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_n_s_app_name
)
;
52175 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3958; __pyx_clineno = __LINE__52175; goto __pyx_L1_error;}
52176 __Pyx_GOTREF(__pyx_t_1);
52177 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
52178 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52179 __Pyx_DECREF_SET(__pyx_v_app_name, __pyx_t_1)do { PyObject *tmp = (PyObject *) __pyx_v_app_name; __pyx_v_app_name
= __pyx_t_1; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
52180 __pyx_t_1 = 0;
52181
52182 /* "rados.pyx":3960
52183 * app_name = cstr(app_name, 'app_name')
52184 * cdef:
52185 * char *_app_name = app_name # <<<<<<<<<<<<<<
52186 * size_t key_length = 128
52187 * size_t val_length = 128
52188 */
52189 __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_app_name); if (unlikely((!__pyx_t_6) && PyErr_Occurred())__builtin_expect(!!((!__pyx_t_6) && PyErr_Occurred())
, 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3960; __pyx_clineno = __LINE__52189; goto __pyx_L1_error;}
52190 __pyx_v__app_name = __pyx_t_6;
52191
52192 /* "rados.pyx":3961
52193 * cdef:
52194 * char *_app_name = app_name
52195 * size_t key_length = 128 # <<<<<<<<<<<<<<
52196 * size_t val_length = 128
52197 * char *c_keys = NULL
52198 */
52199 __pyx_v_key_length = 0x80;
52200
52201 /* "rados.pyx":3962
52202 * char *_app_name = app_name
52203 * size_t key_length = 128
52204 * size_t val_length = 128 # <<<<<<<<<<<<<<
52205 * char *c_keys = NULL
52206 * char *c_vals = NULL
52207 */
52208 __pyx_v_val_length = 0x80;
52209
52210 /* "rados.pyx":3963
52211 * size_t key_length = 128
52212 * size_t val_length = 128
52213 * char *c_keys = NULL # <<<<<<<<<<<<<<
52214 * char *c_vals = NULL
52215 *
52216 */
52217 __pyx_v_c_keys = NULL((void*)0);
52218
52219 /* "rados.pyx":3964
52220 * size_t val_length = 128
52221 * char *c_keys = NULL
52222 * char *c_vals = NULL # <<<<<<<<<<<<<<
52223 *
52224 * try:
52225 */
52226 __pyx_v_c_vals = NULL((void*)0);
52227
52228 /* "rados.pyx":3966
52229 * char *c_vals = NULL
52230 *
52231 * try: # <<<<<<<<<<<<<<
52232 * while True:
52233 * c_keys = <char *>realloc_chk(c_keys, key_length)
52234 */
52235 /*try:*/ {
52236
52237 /* "rados.pyx":3967
52238 *
52239 * try:
52240 * while True: # <<<<<<<<<<<<<<
52241 * c_keys = <char *>realloc_chk(c_keys, key_length)
52242 * c_vals = <char *>realloc_chk(c_vals, val_length)
52243 */
52244 while (1) {
52245
52246 /* "rados.pyx":3968
52247 * try:
52248 * while True:
52249 * c_keys = <char *>realloc_chk(c_keys, key_length) # <<<<<<<<<<<<<<
52250 * c_vals = <char *>realloc_chk(c_vals, val_length)
52251 * with nogil:
52252 */
52253 __pyx_t_7 = __pyx_f_5rados_realloc_chk(__pyx_v_c_keys, __pyx_v_key_length); if (unlikely(__pyx_t_7 == NULL)__builtin_expect(!!(__pyx_t_7 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3968; __pyx_clineno = __LINE__52253; goto __pyx_L4_error;}
52254 __pyx_v_c_keys = ((char *)__pyx_t_7);
52255
52256 /* "rados.pyx":3969
52257 * while True:
52258 * c_keys = <char *>realloc_chk(c_keys, key_length)
52259 * c_vals = <char *>realloc_chk(c_vals, val_length) # <<<<<<<<<<<<<<
52260 * with nogil:
52261 * ret = rados_application_metadata_list(self.io, _app_name,
52262 */
52263 __pyx_t_7 = __pyx_f_5rados_realloc_chk(__pyx_v_c_vals, __pyx_v_val_length); if (unlikely(__pyx_t_7 == NULL)__builtin_expect(!!(__pyx_t_7 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3969; __pyx_clineno = __LINE__52263; goto __pyx_L4_error;}
52264 __pyx_v_c_vals = ((char *)__pyx_t_7);
52265
52266 /* "rados.pyx":3970
52267 * c_keys = <char *>realloc_chk(c_keys, key_length)
52268 * c_vals = <char *>realloc_chk(c_vals, val_length)
52269 * with nogil: # <<<<<<<<<<<<<<
52270 * ret = rados_application_metadata_list(self.io, _app_name,
52271 * c_keys, &key_length,
52272 */
52273 {
52274 #ifdef WITH_THREAD1
52275 PyThreadState *_save;
52276 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
52277 #endif
52278 /*try:*/ {
52279
52280 /* "rados.pyx":3971
52281 * c_vals = <char *>realloc_chk(c_vals, val_length)
52282 * with nogil:
52283 * ret = rados_application_metadata_list(self.io, _app_name, # <<<<<<<<<<<<<<
52284 * c_keys, &key_length,
52285 * c_vals, &val_length)
52286 */
52287 __pyx_v_ret = rados_application_metadata_list(__pyx_v_self->io, __pyx_v__app_name, __pyx_v_c_keys, (&__pyx_v_key_length), __pyx_v_c_vals, (&__pyx_v_val_length));
52288 }
52289
52290 /* "rados.pyx":3970
52291 * c_keys = <char *>realloc_chk(c_keys, key_length)
52292 * c_vals = <char *>realloc_chk(c_vals, val_length)
52293 * with nogil: # <<<<<<<<<<<<<<
52294 * ret = rados_application_metadata_list(self.io, _app_name,
52295 * c_keys, &key_length,
52296 */
52297 /*finally:*/ {
52298 /*normal exit:*/{
52299 #ifdef WITH_THREAD1
52300 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
52301 #endif
52302 goto __pyx_L12;
52303 }
52304 __pyx_L12:;
52305 }
52306 }
52307
52308 /* "rados.pyx":3974
52309 * c_keys, &key_length,
52310 * c_vals, &val_length)
52311 * if ret == 0: # <<<<<<<<<<<<<<
52312 * keys = [decode_cstr(key) for key in
52313 * c_keys[:key_length].split(b'\0')]
52314 */
52315 __pyx_t_8 = ((__pyx_v_ret == 0) != 0);
52316 if (__pyx_t_8) {
52317
52318 /* "rados.pyx":3975
52319 * c_vals, &val_length)
52320 * if ret == 0:
52321 * keys = [decode_cstr(key) for key in # <<<<<<<<<<<<<<
52322 * c_keys[:key_length].split(b'\0')]
52323 * vals = [decode_cstr(val) for val in
52324 */
52325 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3975; __pyx_clineno = __LINE__52325; goto __pyx_L4_error;}
52326 __Pyx_GOTREF(__pyx_t_1);
52327
52328 /* "rados.pyx":3976
52329 * if ret == 0:
52330 * keys = [decode_cstr(key) for key in
52331 * c_keys[:key_length].split(b'\0')] # <<<<<<<<<<<<<<
52332 * vals = [decode_cstr(val) for val in
52333 * c_vals[:val_length].split(b'\0')]
52334 */
52335 __pyx_t_2 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_c_keys + 0, __pyx_v_key_length - 0); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52335; goto __pyx_L4_error;}
52336 __Pyx_GOTREF(__pyx_t_2);
52337 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52337; goto __pyx_L4_error;}
52338 __Pyx_GOTREF(__pyx_t_5);
52339 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52340 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__66, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52340; goto __pyx_L4_error;}
52341 __Pyx_GOTREF(__pyx_t_2);
52342 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
52343 if (likely(PyList_CheckExact(__pyx_t_2))__builtin_expect(!!(((((PyObject*)(__pyx_t_2))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_2)((((PyObject*)(__pyx_t_2))->ob_type) == &PyTuple_Type)) {
52344 __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++); __pyx_t_4 = 0;
52345 __pyx_t_9 = NULL((void*)0);
52346 } else {
52347 __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52347; goto __pyx_L4_error;}
52348 __Pyx_GOTREF(__pyx_t_5);
52349 __pyx_t_9 = Py_TYPE(__pyx_t_5)(((PyObject*)(__pyx_t_5))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52349; goto __pyx_L4_error;}
52350 }
52351 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52352 for (;;) {
52353 if (likely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 1)) {
52354 if (likely(PyList_CheckExact(__pyx_t_5))__builtin_expect(!!(((((PyObject*)(__pyx_t_5))->ob_type) ==
&PyList_Type)), 1)
) {
52355 if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)(((PyVarObject*)(__pyx_t_5))->ob_size)) break;
52356 #if CYTHON_COMPILING_IN_CPYTHON1
52357 __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4)(((PyListObject *)(__pyx_t_5))->ob_item[__pyx_t_4]); __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_4++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52357; goto __pyx_L4_error;}
52358 #else
52359 __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_4)( (((PyObject*)(__pyx_t_5))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_5, __pyx_t_4) )
; __pyx_t_4++; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52359; goto __pyx_L4_error;}
52360 __Pyx_GOTREF(__pyx_t_2);
52361 #endif
52362 } else {
52363 if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)(((PyVarObject*)(__pyx_t_5))->ob_size)) break;
52364 #if CYTHON_COMPILING_IN_CPYTHON1
52365 __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[__pyx_t_4]); __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_4++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52365; goto __pyx_L4_error;}
52366 #else
52367 __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_4)( (((PyObject*)(__pyx_t_5))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_5, __pyx_t_4) )
; __pyx_t_4++; if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52367; goto __pyx_L4_error;}
52368 __Pyx_GOTREF(__pyx_t_2);
52369 #endif
52370 }
52371 } else {
52372 __pyx_t_2 = __pyx_t_9(__pyx_t_5);
52373 if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {
52374 PyObject* exc_type = PyErr_Occurred();
52375 if (exc_type) {
52376 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
52377 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__52377; goto __pyx_L4_error;}
52378 }
52379 break;
52380 }
52381 __Pyx_GOTREF(__pyx_t_2);
52382 }
52383 __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_key; __pyx_v_key = __pyx_t_2
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
52384 __pyx_t_2 = 0;
52385
52386 /* "rados.pyx":3975
52387 * c_vals, &val_length)
52388 * if ret == 0:
52389 * keys = [decode_cstr(key) for key in # <<<<<<<<<<<<<<
52390 * c_keys[:key_length].split(b'\0')]
52391 * vals = [decode_cstr(val) for val in
52392 */
52393 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3975; __pyx_clineno = __LINE__52393; goto __pyx_L4_error;}
52394 __Pyx_GOTREF(__pyx_t_3);
52395 __pyx_t_10 = NULL((void*)0);
52396 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
52397 __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
52398 if (likely(__pyx_t_10)__builtin_expect(!!(__pyx_t_10), 1)) {
52399 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
52400 __Pyx_INCREF(__pyx_t_10)( ((PyObject*)(__pyx_t_10))->ob_refcnt++);
52401 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
52402 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
52403 }
52404 }
52405 if (!__pyx_t_10) {
52406 __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3975; __pyx_clineno = __LINE__52406; goto __pyx_L4_error;}
52407 __Pyx_GOTREF(__pyx_t_2);
52408 } else {
52409 __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3975; __pyx_clineno = __LINE__52409; goto __pyx_L4_error;}
52410 __Pyx_GOTREF(__pyx_t_11);
52411 __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10)(((PyTupleObject *)(__pyx_t_11))->ob_item[0] = __pyx_t_10); __pyx_t_10 = NULL((void*)0);
52412 __Pyx_INCREF(__pyx_v_key)( ((PyObject*)(__pyx_v_key))->ob_refcnt++);
52413 __Pyx_GIVEREF(__pyx_v_key);
52414 PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_v_key)(((PyTupleObject *)(__pyx_t_11))->ob_item[0+1] = __pyx_v_key
)
;
52415 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3975; __pyx_clineno = __LINE__52415; goto __pyx_L4_error;}
52416 __Pyx_GOTREF(__pyx_t_2);
52417 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
52418 }
52419 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
52420 if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_1, (PyObject
*)__pyx_t_2)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3975; __pyx_clineno = __LINE__52420; goto __pyx_L4_error;}
52421 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52422 }
52423 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
52424 __pyx_v_keys = ((PyObject*)__pyx_t_1);
52425 __pyx_t_1 = 0;
52426
52427 /* "rados.pyx":3977
52428 * keys = [decode_cstr(key) for key in
52429 * c_keys[:key_length].split(b'\0')]
52430 * vals = [decode_cstr(val) for val in # <<<<<<<<<<<<<<
52431 * c_vals[:val_length].split(b'\0')]
52432 * return zip(keys, vals)[:-1]
52433 */
52434 __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3977; __pyx_clineno = __LINE__52434; goto __pyx_L4_error;}
52435 __Pyx_GOTREF(__pyx_t_1);
52436
52437 /* "rados.pyx":3978
52438 * c_keys[:key_length].split(b'\0')]
52439 * vals = [decode_cstr(val) for val in
52440 * c_vals[:val_length].split(b'\0')] # <<<<<<<<<<<<<<
52441 * return zip(keys, vals)[:-1]
52442 * elif ret == -errno.ERANGE:
52443 */
52444 __pyx_t_5 = __Pyx_PyBytes_FromStringAndSizePyString_FromStringAndSize(__pyx_v_c_vals + 0, __pyx_v_val_length - 0); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52444; goto __pyx_L4_error;}
52445 __Pyx_GOTREF(__pyx_t_5);
52446 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52446; goto __pyx_L4_error;}
52447 __Pyx_GOTREF(__pyx_t_2);
52448 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
52449 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__67, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52449; goto __pyx_L4_error;}
52450 __Pyx_GOTREF(__pyx_t_5);
52451 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52452 if (likely(PyList_CheckExact(__pyx_t_5))__builtin_expect(!!(((((PyObject*)(__pyx_t_5))->ob_type) ==
&PyList_Type)), 1)
|| PyTuple_CheckExact(__pyx_t_5)((((PyObject*)(__pyx_t_5))->ob_type) == &PyTuple_Type)) {
52453 __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++); __pyx_t_4 = 0;
52454 __pyx_t_9 = NULL((void*)0);
52455 } else {
52456 __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52456; goto __pyx_L4_error;}
52457 __Pyx_GOTREF(__pyx_t_2);
52458 __pyx_t_9 = Py_TYPE(__pyx_t_2)(((PyObject*)(__pyx_t_2))->ob_type)->tp_iternext; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52458; goto __pyx_L4_error;}
52459 }
52460 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
52461 for (;;) {
52462 if (likely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 1)) {
52463 if (likely(PyList_CheckExact(__pyx_t_2))__builtin_expect(!!(((((PyObject*)(__pyx_t_2))->ob_type) ==
&PyList_Type)), 1)
) {
52464 if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
52465 #if CYTHON_COMPILING_IN_CPYTHON1
52466 __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4)(((PyListObject *)(__pyx_t_2))->ob_item[__pyx_t_4]); __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++); __pyx_t_4++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52466; goto __pyx_L4_error;}
52467 #else
52468 __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_4)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_4) )
; __pyx_t_4++; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52468; goto __pyx_L4_error;}
52469 __Pyx_GOTREF(__pyx_t_5);
52470 #endif
52471 } else {
52472 if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)(((PyVarObject*)(__pyx_t_2))->ob_size)) break;
52473 #if CYTHON_COMPILING_IN_CPYTHON1
52474 __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)(((PyTupleObject *)(__pyx_t_2))->ob_item[__pyx_t_4]); __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++); __pyx_t_4++; if (unlikely(0 < 0)__builtin_expect(!!(0 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52474; goto __pyx_L4_error;}
52475 #else
52476 __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_4)( (((PyObject*)(__pyx_t_2))->ob_type)->tp_as_sequence->
sq_item(__pyx_t_2, __pyx_t_4) )
; __pyx_t_4++; if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52476; goto __pyx_L4_error;}
52477 __Pyx_GOTREF(__pyx_t_5);
52478 #endif
52479 }
52480 } else {
52481 __pyx_t_5 = __pyx_t_9(__pyx_t_2);
52482 if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {
52483 PyObject* exc_type = PyErr_Occurred();
52484 if (exc_type) {
52485 if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))__builtin_expect(!!(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches
(exc_type, PyExc_StopIteration)), 1)
) PyErr_Clear();
52486 else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__52486; goto __pyx_L4_error;}
52487 }
52488 break;
52489 }
52490 __Pyx_GOTREF(__pyx_t_5);
52491 }
52492 __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_5)do { PyObject *tmp = (PyObject *) __pyx_v_val; __pyx_v_val = __pyx_t_5
; do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0); } while (0)
;
52493 __pyx_t_5 = 0;
52494
52495 /* "rados.pyx":3977
52496 * keys = [decode_cstr(key) for key in
52497 * c_keys[:key_length].split(b'\0')]
52498 * vals = [decode_cstr(val) for val in # <<<<<<<<<<<<<<
52499 * c_vals[:val_length].split(b'\0')]
52500 * return zip(keys, vals)[:-1]
52501 */
52502 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_decode_cstr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3977; __pyx_clineno = __LINE__52502; goto __pyx_L4_error;}
52503 __Pyx_GOTREF(__pyx_t_3);
52504 __pyx_t_11 = NULL((void*)0);
52505 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
52506 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
52507 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
52508 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
52509 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
52510 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
52511 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
52512 }
52513 }
52514 if (!__pyx_t_11) {
52515 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_val); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3977; __pyx_clineno = __LINE__52515; goto __pyx_L4_error;}
52516 __Pyx_GOTREF(__pyx_t_5);
52517 } else {
52518 __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)__builtin_expect(!!(!__pyx_t_10), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3977; __pyx_clineno = __LINE__52518; goto __pyx_L4_error;}
52519 __Pyx_GOTREF(__pyx_t_10);
52520 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_10))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
52521 __Pyx_INCREF(__pyx_v_val)( ((PyObject*)(__pyx_v_val))->ob_refcnt++);
52522 __Pyx_GIVEREF(__pyx_v_val);
52523 PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_v_val)(((PyTupleObject *)(__pyx_t_10))->ob_item[0+1] = __pyx_v_val
)
;
52524 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3977; __pyx_clineno = __LINE__52524; goto __pyx_L4_error;}
52525 __Pyx_GOTREF(__pyx_t_5);
52526 __Pyx_DECREF(__pyx_t_10)do { if ( --((PyObject*)(__pyx_t_10))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_10)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_10)))); } while
(0)
; __pyx_t_10 = 0;
52527 }
52528 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
52529 if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))__builtin_expect(!!(__Pyx_ListComp_Append(__pyx_t_1, (PyObject
*)__pyx_t_5)), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3977; __pyx_clineno = __LINE__52529; goto __pyx_L4_error;}
52530 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
52531 }
52532 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52533 __pyx_v_vals = ((PyObject*)__pyx_t_1);
52534 __pyx_t_1 = 0;
52535
52536 /* "rados.pyx":3979
52537 * vals = [decode_cstr(val) for val in
52538 * c_vals[:val_length].split(b'\0')]
52539 * return zip(keys, vals)[:-1] # <<<<<<<<<<<<<<
52540 * elif ret == -errno.ERANGE:
52541 * pass
52542 */
52543 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
52544 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3979; __pyx_clineno = __LINE__52544; goto __pyx_L4_error;}
52545 __Pyx_GOTREF(__pyx_t_1);
52546 __Pyx_INCREF(__pyx_v_keys)( ((PyObject*)(__pyx_v_keys))->ob_refcnt++);
52547 __Pyx_GIVEREF(__pyx_v_keys);
52548 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_keys)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_v_keys
)
;
52549 __Pyx_INCREF(__pyx_v_vals)( ((PyObject*)(__pyx_v_vals))->ob_refcnt++);
52550 __Pyx_GIVEREF(__pyx_v_vals);
52551 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_vals)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_v_vals
)
;
52552 __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_zip, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3979; __pyx_clineno = __LINE__52552; goto __pyx_L4_error;}
52553 __Pyx_GOTREF(__pyx_t_2);
52554 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
52555 __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, -1L, NULL((void*)0), NULL((void*)0), &__pyx_slice__68, 0, 1, 1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3979; __pyx_clineno = __LINE__52555; goto __pyx_L4_error;}
52556 __Pyx_GOTREF(__pyx_t_1);
52557 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52558 __pyx_r = __pyx_t_1;
52559 __pyx_t_1 = 0;
52560 goto __pyx_L3_return;
52561
52562 /* "rados.pyx":3974
52563 * c_keys, &key_length,
52564 * c_vals, &val_length)
52565 * if ret == 0: # <<<<<<<<<<<<<<
52566 * keys = [decode_cstr(key) for key in
52567 * c_keys[:key_length].split(b'\0')]
52568 */
52569 }
52570
52571 /* "rados.pyx":3980
52572 * c_vals[:val_length].split(b'\0')]
52573 * return zip(keys, vals)[:-1]
52574 * elif ret == -errno.ERANGE: # <<<<<<<<<<<<<<
52575 * pass
52576 * else:
52577 */
52578 __pyx_t_8 = ((__pyx_v_ret == (-ERANGE34)) != 0);
52579 if (__pyx_t_8) {
52580 goto __pyx_L13;
52581 }
52582
52583 /* "rados.pyx":3983
52584 * pass
52585 * else:
52586 * raise make_ex(ret, "error listing application metadata") # <<<<<<<<<<<<<<
52587 * finally:
52588 * free(c_keys)
52589 */
52590 /*else*/ {
52591 __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3983; __pyx_clineno = __LINE__52591; goto __pyx_L4_error;}
52592 __Pyx_GOTREF(__pyx_t_1);
52593 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_1, __pyx_kp_s_error_listing_application_metada); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3983; __pyx_clineno = __LINE__52593; goto __pyx_L4_error;}
52594 __Pyx_GOTREF(__pyx_t_2);
52595 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
52596 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
52597 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52598 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3983; __pyx_clineno = __LINE__52598; goto __pyx_L4_error;}
52599 }
52600 __pyx_L13:;
52601 }
52602 }
52603
52604 /* "rados.pyx":3985
52605 * raise make_ex(ret, "error listing application metadata")
52606 * finally:
52607 * free(c_keys) # <<<<<<<<<<<<<<
52608 * free(c_vals)
52609 *
52610 */
52611 /*finally:*/ {
52612 /*normal exit:*/{
52613 free(__pyx_v_c_keys);
52614
52615 /* "rados.pyx":3986
52616 * finally:
52617 * free(c_keys)
52618 * free(c_vals) # <<<<<<<<<<<<<<
52619 *
52620 * def alignment(self):
52621 */
52622 free(__pyx_v_c_vals);
52623 goto __pyx_L5;
52624 }
52625 /*exception exit:*/{
52626 __pyx_L4_error:;
52627 __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
52628 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
; __pyx_t_11 = 0;
52629 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
; __pyx_t_10 = 0;
52630 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
52631 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
52632 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
52633 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
52634 if (PY_MAJOR_VERSION2 >= 3) __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
52635 if ((PY_MAJOR_VERSION2 < 3) || unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)__builtin_expect(!!(__Pyx_GetException(&__pyx_t_15, &
__pyx_t_16, &__pyx_t_17) < 0), 0)
) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17);
52636 __Pyx_XGOTREF(__pyx_t_15);
52637 __Pyx_XGOTREF(__pyx_t_16);
52638 __Pyx_XGOTREF(__pyx_t_17);
52639 __Pyx_XGOTREF(__pyx_t_18);
52640 __Pyx_XGOTREF(__pyx_t_19);
52641 __Pyx_XGOTREF(__pyx_t_20);
52642 __pyx_t_12 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename;
52643 {
52644
52645 /* "rados.pyx":3985
52646 * raise make_ex(ret, "error listing application metadata")
52647 * finally:
52648 * free(c_keys) # <<<<<<<<<<<<<<
52649 * free(c_vals)
52650 *
52651 */
52652 free(__pyx_v_c_keys);
52653
52654 /* "rados.pyx":3986
52655 * finally:
52656 * free(c_keys)
52657 * free(c_vals) # <<<<<<<<<<<<<<
52658 *
52659 * def alignment(self):
52660 */
52661 free(__pyx_v_c_vals);
52662 }
52663 if (PY_MAJOR_VERSION2 >= 3) {
52664 __Pyx_XGIVEREF(__pyx_t_18);
52665 __Pyx_XGIVEREF(__pyx_t_19);
52666 __Pyx_XGIVEREF(__pyx_t_20);
52667 __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
52668 }
52669 __Pyx_XGIVEREF(__pyx_t_15);
52670 __Pyx_XGIVEREF(__pyx_t_16);
52671 __Pyx_XGIVEREF(__pyx_t_17);
52672 __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17);
52673 __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
52674 __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14;
52675 goto __pyx_L1_error;
52676 }
52677 __pyx_L3_return: {
52678 __pyx_t_20 = __pyx_r;
52679 __pyx_r = 0;
52680
52681 /* "rados.pyx":3985
52682 * raise make_ex(ret, "error listing application metadata")
52683 * finally:
52684 * free(c_keys) # <<<<<<<<<<<<<<
52685 * free(c_vals)
52686 *
52687 */
52688 free(__pyx_v_c_keys);
52689
52690 /* "rados.pyx":3986
52691 * finally:
52692 * free(c_keys)
52693 * free(c_vals) # <<<<<<<<<<<<<<
52694 *
52695 * def alignment(self):
52696 */
52697 free(__pyx_v_c_vals);
52698 __pyx_r = __pyx_t_20;
52699 __pyx_t_20 = 0;
52700 goto __pyx_L0;
52701 }
52702 __pyx_L5:;
52703 }
52704
52705 /* "rados.pyx":3950
52706 * raise make_ex(ret, "error removing application metadata")
52707 *
52708 * def application_metadata_list(self, app_name): # <<<<<<<<<<<<<<
52709 * """
52710 * Returns a list of enabled applications
52711 */
52712
52713 /* function exit code */
52714 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
52715 goto __pyx_L0;
52716 __pyx_L1_error:;
52717 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
52718 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
52719 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
52720 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
52721 __Pyx_XDECREF(__pyx_t_10)do { if ((__pyx_t_10) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_10))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_10)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_10)))); } while (0); } while (0)
;
52722 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
;
52723 __Pyx_AddTraceback("rados.Ioctx.application_metadata_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
52724 __pyx_r = NULL((void*)0);
52725 __pyx_L0:;
52726 __Pyx_XDECREF(__pyx_v_keys)do { if ((__pyx_v_keys) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_keys))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_keys)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_keys)))); } while (0); } while
(0)
;
52727 __Pyx_XDECREF(__pyx_v_vals)do { if ((__pyx_v_vals) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_vals))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_vals)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_vals)))); } while (0); } while
(0)
;
52728 __Pyx_XDECREF(__pyx_v_key)do { if ((__pyx_v_key) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_key))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_key)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_key)))); } while (0); } while (0)
;
52729 __Pyx_XDECREF(__pyx_v_val)do { if ((__pyx_v_val) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_val))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_val)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_val)))); } while (0); } while (0)
;
52730 __Pyx_XDECREF(__pyx_v_app_name)do { if ((__pyx_v_app_name) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_app_name))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_app_name)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_app_name)))); }
while (0); } while (0)
;
52731 __Pyx_XGIVEREF(__pyx_r);
52732 __Pyx_RefNannyFinishContext();
52733 return __pyx_r;
52734}
52735
52736/* "rados.pyx":3988
52737 * free(c_vals)
52738 *
52739 * def alignment(self): # <<<<<<<<<<<<<<
52740 * """
52741 * Returns pool alignment
52742 */
52743
52744/* Python wrapper */
52745static PyObject *__pyx_pw_5rados_5Ioctx_141alignment(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused); /*proto*/
52746static char __pyx_doc_5rados_5Ioctx_140alignment[] = "Ioctx.alignment(self)\n\n Returns pool alignment\n\n :returns:\n Number of alignment bytes required by the current pool, or None if\n alignment is not required.\n ";
52747static PyObject *__pyx_pw_5rados_5Ioctx_141alignment(PyObject *__pyx_v_self, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *unused) {
52748 PyObject *__pyx_r = 0;
52749 __Pyx_RefNannyDeclarations
52750 __Pyx_RefNannySetupContext("alignment (wrapper)", 0);
52751 __pyx_r = __pyx_pf_5rados_5Ioctx_140alignment(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
52752
52753 /* function exit code */
52754 __Pyx_RefNannyFinishContext();
52755 return __pyx_r;
52756}
52757
52758static PyObject *__pyx_pf_5rados_5Ioctx_140alignment(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
52759 int __pyx_v_requires;
52760 uint64_t __pyx_v__alignment;
52761 int __pyx_v_ret;
52762 PyObject *__pyx_v_alignment = NULL((void*)0);
52763 PyObject *__pyx_r = NULL((void*)0);
52764 __Pyx_RefNannyDeclarations
52765 int __pyx_t_1;
52766 PyObject *__pyx_t_2 = NULL((void*)0);
52767 PyObject *__pyx_t_3 = NULL((void*)0);
52768 int __pyx_lineno = 0;
52769 const char *__pyx_filename = NULL((void*)0);
52770 int __pyx_clineno = 0;
52771 __Pyx_RefNannySetupContext("alignment", 0);
52772
52773 /* "rados.pyx":3997
52774 * """
52775 * cdef:
52776 * int requires = 0 # <<<<<<<<<<<<<<
52777 * uint64_t _alignment
52778 *
52779 */
52780 __pyx_v_requires = 0;
52781
52782 /* "rados.pyx":4000
52783 * uint64_t _alignment
52784 *
52785 * with nogil: # <<<<<<<<<<<<<<
52786 * ret = rados_ioctx_pool_requires_alignment2(self.io, &requires)
52787 * if ret != 0:
52788 */
52789 {
52790 #ifdef WITH_THREAD1
52791 PyThreadState *_save;
52792 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
52793 #endif
52794 /*try:*/ {
52795
52796 /* "rados.pyx":4001
52797 *
52798 * with nogil:
52799 * ret = rados_ioctx_pool_requires_alignment2(self.io, &requires) # <<<<<<<<<<<<<<
52800 * if ret != 0:
52801 * raise make_ex(ret, "error checking alignment")
52802 */
52803 __pyx_v_ret = rados_ioctx_pool_requires_alignment2(__pyx_v_self->io, (&__pyx_v_requires));
52804 }
52805
52806 /* "rados.pyx":4000
52807 * uint64_t _alignment
52808 *
52809 * with nogil: # <<<<<<<<<<<<<<
52810 * ret = rados_ioctx_pool_requires_alignment2(self.io, &requires)
52811 * if ret != 0:
52812 */
52813 /*finally:*/ {
52814 /*normal exit:*/{
52815 #ifdef WITH_THREAD1
52816 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
52817 #endif
52818 goto __pyx_L5;
52819 }
52820 __pyx_L5:;
52821 }
52822 }
52823
52824 /* "rados.pyx":4002
52825 * with nogil:
52826 * ret = rados_ioctx_pool_requires_alignment2(self.io, &requires)
52827 * if ret != 0: # <<<<<<<<<<<<<<
52828 * raise make_ex(ret, "error checking alignment")
52829 *
52830 */
52831 __pyx_t_1 = ((__pyx_v_ret != 0) != 0);
52832 if (__pyx_t_1) {
52833
52834 /* "rados.pyx":4003
52835 * ret = rados_ioctx_pool_requires_alignment2(self.io, &requires)
52836 * if ret != 0:
52837 * raise make_ex(ret, "error checking alignment") # <<<<<<<<<<<<<<
52838 *
52839 * alignment = None
52840 */
52841 __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4003; __pyx_clineno = __LINE__52841; goto __pyx_L1_error;}
52842 __Pyx_GOTREF(__pyx_t_2);
52843 __pyx_t_3 = __pyx_f_5rados_make_ex(__pyx_t_2, __pyx_kp_s_error_checking_alignment); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4003; __pyx_clineno = __LINE__52843; goto __pyx_L1_error;}
52844 __Pyx_GOTREF(__pyx_t_3);
52845 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52846 __Pyx_Raise(__pyx_t_3, 0, 0, 0);
52847 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
52848 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4003; __pyx_clineno = __LINE__52848; goto __pyx_L1_error;}
52849
52850 /* "rados.pyx":4002
52851 * with nogil:
52852 * ret = rados_ioctx_pool_requires_alignment2(self.io, &requires)
52853 * if ret != 0: # <<<<<<<<<<<<<<
52854 * raise make_ex(ret, "error checking alignment")
52855 *
52856 */
52857 }
52858
52859 /* "rados.pyx":4005
52860 * raise make_ex(ret, "error checking alignment")
52861 *
52862 * alignment = None # <<<<<<<<<<<<<<
52863 * if requires:
52864 * with nogil:
52865 */
52866 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
52867 __pyx_v_alignment = Py_None(&_Py_NoneStruct);
52868
52869 /* "rados.pyx":4006
52870 *
52871 * alignment = None
52872 * if requires: # <<<<<<<<<<<<<<
52873 * with nogil:
52874 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment)
52875 */
52876 __pyx_t_1 = (__pyx_v_requires != 0);
52877 if (__pyx_t_1) {
52878
52879 /* "rados.pyx":4007
52880 * alignment = None
52881 * if requires:
52882 * with nogil: # <<<<<<<<<<<<<<
52883 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment)
52884 * if ret != 0:
52885 */
52886 {
52887 #ifdef WITH_THREAD1
52888 PyThreadState *_save;
52889 Py_UNBLOCK_THREADS_save = PyEval_SaveThread();
52890 #endif
52891 /*try:*/ {
52892
52893 /* "rados.pyx":4008
52894 * if requires:
52895 * with nogil:
52896 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment) # <<<<<<<<<<<<<<
52897 * if ret != 0:
52898 * raise make_ex(ret, "error querying alignment")
52899 */
52900 __pyx_v_ret = rados_ioctx_pool_required_alignment2(__pyx_v_self->io, (&__pyx_v__alignment));
52901 }
52902
52903 /* "rados.pyx":4007
52904 * alignment = None
52905 * if requires:
52906 * with nogil: # <<<<<<<<<<<<<<
52907 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment)
52908 * if ret != 0:
52909 */
52910 /*finally:*/ {
52911 /*normal exit:*/{
52912 #ifdef WITH_THREAD1
52913 Py_BLOCK_THREADSPyEval_RestoreThread(_save);
52914 #endif
52915 goto __pyx_L10;
52916 }
52917 __pyx_L10:;
52918 }
52919 }
52920
52921 /* "rados.pyx":4009
52922 * with nogil:
52923 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment)
52924 * if ret != 0: # <<<<<<<<<<<<<<
52925 * raise make_ex(ret, "error querying alignment")
52926 * alignment = _alignment
52927 */
52928 __pyx_t_1 = ((__pyx_v_ret != 0) != 0);
52929 if (__pyx_t_1) {
52930
52931 /* "rados.pyx":4010
52932 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment)
52933 * if ret != 0:
52934 * raise make_ex(ret, "error querying alignment") # <<<<<<<<<<<<<<
52935 * alignment = _alignment
52936 * return alignment
52937 */
52938 __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4010; __pyx_clineno = __LINE__52938; goto __pyx_L1_error;}
52939 __Pyx_GOTREF(__pyx_t_3);
52940 __pyx_t_2 = __pyx_f_5rados_make_ex(__pyx_t_3, __pyx_kp_s_error_querying_alignment); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4010; __pyx_clineno = __LINE__52940; goto __pyx_L1_error;}
52941 __Pyx_GOTREF(__pyx_t_2);
52942 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
52943 __Pyx_Raise(__pyx_t_2, 0, 0, 0);
52944 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
52945 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4010; __pyx_clineno = __LINE__52945; goto __pyx_L1_error;}
52946
52947 /* "rados.pyx":4009
52948 * with nogil:
52949 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment)
52950 * if ret != 0: # <<<<<<<<<<<<<<
52951 * raise make_ex(ret, "error querying alignment")
52952 * alignment = _alignment
52953 */
52954 }
52955
52956 /* "rados.pyx":4011
52957 * if ret != 0:
52958 * raise make_ex(ret, "error querying alignment")
52959 * alignment = _alignment # <<<<<<<<<<<<<<
52960 * return alignment
52961 *
52962 */
52963 __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v__alignment); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4011; __pyx_clineno = __LINE__52963; goto __pyx_L1_error;}
52964 __Pyx_GOTREF(__pyx_t_2);
52965 __Pyx_DECREF_SET(__pyx_v_alignment, __pyx_t_2)do { PyObject *tmp = (PyObject *) __pyx_v_alignment; __pyx_v_alignment
= __pyx_t_2; do { if ( --((PyObject*)(tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(tmp)))->ob_type)
->tp_dealloc)((PyObject *)((PyObject *)(tmp)))); } while (
0); } while (0)
;
52966 __pyx_t_2 = 0;
52967
52968 /* "rados.pyx":4006
52969 *
52970 * alignment = None
52971 * if requires: # <<<<<<<<<<<<<<
52972 * with nogil:
52973 * ret = rados_ioctx_pool_required_alignment2(self.io, &_alignment)
52974 */
52975 }
52976
52977 /* "rados.pyx":4012
52978 * raise make_ex(ret, "error querying alignment")
52979 * alignment = _alignment
52980 * return alignment # <<<<<<<<<<<<<<
52981 *
52982 *
52983 */
52984 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
52985 __Pyx_INCREF(__pyx_v_alignment)( ((PyObject*)(__pyx_v_alignment))->ob_refcnt++);
52986 __pyx_r = __pyx_v_alignment;
52987 goto __pyx_L0;
52988
52989 /* "rados.pyx":3988
52990 * free(c_vals)
52991 *
52992 * def alignment(self): # <<<<<<<<<<<<<<
52993 * """
52994 * Returns pool alignment
52995 */
52996
52997 /* function exit code */
52998 __pyx_L1_error:;
52999 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
53000 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
53001 __Pyx_AddTraceback("rados.Ioctx.alignment", __pyx_clineno, __pyx_lineno, __pyx_filename);
53002 __pyx_r = NULL((void*)0);
53003 __pyx_L0:;
53004 __Pyx_XDECREF(__pyx_v_alignment)do { if ((__pyx_v_alignment) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_alignment))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(__pyx_v_alignment)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_alignment
)))); } while (0); } while (0)
;
53005 __Pyx_XGIVEREF(__pyx_r);
53006 __Pyx_RefNannyFinishContext();
53007 return __pyx_r;
53008}
53009
53010/* "rados.pxd":29
53011 * cdef:
53012 * rados_ioctx_t io
53013 * public object name # <<<<<<<<<<<<<<
53014 * public object state
53015 * public object locator_key
53016 */
53017
53018/* Python wrapper */
53019static PyObject *__pyx_pw_5rados_5Ioctx_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
53020static PyObject *__pyx_pw_5rados_5Ioctx_4name_1__get__(PyObject *__pyx_v_self) {
53021 PyObject *__pyx_r = 0;
53022 __Pyx_RefNannyDeclarations
53023 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
53024 __pyx_r = __pyx_pf_5rados_5Ioctx_4name___get__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53025
53026 /* function exit code */
53027 __Pyx_RefNannyFinishContext();
53028 return __pyx_r;
53029}
53030
53031static PyObject *__pyx_pf_5rados_5Ioctx_4name___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53032 PyObject *__pyx_r = NULL((void*)0);
53033 __Pyx_RefNannyDeclarations
53034 __Pyx_RefNannySetupContext("__get__", 0);
53035 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53036 __Pyx_INCREF(__pyx_v_self->name)( ((PyObject*)(__pyx_v_self->name))->ob_refcnt++);
53037 __pyx_r = __pyx_v_self->name;
53038 goto __pyx_L0;
53039
53040 /* function exit code */
53041 __pyx_L0:;
53042 __Pyx_XGIVEREF(__pyx_r);
53043 __Pyx_RefNannyFinishContext();
53044 return __pyx_r;
53045}
53046
53047/* Python wrapper */
53048static int __pyx_pw_5rados_5Ioctx_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
53049static int __pyx_pw_5rados_5Ioctx_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
53050 int __pyx_r;
53051 __Pyx_RefNannyDeclarations
53052 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
53053 __pyx_r = __pyx_pf_5rados_5Ioctx_4name_2__set__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_value));
53054
53055 /* function exit code */
53056 __Pyx_RefNannyFinishContext();
53057 return __pyx_r;
53058}
53059
53060static int __pyx_pf_5rados_5Ioctx_4name_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value) {
53061 int __pyx_r;
53062 __Pyx_RefNannyDeclarations
53063 __Pyx_RefNannySetupContext("__set__", 0);
53064 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
53065 __Pyx_GIVEREF(__pyx_v_value);
53066 __Pyx_GOTREF(__pyx_v_self->name);
53067 __Pyx_DECREF(__pyx_v_self->name)do { if ( --((PyObject*)(__pyx_v_self->name))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
name)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->name)))); } while (0)
;
53068 __pyx_v_self->name = __pyx_v_value;
53069
53070 /* function exit code */
53071 __pyx_r = 0;
53072 __Pyx_RefNannyFinishContext();
53073 return __pyx_r;
53074}
53075
53076/* Python wrapper */
53077static int __pyx_pw_5rados_5Ioctx_4name_5__del__(PyObject *__pyx_v_self); /*proto*/
53078static int __pyx_pw_5rados_5Ioctx_4name_5__del__(PyObject *__pyx_v_self) {
53079 int __pyx_r;
53080 __Pyx_RefNannyDeclarations
53081 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
53082 __pyx_r = __pyx_pf_5rados_5Ioctx_4name_4__del__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53083
53084 /* function exit code */
53085 __Pyx_RefNannyFinishContext();
53086 return __pyx_r;
53087}
53088
53089static int __pyx_pf_5rados_5Ioctx_4name_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53090 int __pyx_r;
53091 __Pyx_RefNannyDeclarations
53092 __Pyx_RefNannySetupContext("__del__", 0);
53093 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
53094 __Pyx_GIVEREF(Py_None);
53095 __Pyx_GOTREF(__pyx_v_self->name);
53096 __Pyx_DECREF(__pyx_v_self->name)do { if ( --((PyObject*)(__pyx_v_self->name))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
name)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->name)))); } while (0)
;
53097 __pyx_v_self->name = Py_None(&_Py_NoneStruct);
53098
53099 /* function exit code */
53100 __pyx_r = 0;
53101 __Pyx_RefNannyFinishContext();
53102 return __pyx_r;
53103}
53104
53105/* "rados.pxd":30
53106 * rados_ioctx_t io
53107 * public object name
53108 * public object state # <<<<<<<<<<<<<<
53109 * public object locator_key
53110 * public object nspace
53111 */
53112
53113/* Python wrapper */
53114static PyObject *__pyx_pw_5rados_5Ioctx_5state_1__get__(PyObject *__pyx_v_self); /*proto*/
53115static PyObject *__pyx_pw_5rados_5Ioctx_5state_1__get__(PyObject *__pyx_v_self) {
53116 PyObject *__pyx_r = 0;
53117 __Pyx_RefNannyDeclarations
53118 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
53119 __pyx_r = __pyx_pf_5rados_5Ioctx_5state___get__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53120
53121 /* function exit code */
53122 __Pyx_RefNannyFinishContext();
53123 return __pyx_r;
53124}
53125
53126static PyObject *__pyx_pf_5rados_5Ioctx_5state___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53127 PyObject *__pyx_r = NULL((void*)0);
53128 __Pyx_RefNannyDeclarations
53129 __Pyx_RefNannySetupContext("__get__", 0);
53130 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53131 __Pyx_INCREF(__pyx_v_self->state)( ((PyObject*)(__pyx_v_self->state))->ob_refcnt++);
53132 __pyx_r = __pyx_v_self->state;
53133 goto __pyx_L0;
53134
53135 /* function exit code */
53136 __pyx_L0:;
53137 __Pyx_XGIVEREF(__pyx_r);
53138 __Pyx_RefNannyFinishContext();
53139 return __pyx_r;
53140}
53141
53142/* Python wrapper */
53143static int __pyx_pw_5rados_5Ioctx_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
53144static int __pyx_pw_5rados_5Ioctx_5state_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
53145 int __pyx_r;
53146 __Pyx_RefNannyDeclarations
53147 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
53148 __pyx_r = __pyx_pf_5rados_5Ioctx_5state_2__set__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_value));
53149
53150 /* function exit code */
53151 __Pyx_RefNannyFinishContext();
53152 return __pyx_r;
53153}
53154
53155static int __pyx_pf_5rados_5Ioctx_5state_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value) {
53156 int __pyx_r;
53157 __Pyx_RefNannyDeclarations
53158 __Pyx_RefNannySetupContext("__set__", 0);
53159 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
53160 __Pyx_GIVEREF(__pyx_v_value);
53161 __Pyx_GOTREF(__pyx_v_self->state);
53162 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
53163 __pyx_v_self->state = __pyx_v_value;
53164
53165 /* function exit code */
53166 __pyx_r = 0;
53167 __Pyx_RefNannyFinishContext();
53168 return __pyx_r;
53169}
53170
53171/* Python wrapper */
53172static int __pyx_pw_5rados_5Ioctx_5state_5__del__(PyObject *__pyx_v_self); /*proto*/
53173static int __pyx_pw_5rados_5Ioctx_5state_5__del__(PyObject *__pyx_v_self) {
53174 int __pyx_r;
53175 __Pyx_RefNannyDeclarations
53176 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
53177 __pyx_r = __pyx_pf_5rados_5Ioctx_5state_4__del__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53178
53179 /* function exit code */
53180 __Pyx_RefNannyFinishContext();
53181 return __pyx_r;
53182}
53183
53184static int __pyx_pf_5rados_5Ioctx_5state_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53185 int __pyx_r;
53186 __Pyx_RefNannyDeclarations
53187 __Pyx_RefNannySetupContext("__del__", 0);
53188 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
53189 __Pyx_GIVEREF(Py_None);
53190 __Pyx_GOTREF(__pyx_v_self->state);
53191 __Pyx_DECREF(__pyx_v_self->state)do { if ( --((PyObject*)(__pyx_v_self->state))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
state)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->state)))); } while (0)
;
53192 __pyx_v_self->state = Py_None(&_Py_NoneStruct);
53193
53194 /* function exit code */
53195 __pyx_r = 0;
53196 __Pyx_RefNannyFinishContext();
53197 return __pyx_r;
53198}
53199
53200/* "rados.pxd":31
53201 * public object name
53202 * public object state
53203 * public object locator_key # <<<<<<<<<<<<<<
53204 * public object nspace
53205 *
53206 */
53207
53208/* Python wrapper */
53209static PyObject *__pyx_pw_5rados_5Ioctx_11locator_key_1__get__(PyObject *__pyx_v_self); /*proto*/
53210static PyObject *__pyx_pw_5rados_5Ioctx_11locator_key_1__get__(PyObject *__pyx_v_self) {
53211 PyObject *__pyx_r = 0;
53212 __Pyx_RefNannyDeclarations
53213 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
53214 __pyx_r = __pyx_pf_5rados_5Ioctx_11locator_key___get__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53215
53216 /* function exit code */
53217 __Pyx_RefNannyFinishContext();
53218 return __pyx_r;
53219}
53220
53221static PyObject *__pyx_pf_5rados_5Ioctx_11locator_key___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53222 PyObject *__pyx_r = NULL((void*)0);
53223 __Pyx_RefNannyDeclarations
53224 __Pyx_RefNannySetupContext("__get__", 0);
53225 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53226 __Pyx_INCREF(__pyx_v_self->locator_key)( ((PyObject*)(__pyx_v_self->locator_key))->ob_refcnt++
)
;
53227 __pyx_r = __pyx_v_self->locator_key;
53228 goto __pyx_L0;
53229
53230 /* function exit code */
53231 __pyx_L0:;
53232 __Pyx_XGIVEREF(__pyx_r);
53233 __Pyx_RefNannyFinishContext();
53234 return __pyx_r;
53235}
53236
53237/* Python wrapper */
53238static int __pyx_pw_5rados_5Ioctx_11locator_key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
53239static int __pyx_pw_5rados_5Ioctx_11locator_key_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
53240 int __pyx_r;
53241 __Pyx_RefNannyDeclarations
53242 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
53243 __pyx_r = __pyx_pf_5rados_5Ioctx_11locator_key_2__set__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_value));
53244
53245 /* function exit code */
53246 __Pyx_RefNannyFinishContext();
53247 return __pyx_r;
53248}
53249
53250static int __pyx_pf_5rados_5Ioctx_11locator_key_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value) {
53251 int __pyx_r;
53252 __Pyx_RefNannyDeclarations
53253 __Pyx_RefNannySetupContext("__set__", 0);
53254 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
53255 __Pyx_GIVEREF(__pyx_v_value);
53256 __Pyx_GOTREF(__pyx_v_self->locator_key);
53257 __Pyx_DECREF(__pyx_v_self->locator_key)do { if ( --((PyObject*)(__pyx_v_self->locator_key))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
locator_key)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->locator_key)))); } while (0)
;
53258 __pyx_v_self->locator_key = __pyx_v_value;
53259
53260 /* function exit code */
53261 __pyx_r = 0;
53262 __Pyx_RefNannyFinishContext();
53263 return __pyx_r;
53264}
53265
53266/* Python wrapper */
53267static int __pyx_pw_5rados_5Ioctx_11locator_key_5__del__(PyObject *__pyx_v_self); /*proto*/
53268static int __pyx_pw_5rados_5Ioctx_11locator_key_5__del__(PyObject *__pyx_v_self) {
53269 int __pyx_r;
53270 __Pyx_RefNannyDeclarations
53271 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
53272 __pyx_r = __pyx_pf_5rados_5Ioctx_11locator_key_4__del__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53273
53274 /* function exit code */
53275 __Pyx_RefNannyFinishContext();
53276 return __pyx_r;
53277}
53278
53279static int __pyx_pf_5rados_5Ioctx_11locator_key_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53280 int __pyx_r;
53281 __Pyx_RefNannyDeclarations
53282 __Pyx_RefNannySetupContext("__del__", 0);
53283 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
53284 __Pyx_GIVEREF(Py_None);
53285 __Pyx_GOTREF(__pyx_v_self->locator_key);
53286 __Pyx_DECREF(__pyx_v_self->locator_key)do { if ( --((PyObject*)(__pyx_v_self->locator_key))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
locator_key)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->locator_key)))); } while (0)
;
53287 __pyx_v_self->locator_key = Py_None(&_Py_NoneStruct);
53288
53289 /* function exit code */
53290 __pyx_r = 0;
53291 __Pyx_RefNannyFinishContext();
53292 return __pyx_r;
53293}
53294
53295/* "rados.pxd":32
53296 * public object state
53297 * public object locator_key
53298 * public object nspace # <<<<<<<<<<<<<<
53299 *
53300 * # TODO(sileht): we need to track leaving completion objects
53301 */
53302
53303/* Python wrapper */
53304static PyObject *__pyx_pw_5rados_5Ioctx_6nspace_1__get__(PyObject *__pyx_v_self); /*proto*/
53305static PyObject *__pyx_pw_5rados_5Ioctx_6nspace_1__get__(PyObject *__pyx_v_self) {
53306 PyObject *__pyx_r = 0;
53307 __Pyx_RefNannyDeclarations
53308 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
53309 __pyx_r = __pyx_pf_5rados_5Ioctx_6nspace___get__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53310
53311 /* function exit code */
53312 __Pyx_RefNannyFinishContext();
53313 return __pyx_r;
53314}
53315
53316static PyObject *__pyx_pf_5rados_5Ioctx_6nspace___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53317 PyObject *__pyx_r = NULL((void*)0);
53318 __Pyx_RefNannyDeclarations
53319 __Pyx_RefNannySetupContext("__get__", 0);
53320 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53321 __Pyx_INCREF(__pyx_v_self->nspace)( ((PyObject*)(__pyx_v_self->nspace))->ob_refcnt++);
53322 __pyx_r = __pyx_v_self->nspace;
53323 goto __pyx_L0;
53324
53325 /* function exit code */
53326 __pyx_L0:;
53327 __Pyx_XGIVEREF(__pyx_r);
53328 __Pyx_RefNannyFinishContext();
53329 return __pyx_r;
53330}
53331
53332/* Python wrapper */
53333static int __pyx_pw_5rados_5Ioctx_6nspace_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
53334static int __pyx_pw_5rados_5Ioctx_6nspace_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
53335 int __pyx_r;
53336 __Pyx_RefNannyDeclarations
53337 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
53338 __pyx_r = __pyx_pf_5rados_5Ioctx_6nspace_2__set__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_value));
53339
53340 /* function exit code */
53341 __Pyx_RefNannyFinishContext();
53342 return __pyx_r;
53343}
53344
53345static int __pyx_pf_5rados_5Ioctx_6nspace_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value) {
53346 int __pyx_r;
53347 __Pyx_RefNannyDeclarations
53348 __Pyx_RefNannySetupContext("__set__", 0);
53349 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
53350 __Pyx_GIVEREF(__pyx_v_value);
53351 __Pyx_GOTREF(__pyx_v_self->nspace);
53352 __Pyx_DECREF(__pyx_v_self->nspace)do { if ( --((PyObject*)(__pyx_v_self->nspace))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
nspace)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->nspace)))); } while (0)
;
53353 __pyx_v_self->nspace = __pyx_v_value;
53354
53355 /* function exit code */
53356 __pyx_r = 0;
53357 __Pyx_RefNannyFinishContext();
53358 return __pyx_r;
53359}
53360
53361/* Python wrapper */
53362static int __pyx_pw_5rados_5Ioctx_6nspace_5__del__(PyObject *__pyx_v_self); /*proto*/
53363static int __pyx_pw_5rados_5Ioctx_6nspace_5__del__(PyObject *__pyx_v_self) {
53364 int __pyx_r;
53365 __Pyx_RefNannyDeclarations
53366 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
53367 __pyx_r = __pyx_pf_5rados_5Ioctx_6nspace_4__del__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53368
53369 /* function exit code */
53370 __Pyx_RefNannyFinishContext();
53371 return __pyx_r;
53372}
53373
53374static int __pyx_pf_5rados_5Ioctx_6nspace_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53375 int __pyx_r;
53376 __Pyx_RefNannyDeclarations
53377 __Pyx_RefNannySetupContext("__del__", 0);
53378 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
53379 __Pyx_GIVEREF(Py_None);
53380 __Pyx_GOTREF(__pyx_v_self->nspace);
53381 __Pyx_DECREF(__pyx_v_self->nspace)do { if ( --((PyObject*)(__pyx_v_self->nspace))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
nspace)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_v_self->nspace)))); } while (0)
;
53382 __pyx_v_self->nspace = Py_None(&_Py_NoneStruct);
53383
53384 /* function exit code */
53385 __pyx_r = 0;
53386 __Pyx_RefNannyFinishContext();
53387 return __pyx_r;
53388}
53389
53390/* "rados.pxd":37
53391 * # I guess we can do that in a lighter ways, but keep code simple
53392 * # as before for now
53393 * public object safe_completions # <<<<<<<<<<<<<<
53394 * public object complete_completions
53395 * public object lock
53396 */
53397
53398/* Python wrapper */
53399static PyObject *__pyx_pw_5rados_5Ioctx_16safe_completions_1__get__(PyObject *__pyx_v_self); /*proto*/
53400static PyObject *__pyx_pw_5rados_5Ioctx_16safe_completions_1__get__(PyObject *__pyx_v_self) {
53401 PyObject *__pyx_r = 0;
53402 __Pyx_RefNannyDeclarations
53403 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
53404 __pyx_r = __pyx_pf_5rados_5Ioctx_16safe_completions___get__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53405
53406 /* function exit code */
53407 __Pyx_RefNannyFinishContext();
53408 return __pyx_r;
53409}
53410
53411static PyObject *__pyx_pf_5rados_5Ioctx_16safe_completions___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53412 PyObject *__pyx_r = NULL((void*)0);
53413 __Pyx_RefNannyDeclarations
53414 __Pyx_RefNannySetupContext("__get__", 0);
53415 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53416 __Pyx_INCREF(__pyx_v_self->safe_completions)( ((PyObject*)(__pyx_v_self->safe_completions))->ob_refcnt
++)
;
53417 __pyx_r = __pyx_v_self->safe_completions;
53418 goto __pyx_L0;
53419
53420 /* function exit code */
53421 __pyx_L0:;
53422 __Pyx_XGIVEREF(__pyx_r);
53423 __Pyx_RefNannyFinishContext();
53424 return __pyx_r;
53425}
53426
53427/* Python wrapper */
53428static int __pyx_pw_5rados_5Ioctx_16safe_completions_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
53429static int __pyx_pw_5rados_5Ioctx_16safe_completions_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
53430 int __pyx_r;
53431 __Pyx_RefNannyDeclarations
53432 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
53433 __pyx_r = __pyx_pf_5rados_5Ioctx_16safe_completions_2__set__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_value));
53434
53435 /* function exit code */
53436 __Pyx_RefNannyFinishContext();
53437 return __pyx_r;
53438}
53439
53440static int __pyx_pf_5rados_5Ioctx_16safe_completions_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value) {
53441 int __pyx_r;
53442 __Pyx_RefNannyDeclarations
53443 __Pyx_RefNannySetupContext("__set__", 0);
53444 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
53445 __Pyx_GIVEREF(__pyx_v_value);
53446 __Pyx_GOTREF(__pyx_v_self->safe_completions);
53447 __Pyx_DECREF(__pyx_v_self->safe_completions)do { if ( --((PyObject*)(__pyx_v_self->safe_completions))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->safe_completions)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->safe_completions)))); } while
(0)
;
53448 __pyx_v_self->safe_completions = __pyx_v_value;
53449
53450 /* function exit code */
53451 __pyx_r = 0;
53452 __Pyx_RefNannyFinishContext();
53453 return __pyx_r;
53454}
53455
53456/* Python wrapper */
53457static int __pyx_pw_5rados_5Ioctx_16safe_completions_5__del__(PyObject *__pyx_v_self); /*proto*/
53458static int __pyx_pw_5rados_5Ioctx_16safe_completions_5__del__(PyObject *__pyx_v_self) {
53459 int __pyx_r;
53460 __Pyx_RefNannyDeclarations
53461 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
53462 __pyx_r = __pyx_pf_5rados_5Ioctx_16safe_completions_4__del__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53463
53464 /* function exit code */
53465 __Pyx_RefNannyFinishContext();
53466 return __pyx_r;
53467}
53468
53469static int __pyx_pf_5rados_5Ioctx_16safe_completions_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53470 int __pyx_r;
53471 __Pyx_RefNannyDeclarations
53472 __Pyx_RefNannySetupContext("__del__", 0);
53473 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
53474 __Pyx_GIVEREF(Py_None);
53475 __Pyx_GOTREF(__pyx_v_self->safe_completions);
53476 __Pyx_DECREF(__pyx_v_self->safe_completions)do { if ( --((PyObject*)(__pyx_v_self->safe_completions))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self
->safe_completions)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_self->safe_completions)))); } while
(0)
;
53477 __pyx_v_self->safe_completions = Py_None(&_Py_NoneStruct);
53478
53479 /* function exit code */
53480 __pyx_r = 0;
53481 __Pyx_RefNannyFinishContext();
53482 return __pyx_r;
53483}
53484
53485/* "rados.pxd":38
53486 * # as before for now
53487 * public object safe_completions
53488 * public object complete_completions # <<<<<<<<<<<<<<
53489 * public object lock
53490 */
53491
53492/* Python wrapper */
53493static PyObject *__pyx_pw_5rados_5Ioctx_20complete_completions_1__get__(PyObject *__pyx_v_self); /*proto*/
53494static PyObject *__pyx_pw_5rados_5Ioctx_20complete_completions_1__get__(PyObject *__pyx_v_self) {
53495 PyObject *__pyx_r = 0;
53496 __Pyx_RefNannyDeclarations
53497 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
53498 __pyx_r = __pyx_pf_5rados_5Ioctx_20complete_completions___get__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53499
53500 /* function exit code */
53501 __Pyx_RefNannyFinishContext();
53502 return __pyx_r;
53503}
53504
53505static PyObject *__pyx_pf_5rados_5Ioctx_20complete_completions___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53506 PyObject *__pyx_r = NULL((void*)0);
53507 __Pyx_RefNannyDeclarations
53508 __Pyx_RefNannySetupContext("__get__", 0);
53509 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53510 __Pyx_INCREF(__pyx_v_self->complete_completions)( ((PyObject*)(__pyx_v_self->complete_completions))->ob_refcnt
++)
;
53511 __pyx_r = __pyx_v_self->complete_completions;
53512 goto __pyx_L0;
53513
53514 /* function exit code */
53515 __pyx_L0:;
53516 __Pyx_XGIVEREF(__pyx_r);
53517 __Pyx_RefNannyFinishContext();
53518 return __pyx_r;
53519}
53520
53521/* Python wrapper */
53522static int __pyx_pw_5rados_5Ioctx_20complete_completions_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
53523static int __pyx_pw_5rados_5Ioctx_20complete_completions_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
53524 int __pyx_r;
53525 __Pyx_RefNannyDeclarations
53526 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
53527 __pyx_r = __pyx_pf_5rados_5Ioctx_20complete_completions_2__set__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_value));
53528
53529 /* function exit code */
53530 __Pyx_RefNannyFinishContext();
53531 return __pyx_r;
53532}
53533
53534static int __pyx_pf_5rados_5Ioctx_20complete_completions_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value) {
53535 int __pyx_r;
53536 __Pyx_RefNannyDeclarations
53537 __Pyx_RefNannySetupContext("__set__", 0);
53538 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
53539 __Pyx_GIVEREF(__pyx_v_value);
53540 __Pyx_GOTREF(__pyx_v_self->complete_completions);
53541 __Pyx_DECREF(__pyx_v_self->complete_completions)do { if ( --((PyObject*)(__pyx_v_self->complete_completions
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
__pyx_v_self->complete_completions)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_self->complete_completions
)))); } while (0)
;
53542 __pyx_v_self->complete_completions = __pyx_v_value;
53543
53544 /* function exit code */
53545 __pyx_r = 0;
53546 __Pyx_RefNannyFinishContext();
53547 return __pyx_r;
53548}
53549
53550/* Python wrapper */
53551static int __pyx_pw_5rados_5Ioctx_20complete_completions_5__del__(PyObject *__pyx_v_self); /*proto*/
53552static int __pyx_pw_5rados_5Ioctx_20complete_completions_5__del__(PyObject *__pyx_v_self) {
53553 int __pyx_r;
53554 __Pyx_RefNannyDeclarations
53555 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
53556 __pyx_r = __pyx_pf_5rados_5Ioctx_20complete_completions_4__del__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53557
53558 /* function exit code */
53559 __Pyx_RefNannyFinishContext();
53560 return __pyx_r;
53561}
53562
53563static int __pyx_pf_5rados_5Ioctx_20complete_completions_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53564 int __pyx_r;
53565 __Pyx_RefNannyDeclarations
53566 __Pyx_RefNannySetupContext("__del__", 0);
53567 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
53568 __Pyx_GIVEREF(Py_None);
53569 __Pyx_GOTREF(__pyx_v_self->complete_completions);
53570 __Pyx_DECREF(__pyx_v_self->complete_completions)do { if ( --((PyObject*)(__pyx_v_self->complete_completions
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
__pyx_v_self->complete_completions)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_v_self->complete_completions
)))); } while (0)
;
53571 __pyx_v_self->complete_completions = Py_None(&_Py_NoneStruct);
53572
53573 /* function exit code */
53574 __pyx_r = 0;
53575 __Pyx_RefNannyFinishContext();
53576 return __pyx_r;
53577}
53578
53579/* "rados.pxd":39
53580 * public object safe_completions
53581 * public object complete_completions
53582 * public object lock # <<<<<<<<<<<<<<
53583 */
53584
53585/* Python wrapper */
53586static PyObject *__pyx_pw_5rados_5Ioctx_4lock_1__get__(PyObject *__pyx_v_self); /*proto*/
53587static PyObject *__pyx_pw_5rados_5Ioctx_4lock_1__get__(PyObject *__pyx_v_self) {
53588 PyObject *__pyx_r = 0;
53589 __Pyx_RefNannyDeclarations
53590 __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
53591 __pyx_r = __pyx_pf_5rados_5Ioctx_4lock___get__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53592
53593 /* function exit code */
53594 __Pyx_RefNannyFinishContext();
53595 return __pyx_r;
53596}
53597
53598static PyObject *__pyx_pf_5rados_5Ioctx_4lock___get__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53599 PyObject *__pyx_r = NULL((void*)0);
53600 __Pyx_RefNannyDeclarations
53601 __Pyx_RefNannySetupContext("__get__", 0);
53602 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53603 __Pyx_INCREF(__pyx_v_self->lock)( ((PyObject*)(__pyx_v_self->lock))->ob_refcnt++);
53604 __pyx_r = __pyx_v_self->lock;
53605 goto __pyx_L0;
53606
53607 /* function exit code */
53608 __pyx_L0:;
53609 __Pyx_XGIVEREF(__pyx_r);
53610 __Pyx_RefNannyFinishContext();
53611 return __pyx_r;
53612}
53613
53614/* Python wrapper */
53615static int __pyx_pw_5rados_5Ioctx_4lock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
53616static int __pyx_pw_5rados_5Ioctx_4lock_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
53617 int __pyx_r;
53618 __Pyx_RefNannyDeclarations
53619 __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
53620 __pyx_r = __pyx_pf_5rados_5Ioctx_4lock_2__set__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self), ((PyObject *)__pyx_v_value));
53621
53622 /* function exit code */
53623 __Pyx_RefNannyFinishContext();
53624 return __pyx_r;
53625}
53626
53627static int __pyx_pf_5rados_5Ioctx_4lock_2__set__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self, PyObject *__pyx_v_value) {
53628 int __pyx_r;
53629 __Pyx_RefNannyDeclarations
53630 __Pyx_RefNannySetupContext("__set__", 0);
53631 __Pyx_INCREF(__pyx_v_value)( ((PyObject*)(__pyx_v_value))->ob_refcnt++);
53632 __Pyx_GIVEREF(__pyx_v_value);
53633 __Pyx_GOTREF(__pyx_v_self->lock);
53634 __Pyx_DECREF(__pyx_v_self->lock)do { if ( --((PyObject*)(__pyx_v_self->lock))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
lock)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->lock)))); } while (0)
;
53635 __pyx_v_self->lock = __pyx_v_value;
53636
53637 /* function exit code */
53638 __pyx_r = 0;
53639 __Pyx_RefNannyFinishContext();
53640 return __pyx_r;
53641}
53642
53643/* Python wrapper */
53644static int __pyx_pw_5rados_5Ioctx_4lock_5__del__(PyObject *__pyx_v_self); /*proto*/
53645static int __pyx_pw_5rados_5Ioctx_4lock_5__del__(PyObject *__pyx_v_self) {
53646 int __pyx_r;
53647 __Pyx_RefNannyDeclarations
53648 __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
53649 __pyx_r = __pyx_pf_5rados_5Ioctx_4lock_4__del__(((struct __pyx_obj_5rados_Ioctx *)__pyx_v_self));
53650
53651 /* function exit code */
53652 __Pyx_RefNannyFinishContext();
53653 return __pyx_r;
53654}
53655
53656static int __pyx_pf_5rados_5Ioctx_4lock_4__del__(struct __pyx_obj_5rados_Ioctx *__pyx_v_self) {
53657 int __pyx_r;
53658 __Pyx_RefNannyDeclarations
53659 __Pyx_RefNannySetupContext("__del__", 0);
53660 __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
53661 __Pyx_GIVEREF(Py_None);
53662 __Pyx_GOTREF(__pyx_v_self->lock);
53663 __Pyx_DECREF(__pyx_v_self->lock)do { if ( --((PyObject*)(__pyx_v_self->lock))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(__pyx_v_self->
lock)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(__pyx_v_self->lock)))); } while (0)
;
53664 __pyx_v_self->lock = Py_None(&_Py_NoneStruct);
53665
53666 /* function exit code */
53667 __pyx_r = 0;
53668 __Pyx_RefNannyFinishContext();
53669 return __pyx_r;
53670}
53671
53672/* "rados.pyx":4015
53673 *
53674 *
53675 * def set_object_locator(func): # <<<<<<<<<<<<<<
53676 * def retfunc(self, *args, **kwargs):
53677 * if self.locator_key is not None:
53678 */
53679
53680/* Python wrapper */
53681static PyObject *__pyx_pw_5rados_13set_object_locator(PyObject *__pyx_self, PyObject *__pyx_v_func); /*proto*/
53682static char __pyx_doc_5rados_12set_object_locator[] = "set_object_locator(func)";
53683static PyMethodDef __pyx_mdef_5rados_13set_object_locator = {"set_object_locator", (PyCFunction)__pyx_pw_5rados_13set_object_locator, METH_O0x0008, __pyx_doc_5rados_12set_object_locator};
53684static PyObject *__pyx_pw_5rados_13set_object_locator(PyObject *__pyx_self, PyObject *__pyx_v_func) {
53685 PyObject *__pyx_r = 0;
53686 __Pyx_RefNannyDeclarations
53687 __Pyx_RefNannySetupContext("set_object_locator (wrapper)", 0);
53688 __pyx_r = __pyx_pf_5rados_12set_object_locator(__pyx_self, ((PyObject *)__pyx_v_func));
53689
53690 /* function exit code */
53691 __Pyx_RefNannyFinishContext();
53692 return __pyx_r;
53693}
53694
53695/* "rados.pyx":4016
53696 *
53697 * def set_object_locator(func):
53698 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
53699 * if self.locator_key is not None:
53700 * old_locator = self.ioctx.get_locator_key()
53701 */
53702
53703/* Python wrapper */
53704static PyObject *__pyx_pw_5rados_18set_object_locator_1retfunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
53705static PyMethodDef __pyx_mdef_5rados_18set_object_locator_1retfunc = {"retfunc", (PyCFunction)__pyx_pw_5rados_18set_object_locator_1retfunc, METH_VARARGS0x0001|METH_KEYWORDS0x0002, 0};
53706static PyObject *__pyx_pw_5rados_18set_object_locator_1retfunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
53707 PyObject *__pyx_v_self = 0;
53708 PyObject *__pyx_v_args = 0;
53709 PyObject *__pyx_v_kwargs = 0;
53710 int __pyx_lineno = 0;
53711 const char *__pyx_filename = NULL((void*)0);
53712 int __pyx_clineno = 0;
53713 PyObject *__pyx_r = 0;
53714 __Pyx_RefNannyDeclarations
53715 __Pyx_RefNannySetupContext("retfunc (wrapper)", 0);
53716 __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)__builtin_expect(!!(!__pyx_v_kwargs), 0)) return NULL((void*)0);
53717 __Pyx_GOTREF(__pyx_v_kwargs);
53718 if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) > 1) {
53719 __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size));
53720 if (unlikely(!__pyx_v_args)__builtin_expect(!!(!__pyx_v_args), 0)) {
53721 __Pyx_DECREF(__pyx_v_kwargs)do { if ( --((PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0)
; else ( (*(((PyObject*)((PyObject *)(__pyx_v_kwargs)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs
)))); } while (0)
; __pyx_v_kwargs = 0;
53722 __Pyx_RefNannyFinishContext();
53723 return NULL((void*)0);
53724 }
53725 __Pyx_GOTREF(__pyx_v_args);
53726 } else {
53727 __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple)( ((PyObject*)(__pyx_empty_tuple))->ob_refcnt++);
53728 }
53729 {
53730 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
53731 PyObject* values[1] = {0};
53732 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
53733 Py_ssize_t kw_args;
53734 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
53735 switch (pos_args) {
53736 default:
53737 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
53738 case 0: break;
53739 }
53740 kw_args = PyDict_Size(__pyx_kwds);
53741 switch (pos_args) {
53742 case 0:
53743 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
53744 else goto __pyx_L5_argtuple_error;
53745 }
53746 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
53747 const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
53748 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "retfunc") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, __pyx_v_kwargs, values, used_pos_args, "retfunc") < 0), 0
)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4016; __pyx_clineno = __LINE__53748; goto __pyx_L3_error;}
53749 }
53750 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) < 1) {
53751 goto __pyx_L5_argtuple_error;
53752 } else {
53753 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
53754 }
53755 __pyx_v_self = values[0];
53756 }
53757 goto __pyx_L4_argument_unpacking_done;
53758 __pyx_L5_argtuple_error:;
53759 __Pyx_RaiseArgtupleInvalid("retfunc", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4016; __pyx_clineno = __LINE__53759; goto __pyx_L3_error;}
53760 __pyx_L3_error:;
53761 __Pyx_DECREF(__pyx_v_args)do { if ( --((PyObject*)(__pyx_v_args))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_args)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_args))));
} while (0)
; __pyx_v_args = 0;
53762 __Pyx_DECREF(__pyx_v_kwargs)do { if ( --((PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0)
; else ( (*(((PyObject*)((PyObject *)(__pyx_v_kwargs)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs
)))); } while (0)
; __pyx_v_kwargs = 0;
53763 __Pyx_AddTraceback("rados.set_object_locator.retfunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
53764 __Pyx_RefNannyFinishContext();
53765 return NULL((void*)0);
53766 __pyx_L4_argument_unpacking_done:;
53767 __pyx_r = __pyx_pf_5rados_18set_object_locator_retfunc(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs);
53768
53769 /* function exit code */
53770 __Pyx_XDECREF(__pyx_v_args)do { if ((__pyx_v_args) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_args))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_args)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_args)))); } while (0); } while
(0)
;
53771 __Pyx_XDECREF(__pyx_v_kwargs)do { if ((__pyx_v_kwargs) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_kwargs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs)))); } while
(0); } while (0)
;
53772 __Pyx_RefNannyFinishContext();
53773 return __pyx_r;
53774}
53775
53776static PyObject *__pyx_pf_5rados_18set_object_locator_retfunc(PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
53777 struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *__pyx_cur_scope;
53778 struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *__pyx_outer_scope;
53779 PyObject *__pyx_v_old_locator = NULL((void*)0);
53780 PyObject *__pyx_v_retval = NULL((void*)0);
53781 PyObject *__pyx_r = NULL((void*)0);
53782 __Pyx_RefNannyDeclarations
53783 PyObject *__pyx_t_1 = NULL((void*)0);
53784 int __pyx_t_2;
53785 int __pyx_t_3;
53786 PyObject *__pyx_t_4 = NULL((void*)0);
53787 PyObject *__pyx_t_5 = NULL((void*)0);
53788 PyObject *__pyx_t_6 = NULL((void*)0);
53789 PyObject *__pyx_t_7 = NULL((void*)0);
53790 int __pyx_lineno = 0;
53791 const char *__pyx_filename = NULL((void*)0);
53792 int __pyx_clineno = 0;
53793 __Pyx_RefNannySetupContext("retfunc", 0);
53794 __pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
53795 __pyx_cur_scope = __pyx_outer_scope;
53796
53797 /* "rados.pyx":4017
53798 * def set_object_locator(func):
53799 * def retfunc(self, *args, **kwargs):
53800 * if self.locator_key is not None: # <<<<<<<<<<<<<<
53801 * old_locator = self.ioctx.get_locator_key()
53802 * self.ioctx.set_locator_key(self.locator_key)
53803 */
53804 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_locator_key); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4017; __pyx_clineno = __LINE__53804; goto __pyx_L1_error;}
53805 __Pyx_GOTREF(__pyx_t_1);
53806 __pyx_t_2 = (__pyx_t_1 != Py_None(&_Py_NoneStruct));
53807 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
53808 __pyx_t_3 = (__pyx_t_2 != 0);
53809 if (__pyx_t_3) {
53810
53811 /* "rados.pyx":4018
53812 * def retfunc(self, *args, **kwargs):
53813 * if self.locator_key is not None:
53814 * old_locator = self.ioctx.get_locator_key() # <<<<<<<<<<<<<<
53815 * self.ioctx.set_locator_key(self.locator_key)
53816 * retval = func(self, *args, **kwargs)
53817 */
53818 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4018; __pyx_clineno = __LINE__53818; goto __pyx_L1_error;}
53819 __Pyx_GOTREF(__pyx_t_4);
53820 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_get_locator_key); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4018; __pyx_clineno = __LINE__53820; goto __pyx_L1_error;}
53821 __Pyx_GOTREF(__pyx_t_5);
53822 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
53823 __pyx_t_4 = NULL((void*)0);
53824 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 1)
) {
53825 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
53826 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
53827 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
53828 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
53829 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
53830 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
53831 }
53832 }
53833 if (__pyx_t_4) {
53834 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4018; __pyx_clineno = __LINE__53834; goto __pyx_L1_error;}
53835 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
53836 } else {
53837 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4018; __pyx_clineno = __LINE__53837; goto __pyx_L1_error;}
53838 }
53839 __Pyx_GOTREF(__pyx_t_1);
53840 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
53841 __pyx_v_old_locator = __pyx_t_1;
53842 __pyx_t_1 = 0;
53843
53844 /* "rados.pyx":4019
53845 * if self.locator_key is not None:
53846 * old_locator = self.ioctx.get_locator_key()
53847 * self.ioctx.set_locator_key(self.locator_key) # <<<<<<<<<<<<<<
53848 * retval = func(self, *args, **kwargs)
53849 * self.ioctx.set_locator_key(old_locator)
53850 */
53851 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4019; __pyx_clineno = __LINE__53851; goto __pyx_L1_error;}
53852 __Pyx_GOTREF(__pyx_t_5);
53853 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_set_locator_key); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4019; __pyx_clineno = __LINE__53853; goto __pyx_L1_error;}
53854 __Pyx_GOTREF(__pyx_t_4);
53855 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
53856 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_locator_key); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4019; __pyx_clineno = __LINE__53856; goto __pyx_L1_error;}
53857 __Pyx_GOTREF(__pyx_t_5);
53858 __pyx_t_6 = NULL((void*)0);
53859 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_4))__builtin_expect(!!(((__pyx_t_4)->ob_type == &PyMethod_Type
)), 1)
) {
53860 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_self);
53861 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
53862 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4)(((PyMethodObject *)__pyx_t_4) -> im_func);
53863 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
53864 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
53865 __Pyx_DECREF_SET(__pyx_t_4, function)do { PyObject *tmp = (PyObject *) __pyx_t_4; __pyx_t_4 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
53866 }
53867 }
53868 if (!__pyx_t_6) {
53869 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4019; __pyx_clineno = __LINE__53869; goto __pyx_L1_error;}
53870 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
53871 __Pyx_GOTREF(__pyx_t_1);
53872 } else {
53873 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4019; __pyx_clineno = __LINE__53873; goto __pyx_L1_error;}
53874 __Pyx_GOTREF(__pyx_t_7);
53875 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
53876 __Pyx_GIVEREF(__pyx_t_5);
53877 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
53878 __pyx_t_5 = 0;
53879 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4019; __pyx_clineno = __LINE__53879; goto __pyx_L1_error;}
53880 __Pyx_GOTREF(__pyx_t_1);
53881 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
53882 }
53883 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
53884 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
53885
53886 /* "rados.pyx":4020
53887 * old_locator = self.ioctx.get_locator_key()
53888 * self.ioctx.set_locator_key(self.locator_key)
53889 * retval = func(self, *args, **kwargs) # <<<<<<<<<<<<<<
53890 * self.ioctx.set_locator_key(old_locator)
53891 * return retval
53892 */
53893 if (unlikely(!__pyx_cur_scope->__pyx_v_func)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_func), 0)) { __Pyx_RaiseClosureNameError("func"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4020; __pyx_clineno = __LINE__53893; goto __pyx_L1_error;} }
53894 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4020; __pyx_clineno = __LINE__53894; goto __pyx_L1_error;}
53895 __Pyx_GOTREF(__pyx_t_1);
53896 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
53897 __Pyx_GIVEREF(__pyx_v_self);
53898 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_v_self
)
;
53899 __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4020; __pyx_clineno = __LINE__53899; goto __pyx_L1_error;}
53900 __Pyx_GOTREF(__pyx_t_4);
53901 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
53902 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_func, __pyx_t_4, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4020; __pyx_clineno = __LINE__53902; goto __pyx_L1_error;}
53903 __Pyx_GOTREF(__pyx_t_1);
53904 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
53905 __pyx_v_retval = __pyx_t_1;
53906 __pyx_t_1 = 0;
53907
53908 /* "rados.pyx":4021
53909 * self.ioctx.set_locator_key(self.locator_key)
53910 * retval = func(self, *args, **kwargs)
53911 * self.ioctx.set_locator_key(old_locator) # <<<<<<<<<<<<<<
53912 * return retval
53913 * else:
53914 */
53915 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4021; __pyx_clineno = __LINE__53915; goto __pyx_L1_error;}
53916 __Pyx_GOTREF(__pyx_t_4);
53917 __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_set_locator_key); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4021; __pyx_clineno = __LINE__53917; goto __pyx_L1_error;}
53918 __Pyx_GOTREF(__pyx_t_7);
53919 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
53920 __pyx_t_4 = NULL((void*)0);
53921 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_7))__builtin_expect(!!(((__pyx_t_7)->ob_type == &PyMethod_Type
)), 1)
) {
53922 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_self);
53923 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
53924 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_func);
53925 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
53926 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
53927 __Pyx_DECREF_SET(__pyx_t_7, function)do { PyObject *tmp = (PyObject *) __pyx_t_7; __pyx_t_7 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
53928 }
53929 }
53930 if (!__pyx_t_4) {
53931 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_old_locator); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4021; __pyx_clineno = __LINE__53931; goto __pyx_L1_error;}
53932 __Pyx_GOTREF(__pyx_t_1);
53933 } else {
53934 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4021; __pyx_clineno = __LINE__53934; goto __pyx_L1_error;}
53935 __Pyx_GOTREF(__pyx_t_5);
53936 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
53937 __Pyx_INCREF(__pyx_v_old_locator)( ((PyObject*)(__pyx_v_old_locator))->ob_refcnt++);
53938 __Pyx_GIVEREF(__pyx_v_old_locator);
53939 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_old_locator)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_v_old_locator
)
;
53940 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4021; __pyx_clineno = __LINE__53940; goto __pyx_L1_error;}
53941 __Pyx_GOTREF(__pyx_t_1);
53942 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
53943 }
53944 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
53945 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
53946
53947 /* "rados.pyx":4022
53948 * retval = func(self, *args, **kwargs)
53949 * self.ioctx.set_locator_key(old_locator)
53950 * return retval # <<<<<<<<<<<<<<
53951 * else:
53952 * return func(self, *args, **kwargs)
53953 */
53954 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53955 __Pyx_INCREF(__pyx_v_retval)( ((PyObject*)(__pyx_v_retval))->ob_refcnt++);
53956 __pyx_r = __pyx_v_retval;
53957 goto __pyx_L0;
53958
53959 /* "rados.pyx":4017
53960 * def set_object_locator(func):
53961 * def retfunc(self, *args, **kwargs):
53962 * if self.locator_key is not None: # <<<<<<<<<<<<<<
53963 * old_locator = self.ioctx.get_locator_key()
53964 * self.ioctx.set_locator_key(self.locator_key)
53965 */
53966 }
53967
53968 /* "rados.pyx":4024
53969 * return retval
53970 * else:
53971 * return func(self, *args, **kwargs) # <<<<<<<<<<<<<<
53972 * return retfunc
53973 *
53974 */
53975 /*else*/ {
53976 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
53977 if (unlikely(!__pyx_cur_scope->__pyx_v_func)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_func), 0)) { __Pyx_RaiseClosureNameError("func"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4024; __pyx_clineno = __LINE__53977; goto __pyx_L1_error;} }
53978 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4024; __pyx_clineno = __LINE__53978; goto __pyx_L1_error;}
53979 __Pyx_GOTREF(__pyx_t_1);
53980 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
53981 __Pyx_GIVEREF(__pyx_v_self);
53982 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_v_self
)
;
53983 __pyx_t_7 = PyNumber_Add(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4024; __pyx_clineno = __LINE__53983; goto __pyx_L1_error;}
53984 __Pyx_GOTREF(__pyx_t_7);
53985 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
53986 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_func, __pyx_t_7, __pyx_v_kwargs); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4024; __pyx_clineno = __LINE__53986; goto __pyx_L1_error;}
53987 __Pyx_GOTREF(__pyx_t_1);
53988 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
53989 __pyx_r = __pyx_t_1;
53990 __pyx_t_1 = 0;
53991 goto __pyx_L0;
53992 }
53993
53994 /* "rados.pyx":4016
53995 *
53996 * def set_object_locator(func):
53997 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
53998 * if self.locator_key is not None:
53999 * old_locator = self.ioctx.get_locator_key()
54000 */
54001
54002 /* function exit code */
54003 __pyx_L1_error:;
54004 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
54005 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
54006 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
54007 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
54008 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
54009 __Pyx_AddTraceback("rados.set_object_locator.retfunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
54010 __pyx_r = NULL((void*)0);
54011 __pyx_L0:;
54012 __Pyx_XDECREF(__pyx_v_old_locator)do { if ((__pyx_v_old_locator) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_old_locator))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_old_locator)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_old_locator
)))); } while (0); } while (0)
;
54013 __Pyx_XDECREF(__pyx_v_retval)do { if ((__pyx_v_retval) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_retval))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_retval)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_retval)))); } while
(0); } while (0)
;
54014 __Pyx_XGIVEREF(__pyx_r);
54015 __Pyx_RefNannyFinishContext();
54016 return __pyx_r;
54017}
54018
54019/* "rados.pyx":4015
54020 *
54021 *
54022 * def set_object_locator(func): # <<<<<<<<<<<<<<
54023 * def retfunc(self, *args, **kwargs):
54024 * if self.locator_key is not None:
54025 */
54026
54027static PyObject *__pyx_pf_5rados_12set_object_locator(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_func) {
54028 struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *__pyx_cur_scope;
54029 PyObject *__pyx_v_retfunc = 0;
54030 PyObject *__pyx_r = NULL((void*)0);
54031 __Pyx_RefNannyDeclarations
54032 PyObject *__pyx_t_1 = NULL((void*)0);
54033 int __pyx_lineno = 0;
54034 const char *__pyx_filename = NULL((void*)0);
54035 int __pyx_clineno = 0;
54036 __Pyx_RefNannySetupContext("set_object_locator", 0);
54037 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *)__pyx_tp_new_5rados___pyx_scope_struct_12_set_object_locator(__pyx_ptype_5rados___pyx_scope_struct_12_set_object_locator, __pyx_empty_tuple, NULL((void*)0));
54038 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
54039 __Pyx_RefNannyFinishContext();
54040 return NULL((void*)0);
54041 }
54042 __Pyx_GOTREF(__pyx_cur_scope);
54043 __pyx_cur_scope->__pyx_v_func = __pyx_v_func;
54044 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_func)( ((PyObject*)(__pyx_cur_scope->__pyx_v_func))->ob_refcnt
++)
;
54045 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_func);
54046
54047 /* "rados.pyx":4016
54048 *
54049 * def set_object_locator(func):
54050 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
54051 * if self.locator_key is not None:
54052 * old_locator = self.ioctx.get_locator_key()
54053 */
54054 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_18set_object_locator_1retfunc, 0, __pyx_n_s_set_object_locator_locals_retfun, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__70))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_18set_object_locator_1retfunc
, 0, __pyx_n_s_set_object_locator_locals_retfun, ((PyObject*)
__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__70
))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4016; __pyx_clineno = __LINE__54054; goto __pyx_L1_error;}
54055 __Pyx_GOTREF(__pyx_t_1);
54056 __pyx_v_retfunc = __pyx_t_1;
54057 __pyx_t_1 = 0;
54058
54059 /* "rados.pyx":4025
54060 * else:
54061 * return func(self, *args, **kwargs)
54062 * return retfunc # <<<<<<<<<<<<<<
54063 *
54064 *
54065 */
54066 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
54067 __Pyx_INCREF(__pyx_v_retfunc)( ((PyObject*)(__pyx_v_retfunc))->ob_refcnt++);
54068 __pyx_r = __pyx_v_retfunc;
54069 goto __pyx_L0;
54070
54071 /* "rados.pyx":4015
54072 *
54073 *
54074 * def set_object_locator(func): # <<<<<<<<<<<<<<
54075 * def retfunc(self, *args, **kwargs):
54076 * if self.locator_key is not None:
54077 */
54078
54079 /* function exit code */
54080 __pyx_L1_error:;
54081 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
54082 __Pyx_AddTraceback("rados.set_object_locator", __pyx_clineno, __pyx_lineno, __pyx_filename);
54083 __pyx_r = NULL((void*)0);
54084 __pyx_L0:;
54085 __Pyx_XDECREF(__pyx_v_retfunc)do { if ((__pyx_v_retfunc) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_retfunc))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_retfunc)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_retfunc)))); } while
(0); } while (0)
;
54086 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
54087 __Pyx_XGIVEREF(__pyx_r);
54088 __Pyx_RefNannyFinishContext();
54089 return __pyx_r;
54090}
54091
54092/* "rados.pyx":4028
54093 *
54094 *
54095 * def set_object_namespace(func): # <<<<<<<<<<<<<<
54096 * def retfunc(self, *args, **kwargs):
54097 * if self.nspace is None:
54098 */
54099
54100/* Python wrapper */
54101static PyObject *__pyx_pw_5rados_15set_object_namespace(PyObject *__pyx_self, PyObject *__pyx_v_func); /*proto*/
54102static char __pyx_doc_5rados_14set_object_namespace[] = "set_object_namespace(func)";
54103static PyMethodDef __pyx_mdef_5rados_15set_object_namespace = {"set_object_namespace", (PyCFunction)__pyx_pw_5rados_15set_object_namespace, METH_O0x0008, __pyx_doc_5rados_14set_object_namespace};
54104static PyObject *__pyx_pw_5rados_15set_object_namespace(PyObject *__pyx_self, PyObject *__pyx_v_func) {
54105 PyObject *__pyx_r = 0;
54106 __Pyx_RefNannyDeclarations
54107 __Pyx_RefNannySetupContext("set_object_namespace (wrapper)", 0);
54108 __pyx_r = __pyx_pf_5rados_14set_object_namespace(__pyx_self, ((PyObject *)__pyx_v_func));
54109
54110 /* function exit code */
54111 __Pyx_RefNannyFinishContext();
54112 return __pyx_r;
54113}
54114
54115/* "rados.pyx":4029
54116 *
54117 * def set_object_namespace(func):
54118 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
54119 * if self.nspace is None:
54120 * raise LogicError("Namespace not set properly in context")
54121 */
54122
54123/* Python wrapper */
54124static PyObject *__pyx_pw_5rados_20set_object_namespace_1retfunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54125static PyMethodDef __pyx_mdef_5rados_20set_object_namespace_1retfunc = {"retfunc", (PyCFunction)__pyx_pw_5rados_20set_object_namespace_1retfunc, METH_VARARGS0x0001|METH_KEYWORDS0x0002, 0};
54126static PyObject *__pyx_pw_5rados_20set_object_namespace_1retfunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54127 PyObject *__pyx_v_self = 0;
54128 PyObject *__pyx_v_args = 0;
54129 PyObject *__pyx_v_kwargs = 0;
54130 int __pyx_lineno = 0;
54131 const char *__pyx_filename = NULL((void*)0);
54132 int __pyx_clineno = 0;
54133 PyObject *__pyx_r = 0;
54134 __Pyx_RefNannyDeclarations
54135 __Pyx_RefNannySetupContext("retfunc (wrapper)", 0);
54136 __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)__builtin_expect(!!(!__pyx_v_kwargs), 0)) return NULL((void*)0);
54137 __Pyx_GOTREF(__pyx_v_kwargs);
54138 if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) > 1) {
54139 __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size));
54140 if (unlikely(!__pyx_v_args)__builtin_expect(!!(!__pyx_v_args), 0)) {
54141 __Pyx_DECREF(__pyx_v_kwargs)do { if ( --((PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0)
; else ( (*(((PyObject*)((PyObject *)(__pyx_v_kwargs)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs
)))); } while (0)
; __pyx_v_kwargs = 0;
54142 __Pyx_RefNannyFinishContext();
54143 return NULL((void*)0);
54144 }
54145 __Pyx_GOTREF(__pyx_v_args);
54146 } else {
54147 __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple)( ((PyObject*)(__pyx_empty_tuple))->ob_refcnt++);
54148 }
54149 {
54150 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0};
54151 PyObject* values[1] = {0};
54152 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
54153 Py_ssize_t kw_args;
54154 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
54155 switch (pos_args) {
54156 default:
54157 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
54158 case 0: break;
54159 }
54160 kw_args = PyDict_Size(__pyx_kwds);
54161 switch (pos_args) {
54162 case 0:
54163 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
54164 else goto __pyx_L5_argtuple_error;
54165 }
54166 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
54167 const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
54168 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "retfunc") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, __pyx_v_kwargs, values, used_pos_args, "retfunc") < 0), 0
)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4029; __pyx_clineno = __LINE__54168; goto __pyx_L3_error;}
54169 }
54170 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) < 1) {
54171 goto __pyx_L5_argtuple_error;
54172 } else {
54173 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
54174 }
54175 __pyx_v_self = values[0];
54176 }
54177 goto __pyx_L4_argument_unpacking_done;
54178 __pyx_L5_argtuple_error:;
54179 __Pyx_RaiseArgtupleInvalid("retfunc", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4029; __pyx_clineno = __LINE__54179; goto __pyx_L3_error;}
54180 __pyx_L3_error:;
54181 __Pyx_DECREF(__pyx_v_args)do { if ( --((PyObject*)(__pyx_v_args))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(__pyx_v_args)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_args))));
} while (0)
; __pyx_v_args = 0;
54182 __Pyx_DECREF(__pyx_v_kwargs)do { if ( --((PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0)
; else ( (*(((PyObject*)((PyObject *)(__pyx_v_kwargs)))->
ob_type)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs
)))); } while (0)
; __pyx_v_kwargs = 0;
54183 __Pyx_AddTraceback("rados.set_object_namespace.retfunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
54184 __Pyx_RefNannyFinishContext();
54185 return NULL((void*)0);
54186 __pyx_L4_argument_unpacking_done:;
54187 __pyx_r = __pyx_pf_5rados_20set_object_namespace_retfunc(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs);
54188
54189 /* function exit code */
54190 __Pyx_XDECREF(__pyx_v_args)do { if ((__pyx_v_args) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_args))->ob_refcnt != 0) ; else ( (*(((PyObject*
)((PyObject *)(__pyx_v_args)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(__pyx_v_args)))); } while (0); } while
(0)
;
54191 __Pyx_XDECREF(__pyx_v_kwargs)do { if ((__pyx_v_kwargs) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_kwargs))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_kwargs)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_kwargs)))); } while
(0); } while (0)
;
54192 __Pyx_RefNannyFinishContext();
54193 return __pyx_r;
54194}
54195
54196static PyObject *__pyx_pf_5rados_20set_object_namespace_retfunc(PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) {
54197 struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *__pyx_cur_scope;
54198 struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *__pyx_outer_scope;
54199 PyObject *__pyx_v_old_nspace = NULL((void*)0);
54200 PyObject *__pyx_v_retval = NULL((void*)0);
54201 PyObject *__pyx_r = NULL((void*)0);
54202 __Pyx_RefNannyDeclarations
54203 PyObject *__pyx_t_1 = NULL((void*)0);
54204 int __pyx_t_2;
54205 int __pyx_t_3;
54206 PyObject *__pyx_t_4 = NULL((void*)0);
54207 PyObject *__pyx_t_5 = NULL((void*)0);
54208 PyObject *__pyx_t_6 = NULL((void*)0);
54209 PyObject *__pyx_t_7 = NULL((void*)0);
54210 int __pyx_lineno = 0;
54211 const char *__pyx_filename = NULL((void*)0);
54212 int __pyx_clineno = 0;
54213 __Pyx_RefNannySetupContext("retfunc", 0);
54214 __pyx_outer_scope = (struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *) __Pyx_CyFunction_GetClosure(__pyx_self)(((__pyx_CyFunctionObject *) (__pyx_self))->func_closure);
54215 __pyx_cur_scope = __pyx_outer_scope;
54216
54217 /* "rados.pyx":4030
54218 * def set_object_namespace(func):
54219 * def retfunc(self, *args, **kwargs):
54220 * if self.nspace is None: # <<<<<<<<<<<<<<
54221 * raise LogicError("Namespace not set properly in context")
54222 * old_nspace = self.ioctx.get_namespace()
54223 */
54224 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nspace); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4030; __pyx_clineno = __LINE__54224; goto __pyx_L1_error;}
54225 __Pyx_GOTREF(__pyx_t_1);
54226 __pyx_t_2 = (__pyx_t_1 == Py_None(&_Py_NoneStruct));
54227 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54228 __pyx_t_3 = (__pyx_t_2 != 0);
54229 if (__pyx_t_3) {
54230
54231 /* "rados.pyx":4031
54232 * def retfunc(self, *args, **kwargs):
54233 * if self.nspace is None:
54234 * raise LogicError("Namespace not set properly in context") # <<<<<<<<<<<<<<
54235 * old_nspace = self.ioctx.get_namespace()
54236 * self.ioctx.set_namespace(self.nspace)
54237 */
54238 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_LogicError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4031; __pyx_clineno = __LINE__54238; goto __pyx_L1_error;}
54239 __Pyx_GOTREF(__pyx_t_1);
54240 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__71, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4031; __pyx_clineno = __LINE__54240; goto __pyx_L1_error;}
54241 __Pyx_GOTREF(__pyx_t_4);
54242 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54243 __Pyx_Raise(__pyx_t_4, 0, 0, 0);
54244 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
54245 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4031; __pyx_clineno = __LINE__54245; goto __pyx_L1_error;}
54246
54247 /* "rados.pyx":4030
54248 * def set_object_namespace(func):
54249 * def retfunc(self, *args, **kwargs):
54250 * if self.nspace is None: # <<<<<<<<<<<<<<
54251 * raise LogicError("Namespace not set properly in context")
54252 * old_nspace = self.ioctx.get_namespace()
54253 */
54254 }
54255
54256 /* "rados.pyx":4032
54257 * if self.nspace is None:
54258 * raise LogicError("Namespace not set properly in context")
54259 * old_nspace = self.ioctx.get_namespace() # <<<<<<<<<<<<<<
54260 * self.ioctx.set_namespace(self.nspace)
54261 * retval = func(self, *args, **kwargs)
54262 */
54263 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4032; __pyx_clineno = __LINE__54263; goto __pyx_L1_error;}
54264 __Pyx_GOTREF(__pyx_t_1);
54265 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_get_namespace); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4032; __pyx_clineno = __LINE__54265; goto __pyx_L1_error;}
54266 __Pyx_GOTREF(__pyx_t_5);
54267 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54268 __pyx_t_1 = NULL((void*)0);
54269 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 1)
) {
54270 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
54271 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
54272 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
54273 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
54274 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
54275 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
54276 }
54277 }
54278 if (__pyx_t_1) {
54279 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4032; __pyx_clineno = __LINE__54279; goto __pyx_L1_error;}
54280 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54281 } else {
54282 __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4032; __pyx_clineno = __LINE__54282; goto __pyx_L1_error;}
54283 }
54284 __Pyx_GOTREF(__pyx_t_4);
54285 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
54286 __pyx_v_old_nspace = __pyx_t_4;
54287 __pyx_t_4 = 0;
54288
54289 /* "rados.pyx":4033
54290 * raise LogicError("Namespace not set properly in context")
54291 * old_nspace = self.ioctx.get_namespace()
54292 * self.ioctx.set_namespace(self.nspace) # <<<<<<<<<<<<<<
54293 * retval = func(self, *args, **kwargs)
54294 * self.ioctx.set_namespace(old_nspace)
54295 */
54296 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4033; __pyx_clineno = __LINE__54296; goto __pyx_L1_error;}
54297 __Pyx_GOTREF(__pyx_t_5);
54298 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_set_namespace); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4033; __pyx_clineno = __LINE__54298; goto __pyx_L1_error;}
54299 __Pyx_GOTREF(__pyx_t_1);
54300 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
54301 __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nspace); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4033; __pyx_clineno = __LINE__54301; goto __pyx_L1_error;}
54302 __Pyx_GOTREF(__pyx_t_5);
54303 __pyx_t_6 = NULL((void*)0);
54304 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 1)
) {
54305 __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
54306 if (likely(__pyx_t_6)__builtin_expect(!!(__pyx_t_6), 1)) {
54307 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
54308 __Pyx_INCREF(__pyx_t_6)( ((PyObject*)(__pyx_t_6))->ob_refcnt++);
54309 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
54310 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
54311 }
54312 }
54313 if (!__pyx_t_6) {
54314 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4033; __pyx_clineno = __LINE__54314; goto __pyx_L1_error;}
54315 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
54316 __Pyx_GOTREF(__pyx_t_4);
54317 } else {
54318 __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4033; __pyx_clineno = __LINE__54318; goto __pyx_L1_error;}
54319 __Pyx_GOTREF(__pyx_t_7);
54320 __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_6); __pyx_t_6 = NULL((void*)0);
54321 __Pyx_GIVEREF(__pyx_t_5);
54322 PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+1] = __pyx_t_5);
54323 __pyx_t_5 = 0;
54324 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4033; __pyx_clineno = __LINE__54324; goto __pyx_L1_error;}
54325 __Pyx_GOTREF(__pyx_t_4);
54326 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
54327 }
54328 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54329 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
54330
54331 /* "rados.pyx":4034
54332 * old_nspace = self.ioctx.get_namespace()
54333 * self.ioctx.set_namespace(self.nspace)
54334 * retval = func(self, *args, **kwargs) # <<<<<<<<<<<<<<
54335 * self.ioctx.set_namespace(old_nspace)
54336 * return retval
54337 */
54338 if (unlikely(!__pyx_cur_scope->__pyx_v_func)__builtin_expect(!!(!__pyx_cur_scope->__pyx_v_func), 0)) { __Pyx_RaiseClosureNameError("func"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4034; __pyx_clineno = __LINE__54338; goto __pyx_L1_error;} }
54339 __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4034; __pyx_clineno = __LINE__54339; goto __pyx_L1_error;}
54340 __Pyx_GOTREF(__pyx_t_4);
54341 __Pyx_INCREF(__pyx_v_self)( ((PyObject*)(__pyx_v_self))->ob_refcnt++);
54342 __Pyx_GIVEREF(__pyx_v_self);
54343 PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self)(((PyTupleObject *)(__pyx_t_4))->ob_item[0] = __pyx_v_self
)
;
54344 __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_v_args); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4034; __pyx_clineno = __LINE__54344; goto __pyx_L1_error;}
54345 __Pyx_GOTREF(__pyx_t_1);
54346 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
54347 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_func, __pyx_t_1, __pyx_v_kwargs); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4034; __pyx_clineno = __LINE__54347; goto __pyx_L1_error;}
54348 __Pyx_GOTREF(__pyx_t_4);
54349 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54350 __pyx_v_retval = __pyx_t_4;
54351 __pyx_t_4 = 0;
54352
54353 /* "rados.pyx":4035
54354 * self.ioctx.set_namespace(self.nspace)
54355 * retval = func(self, *args, **kwargs)
54356 * self.ioctx.set_namespace(old_nspace) # <<<<<<<<<<<<<<
54357 * return retval
54358 * return retfunc
54359 */
54360 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4035; __pyx_clineno = __LINE__54360; goto __pyx_L1_error;}
54361 __Pyx_GOTREF(__pyx_t_1);
54362 __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_set_namespace); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4035; __pyx_clineno = __LINE__54362; goto __pyx_L1_error;}
54363 __Pyx_GOTREF(__pyx_t_7);
54364 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54365 __pyx_t_1 = NULL((void*)0);
54366 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_7))__builtin_expect(!!(((__pyx_t_7)->ob_type == &PyMethod_Type
)), 1)
) {
54367 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_self);
54368 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
54369 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_func);
54370 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
54371 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
54372 __Pyx_DECREF_SET(__pyx_t_7, function)do { PyObject *tmp = (PyObject *) __pyx_t_7; __pyx_t_7 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
54373 }
54374 }
54375 if (!__pyx_t_1) {
54376 __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_old_nspace); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4035; __pyx_clineno = __LINE__54376; goto __pyx_L1_error;}
54377 __Pyx_GOTREF(__pyx_t_4);
54378 } else {
54379 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4035; __pyx_clineno = __LINE__54379; goto __pyx_L1_error;}
54380 __Pyx_GOTREF(__pyx_t_5);
54381 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
54382 __Pyx_INCREF(__pyx_v_old_nspace)( ((PyObject*)(__pyx_v_old_nspace))->ob_refcnt++);
54383 __Pyx_GIVEREF(__pyx_v_old_nspace);
54384 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_old_nspace)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_v_old_nspace
)
;
54385 __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4035; __pyx_clineno = __LINE__54385; goto __pyx_L1_error;}
54386 __Pyx_GOTREF(__pyx_t_4);
54387 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
54388 }
54389 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
54390 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
54391
54392 /* "rados.pyx":4036
54393 * retval = func(self, *args, **kwargs)
54394 * self.ioctx.set_namespace(old_nspace)
54395 * return retval # <<<<<<<<<<<<<<
54396 * return retfunc
54397 *
54398 */
54399 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
54400 __Pyx_INCREF(__pyx_v_retval)( ((PyObject*)(__pyx_v_retval))->ob_refcnt++);
54401 __pyx_r = __pyx_v_retval;
54402 goto __pyx_L0;
54403
54404 /* "rados.pyx":4029
54405 *
54406 * def set_object_namespace(func):
54407 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
54408 * if self.nspace is None:
54409 * raise LogicError("Namespace not set properly in context")
54410 */
54411
54412 /* function exit code */
54413 __pyx_L1_error:;
54414 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
54415 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
54416 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
54417 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
54418 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
54419 __Pyx_AddTraceback("rados.set_object_namespace.retfunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
54420 __pyx_r = NULL((void*)0);
54421 __pyx_L0:;
54422 __Pyx_XDECREF(__pyx_v_old_nspace)do { if ((__pyx_v_old_nspace) == ((void*)0)) ; else do { if (
--((PyObject*)(__pyx_v_old_nspace))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_v_old_nspace)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_old_nspace
)))); } while (0); } while (0)
;
54423 __Pyx_XDECREF(__pyx_v_retval)do { if ((__pyx_v_retval) == ((void*)0)) ; else do { if ( --(
(PyObject*)(__pyx_v_retval))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(__pyx_v_retval)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_retval)))); } while
(0); } while (0)
;
54424 __Pyx_XGIVEREF(__pyx_r);
54425 __Pyx_RefNannyFinishContext();
54426 return __pyx_r;
54427}
54428
54429/* "rados.pyx":4028
54430 *
54431 *
54432 * def set_object_namespace(func): # <<<<<<<<<<<<<<
54433 * def retfunc(self, *args, **kwargs):
54434 * if self.nspace is None:
54435 */
54436
54437static PyObject *__pyx_pf_5rados_14set_object_namespace(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_func) {
54438 struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *__pyx_cur_scope;
54439 PyObject *__pyx_v_retfunc = 0;
54440 PyObject *__pyx_r = NULL((void*)0);
54441 __Pyx_RefNannyDeclarations
54442 PyObject *__pyx_t_1 = NULL((void*)0);
54443 int __pyx_lineno = 0;
54444 const char *__pyx_filename = NULL((void*)0);
54445 int __pyx_clineno = 0;
54446 __Pyx_RefNannySetupContext("set_object_namespace", 0);
54447 __pyx_cur_scope = (struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *)__pyx_tp_new_5rados___pyx_scope_struct_13_set_object_namespace(__pyx_ptype_5rados___pyx_scope_struct_13_set_object_namespace, __pyx_empty_tuple, NULL((void*)0));
54448 if (unlikely(!__pyx_cur_scope)__builtin_expect(!!(!__pyx_cur_scope), 0)) {
54449 __Pyx_RefNannyFinishContext();
54450 return NULL((void*)0);
54451 }
54452 __Pyx_GOTREF(__pyx_cur_scope);
54453 __pyx_cur_scope->__pyx_v_func = __pyx_v_func;
54454 __Pyx_INCREF(__pyx_cur_scope->__pyx_v_func)( ((PyObject*)(__pyx_cur_scope->__pyx_v_func))->ob_refcnt
++)
;
54455 __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_func);
54456
54457 /* "rados.pyx":4029
54458 *
54459 * def set_object_namespace(func):
54460 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
54461 * if self.nspace is None:
54462 * raise LogicError("Namespace not set properly in context")
54463 */
54464 __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_20set_object_namespace_1retfunc, 0, __pyx_n_s_set_object_namespace_locals_retf, ((PyObject*)__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__73))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_20set_object_namespace_1retfunc
, 0, __pyx_n_s_set_object_namespace_locals_retf, ((PyObject*)
__pyx_cur_scope), __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__73
))
; if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4029; __pyx_clineno = __LINE__54464; goto __pyx_L1_error;}
54465 __Pyx_GOTREF(__pyx_t_1);
54466 __pyx_v_retfunc = __pyx_t_1;
54467 __pyx_t_1 = 0;
54468
54469 /* "rados.pyx":4037
54470 * self.ioctx.set_namespace(old_nspace)
54471 * return retval
54472 * return retfunc # <<<<<<<<<<<<<<
54473 *
54474 *
54475 */
54476 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
54477 __Pyx_INCREF(__pyx_v_retfunc)( ((PyObject*)(__pyx_v_retfunc))->ob_refcnt++);
54478 __pyx_r = __pyx_v_retfunc;
54479 goto __pyx_L0;
54480
54481 /* "rados.pyx":4028
54482 *
54483 *
54484 * def set_object_namespace(func): # <<<<<<<<<<<<<<
54485 * def retfunc(self, *args, **kwargs):
54486 * if self.nspace is None:
54487 */
54488
54489 /* function exit code */
54490 __pyx_L1_error:;
54491 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
54492 __Pyx_AddTraceback("rados.set_object_namespace", __pyx_clineno, __pyx_lineno, __pyx_filename);
54493 __pyx_r = NULL((void*)0);
54494 __pyx_L0:;
54495 __Pyx_XDECREF(__pyx_v_retfunc)do { if ((__pyx_v_retfunc) == ((void*)0)) ; else do { if ( --
((PyObject*)(__pyx_v_retfunc))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(__pyx_v_retfunc)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_v_retfunc)))); } while
(0); } while (0)
;
54496 __Pyx_DECREF(((PyObject *)__pyx_cur_scope))do { if ( --((PyObject*)(((PyObject *)__pyx_cur_scope)))->
ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(((PyObject
*)__pyx_cur_scope))))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(((PyObject *)__pyx_cur_scope))))); } while (
0)
;
54497 __Pyx_XGIVEREF(__pyx_r);
54498 __Pyx_RefNannyFinishContext();
54499 return __pyx_r;
54500}
54501
54502/* "rados.pyx":4042
54503 * class Object(object):
54504 * """Rados object wrapper, makes the object look like a file"""
54505 * def __init__(self, ioctx, key, locator_key=None, nspace=None): # <<<<<<<<<<<<<<
54506 * self.key = key
54507 * self.ioctx = ioctx
54508 */
54509
54510/* Python wrapper */
54511static PyObject *__pyx_pw_5rados_6Object_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54512static char __pyx_doc_5rados_6Object___init__[] = "Object.__init__(self, ioctx, key, locator_key=None, nspace=None)";
54513static PyMethodDef __pyx_mdef_5rados_6Object_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_6Object_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6Object___init__};
54514static PyObject *__pyx_pw_5rados_6Object_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54515 PyObject *__pyx_v_self = 0;
54516 PyObject *__pyx_v_ioctx = 0;
54517 PyObject *__pyx_v_key = 0;
54518 PyObject *__pyx_v_locator_key = 0;
54519 PyObject *__pyx_v_nspace = 0;
54520 int __pyx_lineno = 0;
54521 const char *__pyx_filename = NULL((void*)0);
54522 int __pyx_clineno = 0;
54523 PyObject *__pyx_r = 0;
54524 __Pyx_RefNannyDeclarations
54525 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
54526 {
54527 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_ioctx,&__pyx_n_s_key,&__pyx_n_s_locator_key,&__pyx_n_s_nspace,0};
54528 PyObject* values[5] = {0,0,0,0,0};
54529 values[3] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
54530 values[4] = ((PyObject *)((PyObject *)Py_None(&_Py_NoneStruct)));
54531 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
54532 Py_ssize_t kw_args;
54533 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
54534 switch (pos_args) {
54535 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
54536 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
54537 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
54538 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
54539 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
54540 case 0: break;
54541 default: goto __pyx_L5_argtuple_error;
54542 }
54543 kw_args = PyDict_Size(__pyx_kwds);
54544 switch (pos_args) {
54545 case 0:
54546 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
54547 else goto __pyx_L5_argtuple_error;
54548 case 1:
54549 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ioctx
)) != 0), 1)
) kw_args--;
54550 else {
54551 __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__54551; goto __pyx_L3_error;}
54552 }
54553 case 2:
54554 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key
)) != 0), 1)
) kw_args--;
54555 else {
54556 __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__54556; goto __pyx_L3_error;}
54557 }
54558 case 3:
54559 if (kw_args > 0) {
54560 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_locator_key);
54561 if (value) { values[3] = value; kw_args--; }
54562 }
54563 case 4:
54564 if (kw_args > 0) {
54565 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nspace);
54566 if (value) { values[4] = value; kw_args--; }
54567 }
54568 }
54569 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
54570 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__54570; goto __pyx_L3_error;}
54571 }
54572 } else {
54573 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
54574 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
54575 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
54576 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
54577 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
54578 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
54579 break;
54580 default: goto __pyx_L5_argtuple_error;
54581 }
54582 }
54583 __pyx_v_self = values[0];
54584 __pyx_v_ioctx = values[1];
54585 __pyx_v_key = values[2];
54586 __pyx_v_locator_key = values[3];
54587 __pyx_v_nspace = values[4];
54588 }
54589 goto __pyx_L4_argument_unpacking_done;
54590 __pyx_L5_argtuple_error:;
54591 __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__54591; goto __pyx_L3_error;}
54592 __pyx_L3_error:;
54593 __Pyx_AddTraceback("rados.Object.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54594 __Pyx_RefNannyFinishContext();
54595 return NULL((void*)0);
54596 __pyx_L4_argument_unpacking_done:;
54597 __pyx_r = __pyx_pf_5rados_6Object___init__(__pyx_self, __pyx_v_self, __pyx_v_ioctx, __pyx_v_key, __pyx_v_locator_key, __pyx_v_nspace);
54598
54599 /* function exit code */
54600 __Pyx_RefNannyFinishContext();
54601 return __pyx_r;
54602}
54603
54604static PyObject *__pyx_pf_5rados_6Object___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_ioctx, PyObject *__pyx_v_key, PyObject *__pyx_v_locator_key, PyObject *__pyx_v_nspace) {
54605 PyObject *__pyx_r = NULL((void*)0);
54606 __Pyx_RefNannyDeclarations
54607 PyObject *__pyx_t_1 = NULL((void*)0);
54608 int __pyx_t_2;
54609 int __pyx_lineno = 0;
54610 const char *__pyx_filename = NULL((void*)0);
54611 int __pyx_clineno = 0;
54612 __Pyx_RefNannySetupContext("__init__", 0);
54613
54614 /* "rados.pyx":4043
54615 * """Rados object wrapper, makes the object look like a file"""
54616 * def __init__(self, ioctx, key, locator_key=None, nspace=None):
54617 * self.key = key # <<<<<<<<<<<<<<
54618 * self.ioctx = ioctx
54619 * self.offset = 0
54620 */
54621 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_key, __pyx_v_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4043; __pyx_clineno = __LINE__54621; goto __pyx_L1_error;}
54622
54623 /* "rados.pyx":4044
54624 * def __init__(self, ioctx, key, locator_key=None, nspace=None):
54625 * self.key = key
54626 * self.ioctx = ioctx # <<<<<<<<<<<<<<
54627 * self.offset = 0
54628 * self.state = "exists"
54629 */
54630 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ioctx, __pyx_v_ioctx) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4044; __pyx_clineno = __LINE__54630; goto __pyx_L1_error;}
54631
54632 /* "rados.pyx":4045
54633 * self.key = key
54634 * self.ioctx = ioctx
54635 * self.offset = 0 # <<<<<<<<<<<<<<
54636 * self.state = "exists"
54637 * self.locator_key = locator_key
54638 */
54639 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_offset, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4045; __pyx_clineno = __LINE__54639; goto __pyx_L1_error;}
54640
54641 /* "rados.pyx":4046
54642 * self.ioctx = ioctx
54643 * self.offset = 0
54644 * self.state = "exists" # <<<<<<<<<<<<<<
54645 * self.locator_key = locator_key
54646 * self.nspace = "" if nspace is None else nspace
54647 */
54648 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_state, __pyx_n_s_exists) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4046; __pyx_clineno = __LINE__54648; goto __pyx_L1_error;}
54649
54650 /* "rados.pyx":4047
54651 * self.offset = 0
54652 * self.state = "exists"
54653 * self.locator_key = locator_key # <<<<<<<<<<<<<<
54654 * self.nspace = "" if nspace is None else nspace
54655 *
54656 */
54657 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_locator_key, __pyx_v_locator_key) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4047; __pyx_clineno = __LINE__54657; goto __pyx_L1_error;}
54658
54659 /* "rados.pyx":4048
54660 * self.state = "exists"
54661 * self.locator_key = locator_key
54662 * self.nspace = "" if nspace is None else nspace # <<<<<<<<<<<<<<
54663 *
54664 * def __str__(self):
54665 */
54666 __pyx_t_2 = (__pyx_v_nspace == Py_None(&_Py_NoneStruct));
54667 if ((__pyx_t_2 != 0)) {
54668 __Pyx_INCREF(__pyx_kp_s__10)( ((PyObject*)(__pyx_kp_s__10))->ob_refcnt++);
54669 __pyx_t_1 = __pyx_kp_s__10;
54670 } else {
54671 __Pyx_INCREF(__pyx_v_nspace)( ((PyObject*)(__pyx_v_nspace))->ob_refcnt++);
54672 __pyx_t_1 = __pyx_v_nspace;
54673 }
54674 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_nspace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4048; __pyx_clineno = __LINE__54674; goto __pyx_L1_error;}
54675 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54676
54677 /* "rados.pyx":4042
54678 * class Object(object):
54679 * """Rados object wrapper, makes the object look like a file"""
54680 * def __init__(self, ioctx, key, locator_key=None, nspace=None): # <<<<<<<<<<<<<<
54681 * self.key = key
54682 * self.ioctx = ioctx
54683 */
54684
54685 /* function exit code */
54686 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
54687 goto __pyx_L0;
54688 __pyx_L1_error:;
54689 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
54690 __Pyx_AddTraceback("rados.Object.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54691 __pyx_r = NULL((void*)0);
54692 __pyx_L0:;
54693 __Pyx_XGIVEREF(__pyx_r);
54694 __Pyx_RefNannyFinishContext();
54695 return __pyx_r;
54696}
54697
54698/* "rados.pyx":4050
54699 * self.nspace = "" if nspace is None else nspace
54700 *
54701 * def __str__(self): # <<<<<<<<<<<<<<
54702 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \
54703 * (str(self.ioctx), self.key, "--default--"
54704 */
54705
54706/* Python wrapper */
54707static PyObject *__pyx_pw_5rados_6Object_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
54708static char __pyx_doc_5rados_6Object_2__str__[] = "Object.__str__(self)";
54709static PyMethodDef __pyx_mdef_5rados_6Object_3__str__ = {"__str__", (PyCFunction)__pyx_pw_5rados_6Object_3__str__, METH_O0x0008, __pyx_doc_5rados_6Object_2__str__};
54710static PyObject *__pyx_pw_5rados_6Object_3__str__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
54711 PyObject *__pyx_r = 0;
54712 __Pyx_RefNannyDeclarations
54713 __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
54714 __pyx_r = __pyx_pf_5rados_6Object_2__str__(__pyx_self, ((PyObject *)__pyx_v_self));
54715
54716 /* function exit code */
54717 __Pyx_RefNannyFinishContext();
54718 return __pyx_r;
54719}
54720
54721static PyObject *__pyx_pf_5rados_6Object_2__str__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
54722 PyObject *__pyx_r = NULL((void*)0);
54723 __Pyx_RefNannyDeclarations
54724 PyObject *__pyx_t_1 = NULL((void*)0);
54725 PyObject *__pyx_t_2 = NULL((void*)0);
54726 PyObject *__pyx_t_3 = NULL((void*)0);
54727 PyObject *__pyx_t_4 = NULL((void*)0);
54728 int __pyx_t_5;
54729 PyObject *__pyx_t_6 = NULL((void*)0);
54730 int __pyx_lineno = 0;
54731 const char *__pyx_filename = NULL((void*)0);
54732 int __pyx_clineno = 0;
54733 __Pyx_RefNannySetupContext("__str__", 0);
54734
54735 /* "rados.pyx":4051
54736 *
54737 * def __str__(self):
54738 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \ # <<<<<<<<<<<<<<
54739 * (str(self.ioctx), self.key, "--default--"
54740 * if self.nspace is "" else self.nspace, self.locator_key)
54741 */
54742 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
54743
54744 /* "rados.pyx":4052
54745 * def __str__(self):
54746 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \
54747 * (str(self.ioctx), self.key, "--default--" # <<<<<<<<<<<<<<
54748 * if self.nspace is "" else self.nspace, self.locator_key)
54749 *
54750 */
54751 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4052; __pyx_clineno = __LINE__54751; goto __pyx_L1_error;}
54752 __Pyx_GOTREF(__pyx_t_1);
54753 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4052; __pyx_clineno = __LINE__54753; goto __pyx_L1_error;}
54754 __Pyx_GOTREF(__pyx_t_2);
54755 __Pyx_GIVEREF(__pyx_t_1);
54756 PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_2))->ob_item[0] = __pyx_t_1);
54757 __pyx_t_1 = 0;
54758 __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_2, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4052; __pyx_clineno = __LINE__54758; goto __pyx_L1_error;}
54759 __Pyx_GOTREF(__pyx_t_1);
54760 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
54761 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4052; __pyx_clineno = __LINE__54761; goto __pyx_L1_error;}
54762 __Pyx_GOTREF(__pyx_t_2);
54763
54764 /* "rados.pyx":4053
54765 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \
54766 * (str(self.ioctx), self.key, "--default--"
54767 * if self.nspace is "" else self.nspace, self.locator_key) # <<<<<<<<<<<<<<
54768 *
54769 * def require_object_exists(self):
54770 */
54771 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nspace); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4053; __pyx_clineno = __LINE__54771; goto __pyx_L1_error;}
54772 __Pyx_GOTREF(__pyx_t_4);
54773 __pyx_t_5 = (__pyx_t_4 == __pyx_kp_s__10);
54774 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
54775 if ((__pyx_t_5 != 0)) {
54776 __Pyx_INCREF(__pyx_kp_s_default)( ((PyObject*)(__pyx_kp_s_default))->ob_refcnt++);
54777 __pyx_t_3 = __pyx_kp_s_default;
54778 } else {
54779 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_nspace); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4053; __pyx_clineno = __LINE__54779; goto __pyx_L1_error;}
54780 __Pyx_GOTREF(__pyx_t_4);
54781 __pyx_t_3 = __pyx_t_4;
54782 __pyx_t_4 = 0;
54783 }
54784 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_locator_key); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4053; __pyx_clineno = __LINE__54784; goto __pyx_L1_error;}
54785 __Pyx_GOTREF(__pyx_t_4);
54786
54787 /* "rados.pyx":4052
54788 * def __str__(self):
54789 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \
54790 * (str(self.ioctx), self.key, "--default--" # <<<<<<<<<<<<<<
54791 * if self.nspace is "" else self.nspace, self.locator_key)
54792 *
54793 */
54794 __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4052; __pyx_clineno = __LINE__54794; goto __pyx_L1_error;}
54795 __Pyx_GOTREF(__pyx_t_6);
54796 __Pyx_GIVEREF(__pyx_t_1);
54797 PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_1);
54798 __Pyx_GIVEREF(__pyx_t_2);
54799 PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[1] = __pyx_t_2);
54800 __Pyx_GIVEREF(__pyx_t_3);
54801 PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)(((PyTupleObject *)(__pyx_t_6))->ob_item[2] = __pyx_t_3);
54802 __Pyx_GIVEREF(__pyx_t_4);
54803 PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[3] = __pyx_t_4);
54804 __pyx_t_1 = 0;
54805 __pyx_t_2 = 0;
54806 __pyx_t_3 = 0;
54807 __pyx_t_4 = 0;
54808
54809 /* "rados.pyx":4051
54810 *
54811 * def __str__(self):
54812 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \ # <<<<<<<<<<<<<<
54813 * (str(self.ioctx), self.key, "--default--"
54814 * if self.nspace is "" else self.nspace, self.locator_key)
54815 */
54816 __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_rados_Object_ioctx_s_key_s_nspac, __pyx_t_6)PyString_Format(__pyx_kp_s_rados_Object_ioctx_s_key_s_nspac, __pyx_t_6
)
; if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4051; __pyx_clineno = __LINE__54816; goto __pyx_L1_error;}
54817 __Pyx_GOTREF(__pyx_t_4);
54818 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
54819 __pyx_r = __pyx_t_4;
54820 __pyx_t_4 = 0;
54821 goto __pyx_L0;
54822
54823 /* "rados.pyx":4050
54824 * self.nspace = "" if nspace is None else nspace
54825 *
54826 * def __str__(self): # <<<<<<<<<<<<<<
54827 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \
54828 * (str(self.ioctx), self.key, "--default--"
54829 */
54830
54831 /* function exit code */
54832 __pyx_L1_error:;
54833 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
54834 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
54835 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
54836 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
54837 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
54838 __Pyx_AddTraceback("rados.Object.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
54839 __pyx_r = NULL((void*)0);
54840 __pyx_L0:;
54841 __Pyx_XGIVEREF(__pyx_r);
54842 __Pyx_RefNannyFinishContext();
54843 return __pyx_r;
54844}
54845
54846/* "rados.pyx":4055
54847 * if self.nspace is "" else self.nspace, self.locator_key)
54848 *
54849 * def require_object_exists(self): # <<<<<<<<<<<<<<
54850 * if self.state != "exists":
54851 * raise ObjectStateError("The object is %s" % self.state)
54852 */
54853
54854/* Python wrapper */
54855static PyObject *__pyx_pw_5rados_6Object_5require_object_exists(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
54856static char __pyx_doc_5rados_6Object_4require_object_exists[] = "Object.require_object_exists(self)";
54857static PyMethodDef __pyx_mdef_5rados_6Object_5require_object_exists = {"require_object_exists", (PyCFunction)__pyx_pw_5rados_6Object_5require_object_exists, METH_O0x0008, __pyx_doc_5rados_6Object_4require_object_exists};
54858static PyObject *__pyx_pw_5rados_6Object_5require_object_exists(PyObject *__pyx_self, PyObject *__pyx_v_self) {
54859 PyObject *__pyx_r = 0;
54860 __Pyx_RefNannyDeclarations
54861 __Pyx_RefNannySetupContext("require_object_exists (wrapper)", 0);
54862 __pyx_r = __pyx_pf_5rados_6Object_4require_object_exists(__pyx_self, ((PyObject *)__pyx_v_self));
54863
54864 /* function exit code */
54865 __Pyx_RefNannyFinishContext();
54866 return __pyx_r;
54867}
54868
54869static PyObject *__pyx_pf_5rados_6Object_4require_object_exists(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
54870 PyObject *__pyx_r = NULL((void*)0);
54871 __Pyx_RefNannyDeclarations
54872 PyObject *__pyx_t_1 = NULL((void*)0);
54873 int __pyx_t_2;
54874 PyObject *__pyx_t_3 = NULL((void*)0);
54875 PyObject *__pyx_t_4 = NULL((void*)0);
54876 PyObject *__pyx_t_5 = NULL((void*)0);
54877 PyObject *__pyx_t_6 = NULL((void*)0);
54878 int __pyx_lineno = 0;
54879 const char *__pyx_filename = NULL((void*)0);
54880 int __pyx_clineno = 0;
54881 __Pyx_RefNannySetupContext("require_object_exists", 0);
54882
54883 /* "rados.pyx":4056
54884 *
54885 * def require_object_exists(self):
54886 * if self.state != "exists": # <<<<<<<<<<<<<<
54887 * raise ObjectStateError("The object is %s" % self.state)
54888 *
54889 */
54890 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_state); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4056; __pyx_clineno = __LINE__54890; goto __pyx_L1_error;}
54891 __Pyx_GOTREF(__pyx_t_1);
54892 __pyx_t_2 = (__Pyx_PyString_Equals__Pyx_PyBytes_Equals(__pyx_t_1, __pyx_n_s_exists, Py_NE3)); if (unlikely(__pyx_t_2 < 0)__builtin_expect(!!(__pyx_t_2 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4056; __pyx_clineno = __LINE__54892; goto __pyx_L1_error;}
54893 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54894 if (__pyx_t_2) {
54895
54896 /* "rados.pyx":4057
54897 * def require_object_exists(self):
54898 * if self.state != "exists":
54899 * raise ObjectStateError("The object is %s" % self.state) # <<<<<<<<<<<<<<
54900 *
54901 * @set_object_locator
54902 */
54903 __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectStateError); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4057; __pyx_clineno = __LINE__54903; goto __pyx_L1_error;}
54904 __Pyx_GOTREF(__pyx_t_3);
54905 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_state); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4057; __pyx_clineno = __LINE__54905; goto __pyx_L1_error;}
54906 __Pyx_GOTREF(__pyx_t_4);
54907 __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_The_object_is_s, __pyx_t_4)PyString_Format(__pyx_kp_s_The_object_is_s, __pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4057; __pyx_clineno = __LINE__54907; goto __pyx_L1_error;}
54908 __Pyx_GOTREF(__pyx_t_5);
54909 __Pyx_DECREF(__pyx_t_4)do { if ( --((PyObject*)(__pyx_t_4))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_4)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_4)))); } while (
0)
; __pyx_t_4 = 0;
54910 __pyx_t_4 = NULL((void*)0);
54911 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 0)
) {
54912 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
54913 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
54914 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
54915 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
54916 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
54917 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
54918 }
54919 }
54920 if (!__pyx_t_4) {
54921 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4057; __pyx_clineno = __LINE__54921; goto __pyx_L1_error;}
54922 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
54923 __Pyx_GOTREF(__pyx_t_1);
54924 } else {
54925 __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4057; __pyx_clineno = __LINE__54925; goto __pyx_L1_error;}
54926 __Pyx_GOTREF(__pyx_t_6);
54927 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
54928 __Pyx_GIVEREF(__pyx_t_5);
54929 PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+1] = __pyx_t_5);
54930 __pyx_t_5 = 0;
54931 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4057; __pyx_clineno = __LINE__54931; goto __pyx_L1_error;}
54932 __Pyx_GOTREF(__pyx_t_1);
54933 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
54934 }
54935 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
54936 __Pyx_Raise(__pyx_t_1, 0, 0, 0);
54937 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
54938 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4057; __pyx_clineno = __LINE__54938; goto __pyx_L1_error;}
54939
54940 /* "rados.pyx":4056
54941 *
54942 * def require_object_exists(self):
54943 * if self.state != "exists": # <<<<<<<<<<<<<<
54944 * raise ObjectStateError("The object is %s" % self.state)
54945 *
54946 */
54947 }
54948
54949 /* "rados.pyx":4055
54950 * if self.nspace is "" else self.nspace, self.locator_key)
54951 *
54952 * def require_object_exists(self): # <<<<<<<<<<<<<<
54953 * if self.state != "exists":
54954 * raise ObjectStateError("The object is %s" % self.state)
54955 */
54956
54957 /* function exit code */
54958 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
54959 goto __pyx_L0;
54960 __pyx_L1_error:;
54961 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
54962 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
54963 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
54964 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
54965 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
54966 __Pyx_AddTraceback("rados.Object.require_object_exists", __pyx_clineno, __pyx_lineno, __pyx_filename);
54967 __pyx_r = NULL((void*)0);
54968 __pyx_L0:;
54969 __Pyx_XGIVEREF(__pyx_r);
54970 __Pyx_RefNannyFinishContext();
54971 return __pyx_r;
54972}
54973
54974/* "rados.pyx":4061
54975 * @set_object_locator
54976 * @set_object_namespace
54977 * def read(self, length=1024 * 1024): # <<<<<<<<<<<<<<
54978 * self.require_object_exists()
54979 * ret = self.ioctx.read(self.key, length, self.offset)
54980 */
54981
54982/* Python wrapper */
54983static PyObject *__pyx_pw_5rados_6Object_7read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
54984static char __pyx_doc_5rados_6Object_6read[] = "Object.read(self, length=1048576)";
54985static PyMethodDef __pyx_mdef_5rados_6Object_7read = {"read", (PyCFunction)__pyx_pw_5rados_6Object_7read, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6Object_6read};
54986static PyObject *__pyx_pw_5rados_6Object_7read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
54987 PyObject *__pyx_v_self = 0;
54988 PyObject *__pyx_v_length = 0;
54989 int __pyx_lineno = 0;
54990 const char *__pyx_filename = NULL((void*)0);
54991 int __pyx_clineno = 0;
54992 PyObject *__pyx_r = 0;
54993 __Pyx_RefNannyDeclarations
54994 __Pyx_RefNannySetupContext("read (wrapper)", 0);
54995 {
54996 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_length,0};
54997 PyObject* values[2] = {0,0};
54998 values[1] = ((PyObject *)((PyObject *)__pyx_int_1048576));
54999 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
55000 Py_ssize_t kw_args;
55001 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
55002 switch (pos_args) {
55003 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55004 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55005 case 0: break;
55006 default: goto __pyx_L5_argtuple_error;
55007 }
55008 kw_args = PyDict_Size(__pyx_kwds);
55009 switch (pos_args) {
55010 case 0:
55011 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
55012 else goto __pyx_L5_argtuple_error;
55013 case 1:
55014 if (kw_args > 0) {
55015 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_length);
55016 if (value) { values[1] = value; kw_args--; }
55017 }
55018 }
55019 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
55020 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "read") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4061; __pyx_clineno = __LINE__55020; goto __pyx_L3_error;}
55021 }
55022 } else {
55023 switch (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)) {
55024 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55025 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55026 break;
55027 default: goto __pyx_L5_argtuple_error;
55028 }
55029 }
55030 __pyx_v_self = values[0];
55031 __pyx_v_length = values[1];
55032 }
55033 goto __pyx_L4_argument_unpacking_done;
55034 __pyx_L5_argtuple_error:;
55035 __Pyx_RaiseArgtupleInvalid("read", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4061; __pyx_clineno = __LINE__55035; goto __pyx_L3_error;}
55036 __pyx_L3_error:;
55037 __Pyx_AddTraceback("rados.Object.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
55038 __Pyx_RefNannyFinishContext();
55039 return NULL((void*)0);
55040 __pyx_L4_argument_unpacking_done:;
55041 __pyx_r = __pyx_pf_5rados_6Object_6read(__pyx_self, __pyx_v_self, __pyx_v_length);
55042
55043 /* function exit code */
55044 __Pyx_RefNannyFinishContext();
55045 return __pyx_r;
55046}
55047
55048static PyObject *__pyx_pf_5rados_6Object_6read(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_length) {
55049 PyObject *__pyx_v_ret = NULL((void*)0);
55050 PyObject *__pyx_r = NULL((void*)0);
55051 __Pyx_RefNannyDeclarations
55052 PyObject *__pyx_t_1 = NULL((void*)0);
55053 PyObject *__pyx_t_2 = NULL((void*)0);
55054 PyObject *__pyx_t_3 = NULL((void*)0);
55055 PyObject *__pyx_t_4 = NULL((void*)0);
55056 PyObject *__pyx_t_5 = NULL((void*)0);
55057 Py_ssize_t __pyx_t_6;
55058 PyObject *__pyx_t_7 = NULL((void*)0);
55059 int __pyx_lineno = 0;
55060 const char *__pyx_filename = NULL((void*)0);
55061 int __pyx_clineno = 0;
55062 __Pyx_RefNannySetupContext("read", 0);
55063
55064 /* "rados.pyx":4062
55065 * @set_object_namespace
55066 * def read(self, length=1024 * 1024):
55067 * self.require_object_exists() # <<<<<<<<<<<<<<
55068 * ret = self.ioctx.read(self.key, length, self.offset)
55069 * self.offset += len(ret)
55070 */
55071 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4062; __pyx_clineno = __LINE__55071; goto __pyx_L1_error;}
55072 __Pyx_GOTREF(__pyx_t_2);
55073 __pyx_t_3 = NULL((void*)0);
55074 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
55075 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
55076 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
55077 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
55078 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
55079 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55080 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55081 }
55082 }
55083 if (__pyx_t_3) {
55084 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4062; __pyx_clineno = __LINE__55084; goto __pyx_L1_error;}
55085 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55086 } else {
55087 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4062; __pyx_clineno = __LINE__55087; goto __pyx_L1_error;}
55088 }
55089 __Pyx_GOTREF(__pyx_t_1);
55090 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55091 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55092
55093 /* "rados.pyx":4063
55094 * def read(self, length=1024 * 1024):
55095 * self.require_object_exists()
55096 * ret = self.ioctx.read(self.key, length, self.offset) # <<<<<<<<<<<<<<
55097 * self.offset += len(ret)
55098 * return ret
55099 */
55100 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4063; __pyx_clineno = __LINE__55100; goto __pyx_L1_error;}
55101 __Pyx_GOTREF(__pyx_t_2);
55102 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_read); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4063; __pyx_clineno = __LINE__55102; goto __pyx_L1_error;}
55103 __Pyx_GOTREF(__pyx_t_3);
55104 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55105 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4063; __pyx_clineno = __LINE__55105; goto __pyx_L1_error;}
55106 __Pyx_GOTREF(__pyx_t_2);
55107 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_offset); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4063; __pyx_clineno = __LINE__55107; goto __pyx_L1_error;}
55108 __Pyx_GOTREF(__pyx_t_4);
55109 __pyx_t_5 = NULL((void*)0);
55110 __pyx_t_6 = 0;
55111 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
55112 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
55113 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
55114 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
55115 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
55116 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55117 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55118 __pyx_t_6 = 1;
55119 }
55120 }
55121 __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4063; __pyx_clineno = __LINE__55121; goto __pyx_L1_error;}
55122 __Pyx_GOTREF(__pyx_t_7);
55123 if (__pyx_t_5) {
55124 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
55125 }
55126 __Pyx_GIVEREF(__pyx_t_2);
55127 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_2)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_t_2
)
;
55128 __Pyx_INCREF(__pyx_v_length)( ((PyObject*)(__pyx_v_length))->ob_refcnt++);
55129 __Pyx_GIVEREF(__pyx_v_length);
55130 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_length)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_v_length
)
;
55131 __Pyx_GIVEREF(__pyx_t_4);
55132 PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_4)(((PyTupleObject *)(__pyx_t_7))->ob_item[2+__pyx_t_6] = __pyx_t_4
)
;
55133 __pyx_t_2 = 0;
55134 __pyx_t_4 = 0;
55135 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4063; __pyx_clineno = __LINE__55135; goto __pyx_L1_error;}
55136 __Pyx_GOTREF(__pyx_t_1);
55137 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
55138 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55139 __pyx_v_ret = __pyx_t_1;
55140 __pyx_t_1 = 0;
55141
55142 /* "rados.pyx":4064
55143 * self.require_object_exists()
55144 * ret = self.ioctx.read(self.key, length, self.offset)
55145 * self.offset += len(ret) # <<<<<<<<<<<<<<
55146 * return ret
55147 *
55148 */
55149 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_offset); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4064; __pyx_clineno = __LINE__55149; goto __pyx_L1_error;}
55150 __Pyx_GOTREF(__pyx_t_1);
55151 __pyx_t_6 = PyObject_LengthPyObject_Size(__pyx_v_ret); if (unlikely(__pyx_t_6 == -1)__builtin_expect(!!(__pyx_t_6 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4064; __pyx_clineno = __LINE__55151; goto __pyx_L1_error;}
55152 __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4064; __pyx_clineno = __LINE__55152; goto __pyx_L1_error;}
55153 __Pyx_GOTREF(__pyx_t_3);
55154 __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4064; __pyx_clineno = __LINE__55154; goto __pyx_L1_error;}
55155 __Pyx_GOTREF(__pyx_t_7);
55156 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55157 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55158 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_offset, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4064; __pyx_clineno = __LINE__55158; goto __pyx_L1_error;}
55159 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
55160
55161 /* "rados.pyx":4065
55162 * ret = self.ioctx.read(self.key, length, self.offset)
55163 * self.offset += len(ret)
55164 * return ret # <<<<<<<<<<<<<<
55165 *
55166 * @set_object_locator
55167 */
55168 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
55169 __Pyx_INCREF(__pyx_v_ret)( ((PyObject*)(__pyx_v_ret))->ob_refcnt++);
55170 __pyx_r = __pyx_v_ret;
55171 goto __pyx_L0;
55172
55173 /* "rados.pyx":4061
55174 * @set_object_locator
55175 * @set_object_namespace
55176 * def read(self, length=1024 * 1024): # <<<<<<<<<<<<<<
55177 * self.require_object_exists()
55178 * ret = self.ioctx.read(self.key, length, self.offset)
55179 */
55180
55181 /* function exit code */
55182 __pyx_L1_error:;
55183 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
55184 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
55185 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
55186 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
55187 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
55188 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
55189 __Pyx_AddTraceback("rados.Object.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
55190 __pyx_r = NULL((void*)0);
55191 __pyx_L0:;
55192 __Pyx_XDECREF(__pyx_v_ret)do { if ((__pyx_v_ret) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_ret))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_ret)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_ret)))); } while (0); } while (0)
;
55193 __Pyx_XGIVEREF(__pyx_r);
55194 __Pyx_RefNannyFinishContext();
55195 return __pyx_r;
55196}
55197
55198/* "rados.pyx":4069
55199 * @set_object_locator
55200 * @set_object_namespace
55201 * def write(self, string_to_write): # <<<<<<<<<<<<<<
55202 * self.require_object_exists()
55203 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
55204 */
55205
55206/* Python wrapper */
55207static PyObject *__pyx_pw_5rados_6Object_9write(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55208static char __pyx_doc_5rados_6Object_8write[] = "Object.write(self, string_to_write)";
55209static PyMethodDef __pyx_mdef_5rados_6Object_9write = {"write", (PyCFunction)__pyx_pw_5rados_6Object_9write, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6Object_8write};
55210static PyObject *__pyx_pw_5rados_6Object_9write(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55211 PyObject *__pyx_v_self = 0;
55212 PyObject *__pyx_v_string_to_write = 0;
55213 int __pyx_lineno = 0;
55214 const char *__pyx_filename = NULL((void*)0);
55215 int __pyx_clineno = 0;
55216 PyObject *__pyx_r = 0;
55217 __Pyx_RefNannyDeclarations
55218 __Pyx_RefNannySetupContext("write (wrapper)", 0);
55219 {
55220 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_string_to_write,0};
55221 PyObject* values[2] = {0,0};
55222 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
55223 Py_ssize_t kw_args;
55224 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
55225 switch (pos_args) {
55226 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55227 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55228 case 0: break;
55229 default: goto __pyx_L5_argtuple_error;
55230 }
55231 kw_args = PyDict_Size(__pyx_kwds);
55232 switch (pos_args) {
55233 case 0:
55234 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
55235 else goto __pyx_L5_argtuple_error;
55236 case 1:
55237 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_string_to_write)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_string_to_write
)) != 0), 1)
) kw_args--;
55238 else {
55239 __Pyx_RaiseArgtupleInvalid("write", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4069; __pyx_clineno = __LINE__55239; goto __pyx_L3_error;}
55240 }
55241 }
55242 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
55243 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "write") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4069; __pyx_clineno = __LINE__55243; goto __pyx_L3_error;}
55244 }
55245 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
55246 goto __pyx_L5_argtuple_error;
55247 } else {
55248 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55249 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55250 }
55251 __pyx_v_self = values[0];
55252 __pyx_v_string_to_write = values[1];
55253 }
55254 goto __pyx_L4_argument_unpacking_done;
55255 __pyx_L5_argtuple_error:;
55256 __Pyx_RaiseArgtupleInvalid("write", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4069; __pyx_clineno = __LINE__55256; goto __pyx_L3_error;}
55257 __pyx_L3_error:;
55258 __Pyx_AddTraceback("rados.Object.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
55259 __Pyx_RefNannyFinishContext();
55260 return NULL((void*)0);
55261 __pyx_L4_argument_unpacking_done:;
55262 __pyx_r = __pyx_pf_5rados_6Object_8write(__pyx_self, __pyx_v_self, __pyx_v_string_to_write);
55263
55264 /* function exit code */
55265 __Pyx_RefNannyFinishContext();
55266 return __pyx_r;
55267}
55268
55269static PyObject *__pyx_pf_5rados_6Object_8write(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_string_to_write) {
55270 PyObject *__pyx_v_ret = NULL((void*)0);
55271 PyObject *__pyx_r = NULL((void*)0);
55272 __Pyx_RefNannyDeclarations
55273 PyObject *__pyx_t_1 = NULL((void*)0);
55274 PyObject *__pyx_t_2 = NULL((void*)0);
55275 PyObject *__pyx_t_3 = NULL((void*)0);
55276 PyObject *__pyx_t_4 = NULL((void*)0);
55277 PyObject *__pyx_t_5 = NULL((void*)0);
55278 Py_ssize_t __pyx_t_6;
55279 PyObject *__pyx_t_7 = NULL((void*)0);
55280 int __pyx_t_8;
55281 int __pyx_lineno = 0;
55282 const char *__pyx_filename = NULL((void*)0);
55283 int __pyx_clineno = 0;
55284 __Pyx_RefNannySetupContext("write", 0);
55285
55286 /* "rados.pyx":4070
55287 * @set_object_namespace
55288 * def write(self, string_to_write):
55289 * self.require_object_exists() # <<<<<<<<<<<<<<
55290 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
55291 * if ret == 0:
55292 */
55293 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4070; __pyx_clineno = __LINE__55293; goto __pyx_L1_error;}
55294 __Pyx_GOTREF(__pyx_t_2);
55295 __pyx_t_3 = NULL((void*)0);
55296 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
55297 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
55298 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
55299 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
55300 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
55301 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55302 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55303 }
55304 }
55305 if (__pyx_t_3) {
55306 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4070; __pyx_clineno = __LINE__55306; goto __pyx_L1_error;}
55307 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55308 } else {
55309 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4070; __pyx_clineno = __LINE__55309; goto __pyx_L1_error;}
55310 }
55311 __Pyx_GOTREF(__pyx_t_1);
55312 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55313 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55314
55315 /* "rados.pyx":4071
55316 * def write(self, string_to_write):
55317 * self.require_object_exists()
55318 * ret = self.ioctx.write(self.key, string_to_write, self.offset) # <<<<<<<<<<<<<<
55319 * if ret == 0:
55320 * self.offset += len(string_to_write)
55321 */
55322 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4071; __pyx_clineno = __LINE__55322; goto __pyx_L1_error;}
55323 __Pyx_GOTREF(__pyx_t_2);
55324 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_write); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4071; __pyx_clineno = __LINE__55324; goto __pyx_L1_error;}
55325 __Pyx_GOTREF(__pyx_t_3);
55326 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55327 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4071; __pyx_clineno = __LINE__55327; goto __pyx_L1_error;}
55328 __Pyx_GOTREF(__pyx_t_2);
55329 __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_offset); if (unlikely(!__pyx_t_4)__builtin_expect(!!(!__pyx_t_4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4071; __pyx_clineno = __LINE__55329; goto __pyx_L1_error;}
55330 __Pyx_GOTREF(__pyx_t_4);
55331 __pyx_t_5 = NULL((void*)0);
55332 __pyx_t_6 = 0;
55333 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
55334 __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
55335 if (likely(__pyx_t_5)__builtin_expect(!!(__pyx_t_5), 1)) {
55336 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
55337 __Pyx_INCREF(__pyx_t_5)( ((PyObject*)(__pyx_t_5))->ob_refcnt++);
55338 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55339 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55340 __pyx_t_6 = 1;
55341 }
55342 }
55343 __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4071; __pyx_clineno = __LINE__55343; goto __pyx_L1_error;}
55344 __Pyx_GOTREF(__pyx_t_7);
55345 if (__pyx_t_5) {
55346 __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_5); __pyx_t_5 = NULL((void*)0);
55347 }
55348 __Pyx_GIVEREF(__pyx_t_2);
55349 PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_2)(((PyTupleObject *)(__pyx_t_7))->ob_item[0+__pyx_t_6] = __pyx_t_2
)
;
55350 __Pyx_INCREF(__pyx_v_string_to_write)( ((PyObject*)(__pyx_v_string_to_write))->ob_refcnt++);
55351 __Pyx_GIVEREF(__pyx_v_string_to_write);
55352 PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_string_to_write)(((PyTupleObject *)(__pyx_t_7))->ob_item[1+__pyx_t_6] = __pyx_v_string_to_write
)
;
55353 __Pyx_GIVEREF(__pyx_t_4);
55354 PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_4)(((PyTupleObject *)(__pyx_t_7))->ob_item[2+__pyx_t_6] = __pyx_t_4
)
;
55355 __pyx_t_2 = 0;
55356 __pyx_t_4 = 0;
55357 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4071; __pyx_clineno = __LINE__55357; goto __pyx_L1_error;}
55358 __Pyx_GOTREF(__pyx_t_1);
55359 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
55360 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55361 __pyx_v_ret = __pyx_t_1;
55362 __pyx_t_1 = 0;
55363
55364 /* "rados.pyx":4072
55365 * self.require_object_exists()
55366 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
55367 * if ret == 0: # <<<<<<<<<<<<<<
55368 * self.offset += len(string_to_write)
55369 * return ret
55370 */
55371 __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_ret, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4072; __pyx_clineno = __LINE__55371; goto __pyx_L1_error;}
55372 __Pyx_GOTREF(__pyx_t_1);
55373 __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)__builtin_expect(!!(__pyx_t_8 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4072; __pyx_clineno = __LINE__55373; goto __pyx_L1_error;}
55374 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55375 if (__pyx_t_8) {
55376
55377 /* "rados.pyx":4073
55378 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
55379 * if ret == 0:
55380 * self.offset += len(string_to_write) # <<<<<<<<<<<<<<
55381 * return ret
55382 *
55383 */
55384 __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_offset); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4073; __pyx_clineno = __LINE__55384; goto __pyx_L1_error;}
55385 __Pyx_GOTREF(__pyx_t_1);
55386 __pyx_t_6 = PyObject_LengthPyObject_Size(__pyx_v_string_to_write); if (unlikely(__pyx_t_6 == -1)__builtin_expect(!!(__pyx_t_6 == -1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4073; __pyx_clineno = __LINE__55386; goto __pyx_L1_error;}
55387 __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4073; __pyx_clineno = __LINE__55387; goto __pyx_L1_error;}
55388 __Pyx_GOTREF(__pyx_t_3);
55389 __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4073; __pyx_clineno = __LINE__55389; goto __pyx_L1_error;}
55390 __Pyx_GOTREF(__pyx_t_7);
55391 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55392 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55393 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_offset, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4073; __pyx_clineno = __LINE__55393; goto __pyx_L1_error;}
55394 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
55395
55396 /* "rados.pyx":4072
55397 * self.require_object_exists()
55398 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
55399 * if ret == 0: # <<<<<<<<<<<<<<
55400 * self.offset += len(string_to_write)
55401 * return ret
55402 */
55403 }
55404
55405 /* "rados.pyx":4074
55406 * if ret == 0:
55407 * self.offset += len(string_to_write)
55408 * return ret # <<<<<<<<<<<<<<
55409 *
55410 * @set_object_locator
55411 */
55412 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
55413 __Pyx_INCREF(__pyx_v_ret)( ((PyObject*)(__pyx_v_ret))->ob_refcnt++);
55414 __pyx_r = __pyx_v_ret;
55415 goto __pyx_L0;
55416
55417 /* "rados.pyx":4069
55418 * @set_object_locator
55419 * @set_object_namespace
55420 * def write(self, string_to_write): # <<<<<<<<<<<<<<
55421 * self.require_object_exists()
55422 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
55423 */
55424
55425 /* function exit code */
55426 __pyx_L1_error:;
55427 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
55428 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
55429 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
55430 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
55431 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
55432 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
55433 __Pyx_AddTraceback("rados.Object.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
55434 __pyx_r = NULL((void*)0);
55435 __pyx_L0:;
55436 __Pyx_XDECREF(__pyx_v_ret)do { if ((__pyx_v_ret) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_v_ret))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(__pyx_v_ret)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_v_ret)))); } while (0); } while (0)
;
55437 __Pyx_XGIVEREF(__pyx_r);
55438 __Pyx_RefNannyFinishContext();
55439 return __pyx_r;
55440}
55441
55442/* "rados.pyx":4078
55443 * @set_object_locator
55444 * @set_object_namespace
55445 * def remove(self): # <<<<<<<<<<<<<<
55446 * self.require_object_exists()
55447 * self.ioctx.remove_object(self.key)
55448 */
55449
55450/* Python wrapper */
55451static PyObject *__pyx_pw_5rados_6Object_11remove(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
55452static char __pyx_doc_5rados_6Object_10remove[] = "Object.remove(self)";
55453static PyMethodDef __pyx_mdef_5rados_6Object_11remove = {"remove", (PyCFunction)__pyx_pw_5rados_6Object_11remove, METH_O0x0008, __pyx_doc_5rados_6Object_10remove};
55454static PyObject *__pyx_pw_5rados_6Object_11remove(PyObject *__pyx_self, PyObject *__pyx_v_self) {
55455 PyObject *__pyx_r = 0;
55456 __Pyx_RefNannyDeclarations
55457 __Pyx_RefNannySetupContext("remove (wrapper)", 0);
55458 __pyx_r = __pyx_pf_5rados_6Object_10remove(__pyx_self, ((PyObject *)__pyx_v_self));
55459
55460 /* function exit code */
55461 __Pyx_RefNannyFinishContext();
55462 return __pyx_r;
55463}
55464
55465static PyObject *__pyx_pf_5rados_6Object_10remove(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
55466 PyObject *__pyx_r = NULL((void*)0);
55467 __Pyx_RefNannyDeclarations
55468 PyObject *__pyx_t_1 = NULL((void*)0);
55469 PyObject *__pyx_t_2 = NULL((void*)0);
55470 PyObject *__pyx_t_3 = NULL((void*)0);
55471 PyObject *__pyx_t_4 = NULL((void*)0);
55472 PyObject *__pyx_t_5 = NULL((void*)0);
55473 int __pyx_lineno = 0;
55474 const char *__pyx_filename = NULL((void*)0);
55475 int __pyx_clineno = 0;
55476 __Pyx_RefNannySetupContext("remove", 0);
55477
55478 /* "rados.pyx":4079
55479 * @set_object_namespace
55480 * def remove(self):
55481 * self.require_object_exists() # <<<<<<<<<<<<<<
55482 * self.ioctx.remove_object(self.key)
55483 * self.state = "removed"
55484 */
55485 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4079; __pyx_clineno = __LINE__55485; goto __pyx_L1_error;}
55486 __Pyx_GOTREF(__pyx_t_2);
55487 __pyx_t_3 = NULL((void*)0);
55488 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
55489 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
55490 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
55491 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
55492 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
55493 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55494 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55495 }
55496 }
55497 if (__pyx_t_3) {
55498 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4079; __pyx_clineno = __LINE__55498; goto __pyx_L1_error;}
55499 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55500 } else {
55501 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4079; __pyx_clineno = __LINE__55501; goto __pyx_L1_error;}
55502 }
55503 __Pyx_GOTREF(__pyx_t_1);
55504 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55505 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55506
55507 /* "rados.pyx":4080
55508 * def remove(self):
55509 * self.require_object_exists()
55510 * self.ioctx.remove_object(self.key) # <<<<<<<<<<<<<<
55511 * self.state = "removed"
55512 *
55513 */
55514 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4080; __pyx_clineno = __LINE__55514; goto __pyx_L1_error;}
55515 __Pyx_GOTREF(__pyx_t_2);
55516 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_remove_object); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4080; __pyx_clineno = __LINE__55516; goto __pyx_L1_error;}
55517 __Pyx_GOTREF(__pyx_t_3);
55518 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55519 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4080; __pyx_clineno = __LINE__55519; goto __pyx_L1_error;}
55520 __Pyx_GOTREF(__pyx_t_2);
55521 __pyx_t_4 = NULL((void*)0);
55522 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
55523 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
55524 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
55525 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
55526 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
55527 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55528 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55529 }
55530 }
55531 if (!__pyx_t_4) {
55532 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4080; __pyx_clineno = __LINE__55532; goto __pyx_L1_error;}
55533 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55534 __Pyx_GOTREF(__pyx_t_1);
55535 } else {
55536 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4080; __pyx_clineno = __LINE__55536; goto __pyx_L1_error;}
55537 __Pyx_GOTREF(__pyx_t_5);
55538 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
55539 __Pyx_GIVEREF(__pyx_t_2);
55540 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_t_2);
55541 __pyx_t_2 = 0;
55542 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4080; __pyx_clineno = __LINE__55542; goto __pyx_L1_error;}
55543 __Pyx_GOTREF(__pyx_t_1);
55544 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
55545 }
55546 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55547 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55548
55549 /* "rados.pyx":4081
55550 * self.require_object_exists()
55551 * self.ioctx.remove_object(self.key)
55552 * self.state = "removed" # <<<<<<<<<<<<<<
55553 *
55554 * @set_object_locator
55555 */
55556 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_state, __pyx_n_s_removed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4081; __pyx_clineno = __LINE__55556; goto __pyx_L1_error;}
55557
55558 /* "rados.pyx":4078
55559 * @set_object_locator
55560 * @set_object_namespace
55561 * def remove(self): # <<<<<<<<<<<<<<
55562 * self.require_object_exists()
55563 * self.ioctx.remove_object(self.key)
55564 */
55565
55566 /* function exit code */
55567 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
55568 goto __pyx_L0;
55569 __pyx_L1_error:;
55570 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
55571 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
55572 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
55573 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
55574 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
55575 __Pyx_AddTraceback("rados.Object.remove", __pyx_clineno, __pyx_lineno, __pyx_filename);
55576 __pyx_r = NULL((void*)0);
55577 __pyx_L0:;
55578 __Pyx_XGIVEREF(__pyx_r);
55579 __Pyx_RefNannyFinishContext();
55580 return __pyx_r;
55581}
55582
55583/* "rados.pyx":4085
55584 * @set_object_locator
55585 * @set_object_namespace
55586 * def stat(self): # <<<<<<<<<<<<<<
55587 * self.require_object_exists()
55588 * return self.ioctx.stat(self.key)
55589 */
55590
55591/* Python wrapper */
55592static PyObject *__pyx_pw_5rados_6Object_13stat(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
55593static char __pyx_doc_5rados_6Object_12stat[] = "Object.stat(self)";
55594static PyMethodDef __pyx_mdef_5rados_6Object_13stat = {"stat", (PyCFunction)__pyx_pw_5rados_6Object_13stat, METH_O0x0008, __pyx_doc_5rados_6Object_12stat};
55595static PyObject *__pyx_pw_5rados_6Object_13stat(PyObject *__pyx_self, PyObject *__pyx_v_self) {
55596 PyObject *__pyx_r = 0;
55597 __Pyx_RefNannyDeclarations
55598 __Pyx_RefNannySetupContext("stat (wrapper)", 0);
55599 __pyx_r = __pyx_pf_5rados_6Object_12stat(__pyx_self, ((PyObject *)__pyx_v_self));
55600
55601 /* function exit code */
55602 __Pyx_RefNannyFinishContext();
55603 return __pyx_r;
55604}
55605
55606static PyObject *__pyx_pf_5rados_6Object_12stat(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
55607 PyObject *__pyx_r = NULL((void*)0);
55608 __Pyx_RefNannyDeclarations
55609 PyObject *__pyx_t_1 = NULL((void*)0);
55610 PyObject *__pyx_t_2 = NULL((void*)0);
55611 PyObject *__pyx_t_3 = NULL((void*)0);
55612 PyObject *__pyx_t_4 = NULL((void*)0);
55613 PyObject *__pyx_t_5 = NULL((void*)0);
55614 int __pyx_lineno = 0;
55615 const char *__pyx_filename = NULL((void*)0);
55616 int __pyx_clineno = 0;
55617 __Pyx_RefNannySetupContext("stat", 0);
55618
55619 /* "rados.pyx":4086
55620 * @set_object_namespace
55621 * def stat(self):
55622 * self.require_object_exists() # <<<<<<<<<<<<<<
55623 * return self.ioctx.stat(self.key)
55624 *
55625 */
55626 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4086; __pyx_clineno = __LINE__55626; goto __pyx_L1_error;}
55627 __Pyx_GOTREF(__pyx_t_2);
55628 __pyx_t_3 = NULL((void*)0);
55629 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
55630 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
55631 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
55632 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
55633 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
55634 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55635 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55636 }
55637 }
55638 if (__pyx_t_3) {
55639 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4086; __pyx_clineno = __LINE__55639; goto __pyx_L1_error;}
55640 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55641 } else {
55642 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4086; __pyx_clineno = __LINE__55642; goto __pyx_L1_error;}
55643 }
55644 __Pyx_GOTREF(__pyx_t_1);
55645 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55646 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55647
55648 /* "rados.pyx":4087
55649 * def stat(self):
55650 * self.require_object_exists()
55651 * return self.ioctx.stat(self.key) # <<<<<<<<<<<<<<
55652 *
55653 * def seek(self, position):
55654 */
55655 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
55656 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4087; __pyx_clineno = __LINE__55656; goto __pyx_L1_error;}
55657 __Pyx_GOTREF(__pyx_t_2);
55658 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_stat); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4087; __pyx_clineno = __LINE__55658; goto __pyx_L1_error;}
55659 __Pyx_GOTREF(__pyx_t_3);
55660 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55661 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4087; __pyx_clineno = __LINE__55661; goto __pyx_L1_error;}
55662 __Pyx_GOTREF(__pyx_t_2);
55663 __pyx_t_4 = NULL((void*)0);
55664 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
55665 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
55666 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
55667 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
55668 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
55669 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55670 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55671 }
55672 }
55673 if (!__pyx_t_4) {
55674 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4087; __pyx_clineno = __LINE__55674; goto __pyx_L1_error;}
55675 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55676 __Pyx_GOTREF(__pyx_t_1);
55677 } else {
55678 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4087; __pyx_clineno = __LINE__55678; goto __pyx_L1_error;}
55679 __Pyx_GOTREF(__pyx_t_5);
55680 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
55681 __Pyx_GIVEREF(__pyx_t_2);
55682 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_t_2);
55683 __pyx_t_2 = 0;
55684 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4087; __pyx_clineno = __LINE__55684; goto __pyx_L1_error;}
55685 __Pyx_GOTREF(__pyx_t_1);
55686 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
55687 }
55688 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55689 __pyx_r = __pyx_t_1;
55690 __pyx_t_1 = 0;
55691 goto __pyx_L0;
55692
55693 /* "rados.pyx":4085
55694 * @set_object_locator
55695 * @set_object_namespace
55696 * def stat(self): # <<<<<<<<<<<<<<
55697 * self.require_object_exists()
55698 * return self.ioctx.stat(self.key)
55699 */
55700
55701 /* function exit code */
55702 __pyx_L1_error:;
55703 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
55704 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
55705 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
55706 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
55707 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
55708 __Pyx_AddTraceback("rados.Object.stat", __pyx_clineno, __pyx_lineno, __pyx_filename);
55709 __pyx_r = NULL((void*)0);
55710 __pyx_L0:;
55711 __Pyx_XGIVEREF(__pyx_r);
55712 __Pyx_RefNannyFinishContext();
55713 return __pyx_r;
55714}
55715
55716/* "rados.pyx":4089
55717 * return self.ioctx.stat(self.key)
55718 *
55719 * def seek(self, position): # <<<<<<<<<<<<<<
55720 * self.require_object_exists()
55721 * self.offset = position
55722 */
55723
55724/* Python wrapper */
55725static PyObject *__pyx_pw_5rados_6Object_15seek(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55726static char __pyx_doc_5rados_6Object_14seek[] = "Object.seek(self, position)";
55727static PyMethodDef __pyx_mdef_5rados_6Object_15seek = {"seek", (PyCFunction)__pyx_pw_5rados_6Object_15seek, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6Object_14seek};
55728static PyObject *__pyx_pw_5rados_6Object_15seek(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55729 PyObject *__pyx_v_self = 0;
55730 PyObject *__pyx_v_position = 0;
55731 int __pyx_lineno = 0;
55732 const char *__pyx_filename = NULL((void*)0);
55733 int __pyx_clineno = 0;
55734 PyObject *__pyx_r = 0;
55735 __Pyx_RefNannyDeclarations
55736 __Pyx_RefNannySetupContext("seek (wrapper)", 0);
55737 {
55738 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_position,0};
55739 PyObject* values[2] = {0,0};
55740 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
55741 Py_ssize_t kw_args;
55742 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
55743 switch (pos_args) {
55744 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55745 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55746 case 0: break;
55747 default: goto __pyx_L5_argtuple_error;
55748 }
55749 kw_args = PyDict_Size(__pyx_kwds);
55750 switch (pos_args) {
55751 case 0:
55752 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
55753 else goto __pyx_L5_argtuple_error;
55754 case 1:
55755 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_position)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_position
)) != 0), 1)
) kw_args--;
55756 else {
55757 __Pyx_RaiseArgtupleInvalid("seek", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4089; __pyx_clineno = __LINE__55757; goto __pyx_L3_error;}
55758 }
55759 }
55760 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
55761 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "seek") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "seek") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4089; __pyx_clineno = __LINE__55761; goto __pyx_L3_error;}
55762 }
55763 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
55764 goto __pyx_L5_argtuple_error;
55765 } else {
55766 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55767 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55768 }
55769 __pyx_v_self = values[0];
55770 __pyx_v_position = values[1];
55771 }
55772 goto __pyx_L4_argument_unpacking_done;
55773 __pyx_L5_argtuple_error:;
55774 __Pyx_RaiseArgtupleInvalid("seek", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4089; __pyx_clineno = __LINE__55774; goto __pyx_L3_error;}
55775 __pyx_L3_error:;
55776 __Pyx_AddTraceback("rados.Object.seek", __pyx_clineno, __pyx_lineno, __pyx_filename);
55777 __Pyx_RefNannyFinishContext();
55778 return NULL((void*)0);
55779 __pyx_L4_argument_unpacking_done:;
55780 __pyx_r = __pyx_pf_5rados_6Object_14seek(__pyx_self, __pyx_v_self, __pyx_v_position);
55781
55782 /* function exit code */
55783 __Pyx_RefNannyFinishContext();
55784 return __pyx_r;
55785}
55786
55787static PyObject *__pyx_pf_5rados_6Object_14seek(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_position) {
55788 PyObject *__pyx_r = NULL((void*)0);
55789 __Pyx_RefNannyDeclarations
55790 PyObject *__pyx_t_1 = NULL((void*)0);
55791 PyObject *__pyx_t_2 = NULL((void*)0);
55792 PyObject *__pyx_t_3 = NULL((void*)0);
55793 int __pyx_lineno = 0;
55794 const char *__pyx_filename = NULL((void*)0);
55795 int __pyx_clineno = 0;
55796 __Pyx_RefNannySetupContext("seek", 0);
55797
55798 /* "rados.pyx":4090
55799 *
55800 * def seek(self, position):
55801 * self.require_object_exists() # <<<<<<<<<<<<<<
55802 * self.offset = position
55803 *
55804 */
55805 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4090; __pyx_clineno = __LINE__55805; goto __pyx_L1_error;}
55806 __Pyx_GOTREF(__pyx_t_2);
55807 __pyx_t_3 = NULL((void*)0);
55808 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
55809 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
55810 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
55811 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
55812 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
55813 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55814 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55815 }
55816 }
55817 if (__pyx_t_3) {
55818 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4090; __pyx_clineno = __LINE__55818; goto __pyx_L1_error;}
55819 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55820 } else {
55821 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4090; __pyx_clineno = __LINE__55821; goto __pyx_L1_error;}
55822 }
55823 __Pyx_GOTREF(__pyx_t_1);
55824 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55825 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55826
55827 /* "rados.pyx":4091
55828 * def seek(self, position):
55829 * self.require_object_exists()
55830 * self.offset = position # <<<<<<<<<<<<<<
55831 *
55832 * @set_object_locator
55833 */
55834 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_offset, __pyx_v_position) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4091; __pyx_clineno = __LINE__55834; goto __pyx_L1_error;}
55835
55836 /* "rados.pyx":4089
55837 * return self.ioctx.stat(self.key)
55838 *
55839 * def seek(self, position): # <<<<<<<<<<<<<<
55840 * self.require_object_exists()
55841 * self.offset = position
55842 */
55843
55844 /* function exit code */
55845 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
55846 goto __pyx_L0;
55847 __pyx_L1_error:;
55848 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
55849 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
55850 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
55851 __Pyx_AddTraceback("rados.Object.seek", __pyx_clineno, __pyx_lineno, __pyx_filename);
55852 __pyx_r = NULL((void*)0);
55853 __pyx_L0:;
55854 __Pyx_XGIVEREF(__pyx_r);
55855 __Pyx_RefNannyFinishContext();
55856 return __pyx_r;
55857}
55858
55859/* "rados.pyx":4095
55860 * @set_object_locator
55861 * @set_object_namespace
55862 * def get_xattr(self, xattr_name): # <<<<<<<<<<<<<<
55863 * self.require_object_exists()
55864 * return self.ioctx.get_xattr(self.key, xattr_name)
55865 */
55866
55867/* Python wrapper */
55868static PyObject *__pyx_pw_5rados_6Object_17get_xattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
55869static char __pyx_doc_5rados_6Object_16get_xattr[] = "Object.get_xattr(self, xattr_name)";
55870static PyMethodDef __pyx_mdef_5rados_6Object_17get_xattr = {"get_xattr", (PyCFunction)__pyx_pw_5rados_6Object_17get_xattr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6Object_16get_xattr};
55871static PyObject *__pyx_pw_5rados_6Object_17get_xattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
55872 PyObject *__pyx_v_self = 0;
55873 PyObject *__pyx_v_xattr_name = 0;
55874 int __pyx_lineno = 0;
55875 const char *__pyx_filename = NULL((void*)0);
55876 int __pyx_clineno = 0;
55877 PyObject *__pyx_r = 0;
55878 __Pyx_RefNannyDeclarations
55879 __Pyx_RefNannySetupContext("get_xattr (wrapper)", 0);
55880 {
55881 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_xattr_name,0};
55882 PyObject* values[2] = {0,0};
55883 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
55884 Py_ssize_t kw_args;
55885 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
55886 switch (pos_args) {
55887 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55888 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55889 case 0: break;
55890 default: goto __pyx_L5_argtuple_error;
55891 }
55892 kw_args = PyDict_Size(__pyx_kwds);
55893 switch (pos_args) {
55894 case 0:
55895 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
55896 else goto __pyx_L5_argtuple_error;
55897 case 1:
55898 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name
)) != 0), 1)
) kw_args--;
55899 else {
55900 __Pyx_RaiseArgtupleInvalid("get_xattr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4095; __pyx_clineno = __LINE__55900; goto __pyx_L3_error;}
55901 }
55902 }
55903 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
55904 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get_xattr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "get_xattr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4095; __pyx_clineno = __LINE__55904; goto __pyx_L3_error;}
55905 }
55906 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
55907 goto __pyx_L5_argtuple_error;
55908 } else {
55909 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
55910 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
55911 }
55912 __pyx_v_self = values[0];
55913 __pyx_v_xattr_name = values[1];
55914 }
55915 goto __pyx_L4_argument_unpacking_done;
55916 __pyx_L5_argtuple_error:;
55917 __Pyx_RaiseArgtupleInvalid("get_xattr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4095; __pyx_clineno = __LINE__55917; goto __pyx_L3_error;}
55918 __pyx_L3_error:;
55919 __Pyx_AddTraceback("rados.Object.get_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
55920 __Pyx_RefNannyFinishContext();
55921 return NULL((void*)0);
55922 __pyx_L4_argument_unpacking_done:;
55923 __pyx_r = __pyx_pf_5rados_6Object_16get_xattr(__pyx_self, __pyx_v_self, __pyx_v_xattr_name);
55924
55925 /* function exit code */
55926 __Pyx_RefNannyFinishContext();
55927 return __pyx_r;
55928}
55929
55930static PyObject *__pyx_pf_5rados_6Object_16get_xattr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xattr_name) {
55931 PyObject *__pyx_r = NULL((void*)0);
55932 __Pyx_RefNannyDeclarations
55933 PyObject *__pyx_t_1 = NULL((void*)0);
55934 PyObject *__pyx_t_2 = NULL((void*)0);
55935 PyObject *__pyx_t_3 = NULL((void*)0);
55936 PyObject *__pyx_t_4 = NULL((void*)0);
55937 Py_ssize_t __pyx_t_5;
55938 PyObject *__pyx_t_6 = NULL((void*)0);
55939 int __pyx_lineno = 0;
55940 const char *__pyx_filename = NULL((void*)0);
55941 int __pyx_clineno = 0;
55942 __Pyx_RefNannySetupContext("get_xattr", 0);
55943
55944 /* "rados.pyx":4096
55945 * @set_object_namespace
55946 * def get_xattr(self, xattr_name):
55947 * self.require_object_exists() # <<<<<<<<<<<<<<
55948 * return self.ioctx.get_xattr(self.key, xattr_name)
55949 *
55950 */
55951 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4096; __pyx_clineno = __LINE__55951; goto __pyx_L1_error;}
55952 __Pyx_GOTREF(__pyx_t_2);
55953 __pyx_t_3 = NULL((void*)0);
55954 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
55955 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
55956 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
55957 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
55958 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
55959 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55960 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55961 }
55962 }
55963 if (__pyx_t_3) {
55964 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4096; __pyx_clineno = __LINE__55964; goto __pyx_L1_error;}
55965 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
55966 } else {
55967 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4096; __pyx_clineno = __LINE__55967; goto __pyx_L1_error;}
55968 }
55969 __Pyx_GOTREF(__pyx_t_1);
55970 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55971 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
55972
55973 /* "rados.pyx":4097
55974 * def get_xattr(self, xattr_name):
55975 * self.require_object_exists()
55976 * return self.ioctx.get_xattr(self.key, xattr_name) # <<<<<<<<<<<<<<
55977 *
55978 * @set_object_locator
55979 */
55980 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
55981 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4097; __pyx_clineno = __LINE__55981; goto __pyx_L1_error;}
55982 __Pyx_GOTREF(__pyx_t_2);
55983 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_xattr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4097; __pyx_clineno = __LINE__55983; goto __pyx_L1_error;}
55984 __Pyx_GOTREF(__pyx_t_3);
55985 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
55986 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4097; __pyx_clineno = __LINE__55986; goto __pyx_L1_error;}
55987 __Pyx_GOTREF(__pyx_t_2);
55988 __pyx_t_4 = NULL((void*)0);
55989 __pyx_t_5 = 0;
55990 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
55991 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
55992 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
55993 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
55994 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
55995 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
55996 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
55997 __pyx_t_5 = 1;
55998 }
55999 }
56000 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4097; __pyx_clineno = __LINE__56000; goto __pyx_L1_error;}
56001 __Pyx_GOTREF(__pyx_t_6);
56002 if (__pyx_t_4) {
56003 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
56004 }
56005 __Pyx_GIVEREF(__pyx_t_2);
56006 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
56007 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
56008 __Pyx_GIVEREF(__pyx_v_xattr_name);
56009 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_xattr_name)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_xattr_name
)
;
56010 __pyx_t_2 = 0;
56011 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4097; __pyx_clineno = __LINE__56011; goto __pyx_L1_error;}
56012 __Pyx_GOTREF(__pyx_t_1);
56013 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
56014 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56015 __pyx_r = __pyx_t_1;
56016 __pyx_t_1 = 0;
56017 goto __pyx_L0;
56018
56019 /* "rados.pyx":4095
56020 * @set_object_locator
56021 * @set_object_namespace
56022 * def get_xattr(self, xattr_name): # <<<<<<<<<<<<<<
56023 * self.require_object_exists()
56024 * return self.ioctx.get_xattr(self.key, xattr_name)
56025 */
56026
56027 /* function exit code */
56028 __pyx_L1_error:;
56029 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
56030 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
56031 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
56032 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
56033 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
56034 __Pyx_AddTraceback("rados.Object.get_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
56035 __pyx_r = NULL((void*)0);
56036 __pyx_L0:;
56037 __Pyx_XGIVEREF(__pyx_r);
56038 __Pyx_RefNannyFinishContext();
56039 return __pyx_r;
56040}
56041
56042/* "rados.pyx":4101
56043 * @set_object_locator
56044 * @set_object_namespace
56045 * def get_xattrs(self): # <<<<<<<<<<<<<<
56046 * self.require_object_exists()
56047 * return self.ioctx.get_xattrs(self.key)
56048 */
56049
56050/* Python wrapper */
56051static PyObject *__pyx_pw_5rados_6Object_19get_xattrs(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
56052static char __pyx_doc_5rados_6Object_18get_xattrs[] = "Object.get_xattrs(self)";
56053static PyMethodDef __pyx_mdef_5rados_6Object_19get_xattrs = {"get_xattrs", (PyCFunction)__pyx_pw_5rados_6Object_19get_xattrs, METH_O0x0008, __pyx_doc_5rados_6Object_18get_xattrs};
56054static PyObject *__pyx_pw_5rados_6Object_19get_xattrs(PyObject *__pyx_self, PyObject *__pyx_v_self) {
56055 PyObject *__pyx_r = 0;
56056 __Pyx_RefNannyDeclarations
56057 __Pyx_RefNannySetupContext("get_xattrs (wrapper)", 0);
56058 __pyx_r = __pyx_pf_5rados_6Object_18get_xattrs(__pyx_self, ((PyObject *)__pyx_v_self));
56059
56060 /* function exit code */
56061 __Pyx_RefNannyFinishContext();
56062 return __pyx_r;
56063}
56064
56065static PyObject *__pyx_pf_5rados_6Object_18get_xattrs(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self) {
56066 PyObject *__pyx_r = NULL((void*)0);
56067 __Pyx_RefNannyDeclarations
56068 PyObject *__pyx_t_1 = NULL((void*)0);
56069 PyObject *__pyx_t_2 = NULL((void*)0);
56070 PyObject *__pyx_t_3 = NULL((void*)0);
56071 PyObject *__pyx_t_4 = NULL((void*)0);
56072 PyObject *__pyx_t_5 = NULL((void*)0);
56073 int __pyx_lineno = 0;
56074 const char *__pyx_filename = NULL((void*)0);
56075 int __pyx_clineno = 0;
56076 __Pyx_RefNannySetupContext("get_xattrs", 0);
56077
56078 /* "rados.pyx":4102
56079 * @set_object_namespace
56080 * def get_xattrs(self):
56081 * self.require_object_exists() # <<<<<<<<<<<<<<
56082 * return self.ioctx.get_xattrs(self.key)
56083 *
56084 */
56085 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4102; __pyx_clineno = __LINE__56085; goto __pyx_L1_error;}
56086 __Pyx_GOTREF(__pyx_t_2);
56087 __pyx_t_3 = NULL((void*)0);
56088 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
56089 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
56090 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
56091 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
56092 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
56093 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
56094 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
56095 }
56096 }
56097 if (__pyx_t_3) {
56098 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4102; __pyx_clineno = __LINE__56098; goto __pyx_L1_error;}
56099 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56100 } else {
56101 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4102; __pyx_clineno = __LINE__56101; goto __pyx_L1_error;}
56102 }
56103 __Pyx_GOTREF(__pyx_t_1);
56104 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56105 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
56106
56107 /* "rados.pyx":4103
56108 * def get_xattrs(self):
56109 * self.require_object_exists()
56110 * return self.ioctx.get_xattrs(self.key) # <<<<<<<<<<<<<<
56111 *
56112 * @set_object_locator
56113 */
56114 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
56115 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4103; __pyx_clineno = __LINE__56115; goto __pyx_L1_error;}
56116 __Pyx_GOTREF(__pyx_t_2);
56117 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get_xattrs); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4103; __pyx_clineno = __LINE__56117; goto __pyx_L1_error;}
56118 __Pyx_GOTREF(__pyx_t_3);
56119 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56120 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4103; __pyx_clineno = __LINE__56120; goto __pyx_L1_error;}
56121 __Pyx_GOTREF(__pyx_t_2);
56122 __pyx_t_4 = NULL((void*)0);
56123 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
56124 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
56125 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
56126 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
56127 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
56128 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
56129 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
56130 }
56131 }
56132 if (!__pyx_t_4) {
56133 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4103; __pyx_clineno = __LINE__56133; goto __pyx_L1_error;}
56134 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56135 __Pyx_GOTREF(__pyx_t_1);
56136 } else {
56137 __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4103; __pyx_clineno = __LINE__56137; goto __pyx_L1_error;}
56138 __Pyx_GOTREF(__pyx_t_5);
56139 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
56140 __Pyx_GIVEREF(__pyx_t_2);
56141 PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_t_2)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+1] = __pyx_t_2);
56142 __pyx_t_2 = 0;
56143 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4103; __pyx_clineno = __LINE__56143; goto __pyx_L1_error;}
56144 __Pyx_GOTREF(__pyx_t_1);
56145 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
56146 }
56147 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56148 __pyx_r = __pyx_t_1;
56149 __pyx_t_1 = 0;
56150 goto __pyx_L0;
56151
56152 /* "rados.pyx":4101
56153 * @set_object_locator
56154 * @set_object_namespace
56155 * def get_xattrs(self): # <<<<<<<<<<<<<<
56156 * self.require_object_exists()
56157 * return self.ioctx.get_xattrs(self.key)
56158 */
56159
56160 /* function exit code */
56161 __pyx_L1_error:;
56162 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
56163 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
56164 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
56165 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
56166 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
56167 __Pyx_AddTraceback("rados.Object.get_xattrs", __pyx_clineno, __pyx_lineno, __pyx_filename);
56168 __pyx_r = NULL((void*)0);
56169 __pyx_L0:;
56170 __Pyx_XGIVEREF(__pyx_r);
56171 __Pyx_RefNannyFinishContext();
56172 return __pyx_r;
56173}
56174
56175/* "rados.pyx":4107
56176 * @set_object_locator
56177 * @set_object_namespace
56178 * def set_xattr(self, xattr_name, xattr_value): # <<<<<<<<<<<<<<
56179 * self.require_object_exists()
56180 * return self.ioctx.set_xattr(self.key, xattr_name, xattr_value)
56181 */
56182
56183/* Python wrapper */
56184static PyObject *__pyx_pw_5rados_6Object_21set_xattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56185static char __pyx_doc_5rados_6Object_20set_xattr[] = "Object.set_xattr(self, xattr_name, xattr_value)";
56186static PyMethodDef __pyx_mdef_5rados_6Object_21set_xattr = {"set_xattr", (PyCFunction)__pyx_pw_5rados_6Object_21set_xattr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6Object_20set_xattr};
56187static PyObject *__pyx_pw_5rados_6Object_21set_xattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56188 PyObject *__pyx_v_self = 0;
56189 PyObject *__pyx_v_xattr_name = 0;
56190 PyObject *__pyx_v_xattr_value = 0;
56191 int __pyx_lineno = 0;
56192 const char *__pyx_filename = NULL((void*)0);
56193 int __pyx_clineno = 0;
56194 PyObject *__pyx_r = 0;
56195 __Pyx_RefNannyDeclarations
56196 __Pyx_RefNannySetupContext("set_xattr (wrapper)", 0);
56197 {
56198 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_xattr_name,&__pyx_n_s_xattr_value,0};
56199 PyObject* values[3] = {0,0,0};
56200 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
56201 Py_ssize_t kw_args;
56202 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
56203 switch (pos_args) {
56204 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
56205 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
56206 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
56207 case 0: break;
56208 default: goto __pyx_L5_argtuple_error;
56209 }
56210 kw_args = PyDict_Size(__pyx_kwds);
56211 switch (pos_args) {
56212 case 0:
56213 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
56214 else goto __pyx_L5_argtuple_error;
56215 case 1:
56216 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name
)) != 0), 1)
) kw_args--;
56217 else {
56218 __Pyx_RaiseArgtupleInvalid("set_xattr", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__56218; goto __pyx_L3_error;}
56219 }
56220 case 2:
56221 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_value)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_value
)) != 0), 1)
) kw_args--;
56222 else {
56223 __Pyx_RaiseArgtupleInvalid("set_xattr", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__56223; goto __pyx_L3_error;}
56224 }
56225 }
56226 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
56227 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_xattr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "set_xattr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__56227; goto __pyx_L3_error;}
56228 }
56229 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 3) {
56230 goto __pyx_L5_argtuple_error;
56231 } else {
56232 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
56233 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
56234 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
56235 }
56236 __pyx_v_self = values[0];
56237 __pyx_v_xattr_name = values[1];
56238 __pyx_v_xattr_value = values[2];
56239 }
56240 goto __pyx_L4_argument_unpacking_done;
56241 __pyx_L5_argtuple_error:;
56242 __Pyx_RaiseArgtupleInvalid("set_xattr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__56242; goto __pyx_L3_error;}
56243 __pyx_L3_error:;
56244 __Pyx_AddTraceback("rados.Object.set_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
56245 __Pyx_RefNannyFinishContext();
56246 return NULL((void*)0);
56247 __pyx_L4_argument_unpacking_done:;
56248 __pyx_r = __pyx_pf_5rados_6Object_20set_xattr(__pyx_self, __pyx_v_self, __pyx_v_xattr_name, __pyx_v_xattr_value);
56249
56250 /* function exit code */
56251 __Pyx_RefNannyFinishContext();
56252 return __pyx_r;
56253}
56254
56255static PyObject *__pyx_pf_5rados_6Object_20set_xattr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xattr_name, PyObject *__pyx_v_xattr_value) {
56256 PyObject *__pyx_r = NULL((void*)0);
56257 __Pyx_RefNannyDeclarations
56258 PyObject *__pyx_t_1 = NULL((void*)0);
56259 PyObject *__pyx_t_2 = NULL((void*)0);
56260 PyObject *__pyx_t_3 = NULL((void*)0);
56261 PyObject *__pyx_t_4 = NULL((void*)0);
56262 Py_ssize_t __pyx_t_5;
56263 PyObject *__pyx_t_6 = NULL((void*)0);
56264 int __pyx_lineno = 0;
56265 const char *__pyx_filename = NULL((void*)0);
56266 int __pyx_clineno = 0;
56267 __Pyx_RefNannySetupContext("set_xattr", 0);
56268
56269 /* "rados.pyx":4108
56270 * @set_object_namespace
56271 * def set_xattr(self, xattr_name, xattr_value):
56272 * self.require_object_exists() # <<<<<<<<<<<<<<
56273 * return self.ioctx.set_xattr(self.key, xattr_name, xattr_value)
56274 *
56275 */
56276 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4108; __pyx_clineno = __LINE__56276; goto __pyx_L1_error;}
56277 __Pyx_GOTREF(__pyx_t_2);
56278 __pyx_t_3 = NULL((void*)0);
56279 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
56280 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
56281 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
56282 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
56283 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
56284 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
56285 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
56286 }
56287 }
56288 if (__pyx_t_3) {
56289 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4108; __pyx_clineno = __LINE__56289; goto __pyx_L1_error;}
56290 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56291 } else {
56292 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4108; __pyx_clineno = __LINE__56292; goto __pyx_L1_error;}
56293 }
56294 __Pyx_GOTREF(__pyx_t_1);
56295 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56296 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
56297
56298 /* "rados.pyx":4109
56299 * def set_xattr(self, xattr_name, xattr_value):
56300 * self.require_object_exists()
56301 * return self.ioctx.set_xattr(self.key, xattr_name, xattr_value) # <<<<<<<<<<<<<<
56302 *
56303 * @set_object_locator
56304 */
56305 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
56306 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4109; __pyx_clineno = __LINE__56306; goto __pyx_L1_error;}
56307 __Pyx_GOTREF(__pyx_t_2);
56308 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_set_xattr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4109; __pyx_clineno = __LINE__56308; goto __pyx_L1_error;}
56309 __Pyx_GOTREF(__pyx_t_3);
56310 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56311 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4109; __pyx_clineno = __LINE__56311; goto __pyx_L1_error;}
56312 __Pyx_GOTREF(__pyx_t_2);
56313 __pyx_t_4 = NULL((void*)0);
56314 __pyx_t_5 = 0;
56315 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
56316 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
56317 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
56318 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
56319 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
56320 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
56321 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
56322 __pyx_t_5 = 1;
56323 }
56324 }
56325 __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4109; __pyx_clineno = __LINE__56325; goto __pyx_L1_error;}
56326 __Pyx_GOTREF(__pyx_t_6);
56327 if (__pyx_t_4) {
56328 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
56329 }
56330 __Pyx_GIVEREF(__pyx_t_2);
56331 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
56332 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
56333 __Pyx_GIVEREF(__pyx_v_xattr_name);
56334 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_xattr_name)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_xattr_name
)
;
56335 __Pyx_INCREF(__pyx_v_xattr_value)( ((PyObject*)(__pyx_v_xattr_value))->ob_refcnt++);
56336 __Pyx_GIVEREF(__pyx_v_xattr_value);
56337 PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_xattr_value)(((PyTupleObject *)(__pyx_t_6))->ob_item[2+__pyx_t_5] = __pyx_v_xattr_value
)
;
56338 __pyx_t_2 = 0;
56339 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4109; __pyx_clineno = __LINE__56339; goto __pyx_L1_error;}
56340 __Pyx_GOTREF(__pyx_t_1);
56341 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
56342 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56343 __pyx_r = __pyx_t_1;
56344 __pyx_t_1 = 0;
56345 goto __pyx_L0;
56346
56347 /* "rados.pyx":4107
56348 * @set_object_locator
56349 * @set_object_namespace
56350 * def set_xattr(self, xattr_name, xattr_value): # <<<<<<<<<<<<<<
56351 * self.require_object_exists()
56352 * return self.ioctx.set_xattr(self.key, xattr_name, xattr_value)
56353 */
56354
56355 /* function exit code */
56356 __pyx_L1_error:;
56357 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
56358 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
56359 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
56360 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
56361 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
56362 __Pyx_AddTraceback("rados.Object.set_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
56363 __pyx_r = NULL((void*)0);
56364 __pyx_L0:;
56365 __Pyx_XGIVEREF(__pyx_r);
56366 __Pyx_RefNannyFinishContext();
56367 return __pyx_r;
56368}
56369
56370/* "rados.pyx":4113
56371 * @set_object_locator
56372 * @set_object_namespace
56373 * def rm_xattr(self, xattr_name): # <<<<<<<<<<<<<<
56374 * self.require_object_exists()
56375 * return self.ioctx.rm_xattr(self.key, xattr_name)
56376 */
56377
56378/* Python wrapper */
56379static PyObject *__pyx_pw_5rados_6Object_23rm_xattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56380static char __pyx_doc_5rados_6Object_22rm_xattr[] = "Object.rm_xattr(self, xattr_name)";
56381static PyMethodDef __pyx_mdef_5rados_6Object_23rm_xattr = {"rm_xattr", (PyCFunction)__pyx_pw_5rados_6Object_23rm_xattr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6Object_22rm_xattr};
56382static PyObject *__pyx_pw_5rados_6Object_23rm_xattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56383 PyObject *__pyx_v_self = 0;
56384 PyObject *__pyx_v_xattr_name = 0;
56385 int __pyx_lineno = 0;
56386 const char *__pyx_filename = NULL((void*)0);
56387 int __pyx_clineno = 0;
56388 PyObject *__pyx_r = 0;
56389 __Pyx_RefNannyDeclarations
56390 __Pyx_RefNannySetupContext("rm_xattr (wrapper)", 0);
56391 {
56392 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_xattr_name,0};
56393 PyObject* values[2] = {0,0};
56394 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
56395 Py_ssize_t kw_args;
56396 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
56397 switch (pos_args) {
56398 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
56399 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
56400 case 0: break;
56401 default: goto __pyx_L5_argtuple_error;
56402 }
56403 kw_args = PyDict_Size(__pyx_kwds);
56404 switch (pos_args) {
56405 case 0:
56406 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
56407 else goto __pyx_L5_argtuple_error;
56408 case 1:
56409 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_xattr_name
)) != 0), 1)
) kw_args--;
56410 else {
56411 __Pyx_RaiseArgtupleInvalid("rm_xattr", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4113; __pyx_clineno = __LINE__56411; goto __pyx_L3_error;}
56412 }
56413 }
56414 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
56415 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rm_xattr") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "rm_xattr") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4113; __pyx_clineno = __LINE__56415; goto __pyx_L3_error;}
56416 }
56417 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 2) {
56418 goto __pyx_L5_argtuple_error;
56419 } else {
56420 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
56421 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
56422 }
56423 __pyx_v_self = values[0];
56424 __pyx_v_xattr_name = values[1];
56425 }
56426 goto __pyx_L4_argument_unpacking_done;
56427 __pyx_L5_argtuple_error:;
56428 __Pyx_RaiseArgtupleInvalid("rm_xattr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4113; __pyx_clineno = __LINE__56428; goto __pyx_L3_error;}
56429 __pyx_L3_error:;
56430 __Pyx_AddTraceback("rados.Object.rm_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
56431 __Pyx_RefNannyFinishContext();
56432 return NULL((void*)0);
56433 __pyx_L4_argument_unpacking_done:;
56434 __pyx_r = __pyx_pf_5rados_6Object_22rm_xattr(__pyx_self, __pyx_v_self, __pyx_v_xattr_name);
56435
56436 /* function exit code */
56437 __Pyx_RefNannyFinishContext();
56438 return __pyx_r;
56439}
56440
56441static PyObject *__pyx_pf_5rados_6Object_22rm_xattr(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_xattr_name) {
56442 PyObject *__pyx_r = NULL((void*)0);
56443 __Pyx_RefNannyDeclarations
56444 PyObject *__pyx_t_1 = NULL((void*)0);
56445 PyObject *__pyx_t_2 = NULL((void*)0);
56446 PyObject *__pyx_t_3 = NULL((void*)0);
56447 PyObject *__pyx_t_4 = NULL((void*)0);
56448 Py_ssize_t __pyx_t_5;
56449 PyObject *__pyx_t_6 = NULL((void*)0);
56450 int __pyx_lineno = 0;
56451 const char *__pyx_filename = NULL((void*)0);
56452 int __pyx_clineno = 0;
56453 __Pyx_RefNannySetupContext("rm_xattr", 0);
56454
56455 /* "rados.pyx":4114
56456 * @set_object_namespace
56457 * def rm_xattr(self, xattr_name):
56458 * self.require_object_exists() # <<<<<<<<<<<<<<
56459 * return self.ioctx.rm_xattr(self.key, xattr_name)
56460 *
56461 */
56462 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_object_exists); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4114; __pyx_clineno = __LINE__56462; goto __pyx_L1_error;}
56463 __Pyx_GOTREF(__pyx_t_2);
56464 __pyx_t_3 = NULL((void*)0);
56465 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_2))__builtin_expect(!!(((__pyx_t_2)->ob_type == &PyMethod_Type
)), 1)
) {
56466 __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_self);
56467 if (likely(__pyx_t_3)__builtin_expect(!!(__pyx_t_3), 1)) {
56468 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2)(((PyMethodObject *)__pyx_t_2) -> im_func);
56469 __Pyx_INCREF(__pyx_t_3)( ((PyObject*)(__pyx_t_3))->ob_refcnt++);
56470 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
56471 __Pyx_DECREF_SET(__pyx_t_2, function)do { PyObject *tmp = (PyObject *) __pyx_t_2; __pyx_t_2 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
56472 }
56473 }
56474 if (__pyx_t_3) {
56475 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4114; __pyx_clineno = __LINE__56475; goto __pyx_L1_error;}
56476 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56477 } else {
56478 __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4114; __pyx_clineno = __LINE__56478; goto __pyx_L1_error;}
56479 }
56480 __Pyx_GOTREF(__pyx_t_1);
56481 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56482 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
56483
56484 /* "rados.pyx":4115
56485 * def rm_xattr(self, xattr_name):
56486 * self.require_object_exists()
56487 * return self.ioctx.rm_xattr(self.key, xattr_name) # <<<<<<<<<<<<<<
56488 *
56489 * MONITOR_LEVELS = [
56490 */
56491 __Pyx_XDECREF(__pyx_r)do { if ((__pyx_r) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_r))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(__pyx_r)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(__pyx_r)))); } while (0); } while (0)
;
56492 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ioctx); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4115; __pyx_clineno = __LINE__56492; goto __pyx_L1_error;}
56493 __Pyx_GOTREF(__pyx_t_2);
56494 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_rm_xattr); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4115; __pyx_clineno = __LINE__56494; goto __pyx_L1_error;}
56495 __Pyx_GOTREF(__pyx_t_3);
56496 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56497 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_key); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4115; __pyx_clineno = __LINE__56497; goto __pyx_L1_error;}
56498 __Pyx_GOTREF(__pyx_t_2);
56499 __pyx_t_4 = NULL((void*)0);
56500 __pyx_t_5 = 0;
56501 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
56502 __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
56503 if (likely(__pyx_t_4)__builtin_expect(!!(__pyx_t_4), 1)) {
56504 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
56505 __Pyx_INCREF(__pyx_t_4)( ((PyObject*)(__pyx_t_4))->ob_refcnt++);
56506 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
56507 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
56508 __pyx_t_5 = 1;
56509 }
56510 }
56511 __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)__builtin_expect(!!(!__pyx_t_6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4115; __pyx_clineno = __LINE__56511; goto __pyx_L1_error;}
56512 __Pyx_GOTREF(__pyx_t_6);
56513 if (__pyx_t_4) {
56514 __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4)(((PyTupleObject *)(__pyx_t_6))->ob_item[0] = __pyx_t_4); __pyx_t_4 = NULL((void*)0);
56515 }
56516 __Pyx_GIVEREF(__pyx_t_2);
56517 PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_2)(((PyTupleObject *)(__pyx_t_6))->ob_item[0+__pyx_t_5] = __pyx_t_2
)
;
56518 __Pyx_INCREF(__pyx_v_xattr_name)( ((PyObject*)(__pyx_v_xattr_name))->ob_refcnt++);
56519 __Pyx_GIVEREF(__pyx_v_xattr_name);
56520 PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_xattr_name)(((PyTupleObject *)(__pyx_t_6))->ob_item[1+__pyx_t_5] = __pyx_v_xattr_name
)
;
56521 __pyx_t_2 = 0;
56522 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4115; __pyx_clineno = __LINE__56522; goto __pyx_L1_error;}
56523 __Pyx_GOTREF(__pyx_t_1);
56524 __Pyx_DECREF(__pyx_t_6)do { if ( --((PyObject*)(__pyx_t_6))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_6)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_6)))); } while (
0)
; __pyx_t_6 = 0;
56525 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56526 __pyx_r = __pyx_t_1;
56527 __pyx_t_1 = 0;
56528 goto __pyx_L0;
56529
56530 /* "rados.pyx":4113
56531 * @set_object_locator
56532 * @set_object_namespace
56533 * def rm_xattr(self, xattr_name): # <<<<<<<<<<<<<<
56534 * self.require_object_exists()
56535 * return self.ioctx.rm_xattr(self.key, xattr_name)
56536 */
56537
56538 /* function exit code */
56539 __pyx_L1_error:;
56540 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
56541 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
56542 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
56543 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
;
56544 __Pyx_XDECREF(__pyx_t_6)do { if ((__pyx_t_6) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_6))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_6)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_6)))); } while (0); } while (0)
;
56545 __Pyx_AddTraceback("rados.Object.rm_xattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
56546 __pyx_r = NULL((void*)0);
56547 __pyx_L0:;
56548 __Pyx_XGIVEREF(__pyx_r);
56549 __Pyx_RefNannyFinishContext();
56550 return __pyx_r;
56551}
56552
56553/* "rados.pyx":4146
56554 * callback's return value is ignored
56555 * """
56556 * def __init__(self, cluster, level, callback, arg): # <<<<<<<<<<<<<<
56557 * self.level = level
56558 * self.callback = callback
56559 */
56560
56561/* Python wrapper */
56562static PyObject *__pyx_pw_5rados_10MonitorLog_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
56563static char __pyx_doc_5rados_10MonitorLog___init__[] = "MonitorLog.__init__(self, cluster, level, callback, arg)";
56564static PyMethodDef __pyx_mdef_5rados_10MonitorLog_1__init__ = {"__init__", (PyCFunction)__pyx_pw_5rados_10MonitorLog_1__init__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_10MonitorLog___init__};
56565static PyObject *__pyx_pw_5rados_10MonitorLog_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
56566 PyObject *__pyx_v_self = 0;
56567 PyObject *__pyx_v_cluster = 0;
56568 PyObject *__pyx_v_level = 0;
56569 PyObject *__pyx_v_callback = 0;
56570 PyObject *__pyx_v_arg = 0;
56571 int __pyx_lineno = 0;
56572 const char *__pyx_filename = NULL((void*)0);
56573 int __pyx_clineno = 0;
56574 PyObject *__pyx_r = 0;
56575 __Pyx_RefNannyDeclarations
56576 __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
56577 {
56578 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_cluster,&__pyx_n_s_level,&__pyx_n_s_callback,&__pyx_n_s_arg,0};
56579 PyObject* values[5] = {0,0,0,0,0};
56580 if (unlikely(__pyx_kwds)__builtin_expect(!!(__pyx_kwds), 0)) {
56581 Py_ssize_t kw_args;
56582 const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size);
56583 switch (pos_args) {
56584 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
56585 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
56586 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
56587 case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
56588 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
56589 case 0: break;
56590 default: goto __pyx_L5_argtuple_error;
56591 }
56592 kw_args = PyDict_Size(__pyx_kwds);
56593 switch (pos_args) {
56594 case 0:
56595 if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self)) != 0)__builtin_expect(!!((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_self
)) != 0), 1)
) kw_args--;
56596 else goto __pyx_L5_argtuple_error;
56597 case 1:
56598 if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cluster)) != 0)__builtin_expect(!!((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_cluster
)) != 0), 1)
) kw_args--;
56599 else {
56600 __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__56600; goto __pyx_L3_error;}
56601 }
56602 case 2:
56603 if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level)) != 0)__builtin_expect(!!((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_level
)) != 0), 1)
) kw_args--;
56604 else {
56605 __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__56605; goto __pyx_L3_error;}
56606 }
56607 case 3:
56608 if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_callback)) != 0)__builtin_expect(!!((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_callback
)) != 0), 1)
) kw_args--;
56609 else {
56610 __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__56610; goto __pyx_L3_error;}
56611 }
56612 case 4:
56613 if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg)) != 0)__builtin_expect(!!((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_arg
)) != 0), 1)
) kw_args--;
56614 else {
56615 __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__56615; goto __pyx_L3_error;}
56616 }
56617 }
56618 if (unlikely(kw_args > 0)__builtin_expect(!!(kw_args > 0), 0)) {
56619 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)__builtin_expect(!!(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames
, 0, values, pos_args, "__init__") < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__56619; goto __pyx_L3_error;}
56620 }
56621 } else if (PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size) != 5) {
56622 goto __pyx_L5_argtuple_error;
56623 } else {
56624 values[0] = PyTuple_GET_ITEM(__pyx_args, 0)(((PyTupleObject *)(__pyx_args))->ob_item[0]);
56625 values[1] = PyTuple_GET_ITEM(__pyx_args, 1)(((PyTupleObject *)(__pyx_args))->ob_item[1]);
56626 values[2] = PyTuple_GET_ITEM(__pyx_args, 2)(((PyTupleObject *)(__pyx_args))->ob_item[2]);
56627 values[3] = PyTuple_GET_ITEM(__pyx_args, 3)(((PyTupleObject *)(__pyx_args))->ob_item[3]);
56628 values[4] = PyTuple_GET_ITEM(__pyx_args, 4)(((PyTupleObject *)(__pyx_args))->ob_item[4]);
56629 }
56630 __pyx_v_self = values[0];
56631 __pyx_v_cluster = values[1];
56632 __pyx_v_level = values[2];
56633 __pyx_v_callback = values[3];
56634 __pyx_v_arg = values[4];
56635 }
56636 goto __pyx_L4_argument_unpacking_done;
56637 __pyx_L5_argtuple_error:;
56638 __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)(((PyVarObject*)(__pyx_args))->ob_size)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__56638; goto __pyx_L3_error;}
56639 __pyx_L3_error:;
56640 __Pyx_AddTraceback("rados.MonitorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
56641 __Pyx_RefNannyFinishContext();
56642 return NULL((void*)0);
56643 __pyx_L4_argument_unpacking_done:;
56644 __pyx_r = __pyx_pf_5rados_10MonitorLog___init__(__pyx_self, __pyx_v_self, __pyx_v_cluster, __pyx_v_level, __pyx_v_callback, __pyx_v_arg);
56645
56646 /* function exit code */
56647 __Pyx_RefNannyFinishContext();
56648 return __pyx_r;
56649}
56650
56651static PyObject *__pyx_pf_5rados_10MonitorLog___init__(CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_cluster, PyObject *__pyx_v_level, PyObject *__pyx_v_callback, PyObject *__pyx_v_arg) {
56652 PyObject *__pyx_r = NULL((void*)0);
56653 __Pyx_RefNannyDeclarations
56654 PyObject *__pyx_t_1 = NULL((void*)0);
56655 PyObject *__pyx_t_2 = NULL((void*)0);
56656 PyObject *__pyx_t_3 = NULL((void*)0);
56657 Py_ssize_t __pyx_t_4;
56658 PyObject *__pyx_t_5 = NULL((void*)0);
56659 int __pyx_lineno = 0;
56660 const char *__pyx_filename = NULL((void*)0);
56661 int __pyx_clineno = 0;
56662 __Pyx_RefNannySetupContext("__init__", 0);
56663
56664 /* "rados.pyx":4147
56665 * """
56666 * def __init__(self, cluster, level, callback, arg):
56667 * self.level = level # <<<<<<<<<<<<<<
56668 * self.callback = callback
56669 * self.arg = arg
56670 */
56671 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_level, __pyx_v_level) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4147; __pyx_clineno = __LINE__56671; goto __pyx_L1_error;}
56672
56673 /* "rados.pyx":4148
56674 * def __init__(self, cluster, level, callback, arg):
56675 * self.level = level
56676 * self.callback = callback # <<<<<<<<<<<<<<
56677 * self.arg = arg
56678 * self.cluster = cluster
56679 */
56680 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_callback, __pyx_v_callback) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4148; __pyx_clineno = __LINE__56680; goto __pyx_L1_error;}
56681
56682 /* "rados.pyx":4149
56683 * self.level = level
56684 * self.callback = callback
56685 * self.arg = arg # <<<<<<<<<<<<<<
56686 * self.cluster = cluster
56687 * self.cluster.monitor_log(level, callback, arg)
56688 */
56689 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_arg, __pyx_v_arg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4149; __pyx_clineno = __LINE__56689; goto __pyx_L1_error;}
56690
56691 /* "rados.pyx":4150
56692 * self.callback = callback
56693 * self.arg = arg
56694 * self.cluster = cluster # <<<<<<<<<<<<<<
56695 * self.cluster.monitor_log(level, callback, arg)
56696 *
56697 */
56698 if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cluster, __pyx_v_cluster) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4150; __pyx_clineno = __LINE__56698; goto __pyx_L1_error;}
56699
56700 /* "rados.pyx":4151
56701 * self.arg = arg
56702 * self.cluster = cluster
56703 * self.cluster.monitor_log(level, callback, arg) # <<<<<<<<<<<<<<
56704 *
56705 */
56706 __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cluster); if (unlikely(!__pyx_t_2)__builtin_expect(!!(!__pyx_t_2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4151; __pyx_clineno = __LINE__56706; goto __pyx_L1_error;}
56707 __Pyx_GOTREF(__pyx_t_2);
56708 __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_monitor_log); if (unlikely(!__pyx_t_3)__builtin_expect(!!(!__pyx_t_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4151; __pyx_clineno = __LINE__56708; goto __pyx_L1_error;}
56709 __Pyx_GOTREF(__pyx_t_3);
56710 __Pyx_DECREF(__pyx_t_2)do { if ( --((PyObject*)(__pyx_t_2))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_2)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_2)))); } while (
0)
; __pyx_t_2 = 0;
56711 __pyx_t_2 = NULL((void*)0);
56712 __pyx_t_4 = 0;
56713 if (CYTHON_COMPILING_IN_CPYTHON1 && likely(PyMethod_Check(__pyx_t_3))__builtin_expect(!!(((__pyx_t_3)->ob_type == &PyMethod_Type
)), 1)
) {
56714 __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_self);
56715 if (likely(__pyx_t_2)__builtin_expect(!!(__pyx_t_2), 1)) {
56716 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3)(((PyMethodObject *)__pyx_t_3) -> im_func);
56717 __Pyx_INCREF(__pyx_t_2)( ((PyObject*)(__pyx_t_2))->ob_refcnt++);
56718 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
56719 __Pyx_DECREF_SET(__pyx_t_3, function)do { PyObject *tmp = (PyObject *) __pyx_t_3; __pyx_t_3 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
56720 __pyx_t_4 = 1;
56721 }
56722 }
56723 __pyx_t_5 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4151; __pyx_clineno = __LINE__56723; goto __pyx_L1_error;}
56724 __Pyx_GOTREF(__pyx_t_5);
56725 if (__pyx_t_2) {
56726 __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2)(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = __pyx_t_2); __pyx_t_2 = NULL((void*)0);
56727 }
56728 __Pyx_INCREF(__pyx_v_level)( ((PyObject*)(__pyx_v_level))->ob_refcnt++);
56729 __Pyx_GIVEREF(__pyx_v_level);
56730 PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_level)(((PyTupleObject *)(__pyx_t_5))->ob_item[0+__pyx_t_4] = __pyx_v_level
)
;
56731 __Pyx_INCREF(__pyx_v_callback)( ((PyObject*)(__pyx_v_callback))->ob_refcnt++);
56732 __Pyx_GIVEREF(__pyx_v_callback);
56733 PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_callback)(((PyTupleObject *)(__pyx_t_5))->ob_item[1+__pyx_t_4] = __pyx_v_callback
)
;
56734 __Pyx_INCREF(__pyx_v_arg)( ((PyObject*)(__pyx_v_arg))->ob_refcnt++);
56735 __Pyx_GIVEREF(__pyx_v_arg);
56736 PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_arg)(((PyTupleObject *)(__pyx_t_5))->ob_item[2+__pyx_t_4] = __pyx_v_arg
)
;
56737 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4151; __pyx_clineno = __LINE__56737; goto __pyx_L1_error;}
56738 __Pyx_GOTREF(__pyx_t_1);
56739 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
56740 __Pyx_DECREF(__pyx_t_3)do { if ( --((PyObject*)(__pyx_t_3))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_3)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_3)))); } while (
0)
; __pyx_t_3 = 0;
56741 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
56742
56743 /* "rados.pyx":4146
56744 * callback's return value is ignored
56745 * """
56746 * def __init__(self, cluster, level, callback, arg): # <<<<<<<<<<<<<<
56747 * self.level = level
56748 * self.callback = callback
56749 */
56750
56751 /* function exit code */
56752 __pyx_r = Py_None(&_Py_NoneStruct); __Pyx_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56753 goto __pyx_L0;
56754 __pyx_L1_error:;
56755 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
56756 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
;
56757 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
;
56758 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
56759 __Pyx_AddTraceback("rados.MonitorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
56760 __pyx_r = NULL((void*)0);
56761 __pyx_L0:;
56762 __Pyx_XGIVEREF(__pyx_r);
56763 __Pyx_RefNannyFinishContext();
56764 return __pyx_r;
56765}
56766
56767static PyObject *__pyx_tp_new_5rados_Rados(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
56768 struct __pyx_obj_5rados_Rados *p;
56769 PyObject *o;
56770 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
56771 o = (*t->tp_alloc)(t, 0);
56772 } else {
56773 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
56774 }
56775 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
56776 p = ((struct __pyx_obj_5rados_Rados *)o);
56777 p->state = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56778 p->monitor_callback = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56779 p->monitor_callback2 = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56780 p->parsed_args = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56781 p->conf_defaults = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56782 p->conffile = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56783 p->rados_id = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56784 return o;
56785}
56786
56787static void __pyx_tp_dealloc_5rados_Rados(PyObject *o) {
56788 struct __pyx_obj_5rados_Rados *p = (struct __pyx_obj_5rados_Rados *)o;
56789 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
56790 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
56791 if (PyObject_CallFinalizerFromDealloc(o)) return;
56792 }
56793 #endif
56794 PyObject_GC_UnTrack(o);
56795 Py_CLEAR(p->state)do { if (p->state) { PyObject *_py_tmp = (PyObject *)(p->
state); (p->state) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
56796 Py_CLEAR(p->monitor_callback)do { if (p->monitor_callback) { PyObject *_py_tmp = (PyObject
*)(p->monitor_callback); (p->monitor_callback) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
56797 Py_CLEAR(p->monitor_callback2)do { if (p->monitor_callback2) { PyObject *_py_tmp = (PyObject
*)(p->monitor_callback2); (p->monitor_callback2) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
56798 Py_CLEAR(p->parsed_args)do { if (p->parsed_args) { PyObject *_py_tmp = (PyObject *
)(p->parsed_args); (p->parsed_args) = ((void*)0); do { if
( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*((
(PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
56799 Py_CLEAR(p->conf_defaults)do { if (p->conf_defaults) { PyObject *_py_tmp = (PyObject
*)(p->conf_defaults); (p->conf_defaults) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
56800 Py_CLEAR(p->conffile)do { if (p->conffile) { PyObject *_py_tmp = (PyObject *)(p
->conffile); (p->conffile) = ((void*)0); do { if ( --((
PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
56801 Py_CLEAR(p->rados_id)do { if (p->rados_id) { PyObject *_py_tmp = (PyObject *)(p
->rados_id); (p->rados_id) = ((void*)0); do { if ( --((
PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
56802 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
56803}
56804
56805static int __pyx_tp_traverse_5rados_Rados(PyObject *o, visitproc v, void *a) {
56806 int e;
56807 struct __pyx_obj_5rados_Rados *p = (struct __pyx_obj_5rados_Rados *)o;
56808 if (p->state) {
56809 e = (*v)(p->state, a); if (e) return e;
56810 }
56811 if (p->monitor_callback) {
56812 e = (*v)(p->monitor_callback, a); if (e) return e;
56813 }
56814 if (p->monitor_callback2) {
56815 e = (*v)(p->monitor_callback2, a); if (e) return e;
56816 }
56817 if (p->parsed_args) {
56818 e = (*v)(p->parsed_args, a); if (e) return e;
56819 }
56820 if (p->conf_defaults) {
56821 e = (*v)(p->conf_defaults, a); if (e) return e;
56822 }
56823 if (p->conffile) {
56824 e = (*v)(p->conffile, a); if (e) return e;
56825 }
56826 if (p->rados_id) {
56827 e = (*v)(p->rados_id, a); if (e) return e;
56828 }
56829 return 0;
56830}
56831
56832static int __pyx_tp_clear_5rados_Rados(PyObject *o) {
56833 PyObject* tmp;
56834 struct __pyx_obj_5rados_Rados *p = (struct __pyx_obj_5rados_Rados *)o;
56835 tmp = ((PyObject*)p->state);
56836 p->state = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56837 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
56838 tmp = ((PyObject*)p->monitor_callback);
56839 p->monitor_callback = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56840 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
56841 tmp = ((PyObject*)p->monitor_callback2);
56842 p->monitor_callback2 = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56843 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
56844 tmp = ((PyObject*)p->parsed_args);
56845 p->parsed_args = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56846 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
56847 tmp = ((PyObject*)p->conf_defaults);
56848 p->conf_defaults = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56849 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
56850 tmp = ((PyObject*)p->conffile);
56851 p->conffile = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56852 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
56853 tmp = ((PyObject*)p->rados_id);
56854 p->rados_id = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
56855 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
56856 return 0;
56857}
56858
56859static PyObject *__pyx_getprop_5rados_5Rados_state(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56860 return __pyx_pw_5rados_5Rados_5state_1__get__(o);
56861}
56862
56863static int __pyx_setprop_5rados_5Rados_state(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56864 if (v) {
56865 return __pyx_pw_5rados_5Rados_5state_3__set__(o, v);
56866 }
56867 else {
56868 return __pyx_pw_5rados_5Rados_5state_5__del__(o);
56869 }
56870}
56871
56872static PyObject *__pyx_getprop_5rados_5Rados_monitor_callback(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56873 return __pyx_pw_5rados_5Rados_16monitor_callback_1__get__(o);
56874}
56875
56876static int __pyx_setprop_5rados_5Rados_monitor_callback(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56877 if (v) {
56878 return __pyx_pw_5rados_5Rados_16monitor_callback_3__set__(o, v);
56879 }
56880 else {
56881 return __pyx_pw_5rados_5Rados_16monitor_callback_5__del__(o);
56882 }
56883}
56884
56885static PyObject *__pyx_getprop_5rados_5Rados_monitor_callback2(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56886 return __pyx_pw_5rados_5Rados_17monitor_callback2_1__get__(o);
56887}
56888
56889static int __pyx_setprop_5rados_5Rados_monitor_callback2(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56890 if (v) {
56891 return __pyx_pw_5rados_5Rados_17monitor_callback2_3__set__(o, v);
56892 }
56893 else {
56894 return __pyx_pw_5rados_5Rados_17monitor_callback2_5__del__(o);
56895 }
56896}
56897
56898static PyObject *__pyx_getprop_5rados_5Rados_parsed_args(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56899 return __pyx_pw_5rados_5Rados_11parsed_args_1__get__(o);
56900}
56901
56902static int __pyx_setprop_5rados_5Rados_parsed_args(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56903 if (v) {
56904 return __pyx_pw_5rados_5Rados_11parsed_args_3__set__(o, v);
56905 }
56906 else {
56907 return __pyx_pw_5rados_5Rados_11parsed_args_5__del__(o);
56908 }
56909}
56910
56911static PyObject *__pyx_getprop_5rados_5Rados_conf_defaults(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56912 return __pyx_pw_5rados_5Rados_13conf_defaults_1__get__(o);
56913}
56914
56915static int __pyx_setprop_5rados_5Rados_conf_defaults(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56916 if (v) {
56917 return __pyx_pw_5rados_5Rados_13conf_defaults_3__set__(o, v);
56918 }
56919 else {
56920 return __pyx_pw_5rados_5Rados_13conf_defaults_5__del__(o);
56921 }
56922}
56923
56924static PyObject *__pyx_getprop_5rados_5Rados_conffile(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56925 return __pyx_pw_5rados_5Rados_8conffile_1__get__(o);
56926}
56927
56928static int __pyx_setprop_5rados_5Rados_conffile(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56929 if (v) {
56930 return __pyx_pw_5rados_5Rados_8conffile_3__set__(o, v);
56931 }
56932 else {
56933 return __pyx_pw_5rados_5Rados_8conffile_5__del__(o);
56934 }
56935}
56936
56937static PyObject *__pyx_getprop_5rados_5Rados_rados_id(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56938 return __pyx_pw_5rados_5Rados_8rados_id_1__get__(o);
56939}
56940
56941static int __pyx_setprop_5rados_5Rados_rados_id(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
56942 if (v) {
56943 return __pyx_pw_5rados_5Rados_8rados_id_3__set__(o, v);
56944 }
56945 else {
56946 return __pyx_pw_5rados_5Rados_8rados_id_5__del__(o);
56947 }
56948}
56949
56950static PyMethodDef __pyx_methods_5rados_Rados[] = {
56951 {"__setup", (PyCFunction)__pyx_pw_5rados_5Rados_3__setup, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_2__setup},
56952 {"require_state", (PyCFunction)__pyx_pw_5rados_5Rados_5require_state, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_4require_state},
56953 {"shutdown", (PyCFunction)__pyx_pw_5rados_5Rados_7shutdown, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_6shutdown},
56954 {"__enter__", (PyCFunction)__pyx_pw_5rados_5Rados_9__enter__, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_8__enter__},
56955 {"__exit__", (PyCFunction)__pyx_pw_5rados_5Rados_11__exit__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_10__exit__},
56956 {"version", (PyCFunction)__pyx_pw_5rados_5Rados_13version, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_12version},
56957 {"conf_read_file", (PyCFunction)__pyx_pw_5rados_5Rados_15conf_read_file, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_14conf_read_file},
56958 {"conf_parse_argv", (PyCFunction)__pyx_pw_5rados_5Rados_17conf_parse_argv, METH_O0x0008, __pyx_doc_5rados_5Rados_16conf_parse_argv},
56959 {"conf_parse_env", (PyCFunction)__pyx_pw_5rados_5Rados_19conf_parse_env, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_18conf_parse_env},
56960 {"conf_get", (PyCFunction)__pyx_pw_5rados_5Rados_21conf_get, METH_O0x0008, __pyx_doc_5rados_5Rados_20conf_get},
56961 {"conf_set", (PyCFunction)__pyx_pw_5rados_5Rados_23conf_set, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_22conf_set},
56962 {"ping_monitor", (PyCFunction)__pyx_pw_5rados_5Rados_25ping_monitor, METH_O0x0008, __pyx_doc_5rados_5Rados_24ping_monitor},
56963 {"connect", (PyCFunction)__pyx_pw_5rados_5Rados_27connect, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_26connect},
56964 {"get_instance_id", (PyCFunction)__pyx_pw_5rados_5Rados_29get_instance_id, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_28get_instance_id},
56965 {"get_cluster_stats", (PyCFunction)__pyx_pw_5rados_5Rados_31get_cluster_stats, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_30get_cluster_stats},
56966 {"pool_exists", (PyCFunction)__pyx_pw_5rados_5Rados_33pool_exists, METH_O0x0008, __pyx_doc_5rados_5Rados_32pool_exists},
56967 {"pool_lookup", (PyCFunction)__pyx_pw_5rados_5Rados_35pool_lookup, METH_O0x0008, __pyx_doc_5rados_5Rados_34pool_lookup},
56968 {"pool_reverse_lookup", (PyCFunction)__pyx_pw_5rados_5Rados_37pool_reverse_lookup, METH_O0x0008, __pyx_doc_5rados_5Rados_36pool_reverse_lookup},
56969 {"create_pool", (PyCFunction)__pyx_pw_5rados_5Rados_39create_pool, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_38create_pool},
56970 {"get_pool_base_tier", (PyCFunction)__pyx_pw_5rados_5Rados_41get_pool_base_tier, METH_O0x0008, __pyx_doc_5rados_5Rados_40get_pool_base_tier},
56971 {"delete_pool", (PyCFunction)__pyx_pw_5rados_5Rados_43delete_pool, METH_O0x0008, __pyx_doc_5rados_5Rados_42delete_pool},
56972 {"get_inconsistent_pgs", (PyCFunction)__pyx_pw_5rados_5Rados_45get_inconsistent_pgs, METH_O0x0008, __pyx_doc_5rados_5Rados_44get_inconsistent_pgs},
56973 {"list_pools", (PyCFunction)__pyx_pw_5rados_5Rados_47list_pools, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_46list_pools},
56974 {"get_fsid", (PyCFunction)__pyx_pw_5rados_5Rados_49get_fsid, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_48get_fsid},
56975 {"open_ioctx", (PyCFunction)__pyx_pw_5rados_5Rados_51open_ioctx, METH_O0x0008, __pyx_doc_5rados_5Rados_50open_ioctx},
56976 {"open_ioctx2", (PyCFunction)__pyx_pw_5rados_5Rados_53open_ioctx2, METH_O0x0008, __pyx_doc_5rados_5Rados_52open_ioctx2},
56977 {"mon_command", (PyCFunction)__pyx_pw_5rados_5Rados_55mon_command, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_54mon_command},
56978 {"osd_command", (PyCFunction)__pyx_pw_5rados_5Rados_57osd_command, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_56osd_command},
56979 {"mgr_command", (PyCFunction)__pyx_pw_5rados_5Rados_59mgr_command, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_58mgr_command},
56980 {"pg_command", (PyCFunction)__pyx_pw_5rados_5Rados_61pg_command, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_60pg_command},
56981 {"wait_for_latest_osdmap", (PyCFunction)__pyx_pw_5rados_5Rados_63wait_for_latest_osdmap, METH_NOARGS0x0004, __pyx_doc_5rados_5Rados_62wait_for_latest_osdmap},
56982 {"blacklist_add", (PyCFunction)__pyx_pw_5rados_5Rados_65blacklist_add, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_64blacklist_add},
56983 {"monitor_log", (PyCFunction)__pyx_pw_5rados_5Rados_67monitor_log, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_66monitor_log},
56984 {"monitor_log2", (PyCFunction)__pyx_pw_5rados_5Rados_69monitor_log2, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_68monitor_log2},
56985 {"service_daemon_register", (PyCFunction)__pyx_pw_5rados_5Rados_71service_daemon_register, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Rados_70service_daemon_register},
56986 {"service_daemon_update", (PyCFunction)__pyx_pw_5rados_5Rados_73service_daemon_update, METH_O0x0008, __pyx_doc_5rados_5Rados_72service_daemon_update},
56987 {0, 0, 0, 0}
56988};
56989
56990static struct PyGetSetDef __pyx_getsets_5rados_Rados[] = {
56991 {(char *)"state", __pyx_getprop_5rados_5Rados_state, __pyx_setprop_5rados_5Rados_state, __pyx_k_state_object, 0},
56992 {(char *)"monitor_callback", __pyx_getprop_5rados_5Rados_monitor_callback, __pyx_setprop_5rados_5Rados_monitor_callback, __pyx_k_monitor_callback_object, 0},
56993 {(char *)"monitor_callback2", __pyx_getprop_5rados_5Rados_monitor_callback2, __pyx_setprop_5rados_5Rados_monitor_callback2, __pyx_k_monitor_callback2_object, 0},
56994 {(char *)"parsed_args", __pyx_getprop_5rados_5Rados_parsed_args, __pyx_setprop_5rados_5Rados_parsed_args, __pyx_k_parsed_args_object, 0},
56995 {(char *)"conf_defaults", __pyx_getprop_5rados_5Rados_conf_defaults, __pyx_setprop_5rados_5Rados_conf_defaults, __pyx_k_conf_defaults_object, 0},
56996 {(char *)"conffile", __pyx_getprop_5rados_5Rados_conffile, __pyx_setprop_5rados_5Rados_conffile, __pyx_k_conffile_object, 0},
56997 {(char *)"rados_id", __pyx_getprop_5rados_5Rados_rados_id, __pyx_setprop_5rados_5Rados_rados_id, __pyx_k_rados_id_object, 0},
56998 {0, 0, 0, 0, 0}
56999};
57000
57001static PyTypeObject __pyx_type_5rados_Rados = {
57002 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
57003 "rados.Rados", /*tp_name*/
57004 sizeof(struct __pyx_obj_5rados_Rados), /*tp_basicsize*/
57005 0, /*tp_itemsize*/
57006 __pyx_tp_dealloc_5rados_Rados, /*tp_dealloc*/
57007 0, /*tp_print*/
57008 0, /*tp_getattr*/
57009 0, /*tp_setattr*/
57010 #if PY_MAJOR_VERSION2 < 3
57011 0, /*tp_compare*/
57012 #endif
57013 #if PY_MAJOR_VERSION2 >= 3
57014 0, /*tp_as_async*/
57015 #endif
57016 0, /*tp_repr*/
57017 0, /*tp_as_number*/
57018 0, /*tp_as_sequence*/
57019 0, /*tp_as_mapping*/
57020 0, /*tp_hash*/
57021 0, /*tp_call*/
57022 0, /*tp_str*/
57023 0, /*tp_getattro*/
57024 0, /*tp_setattro*/
57025 0, /*tp_as_buffer*/
57026 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
57027 "Rados(*args, **kwargs)\nThis class wraps librados functions", /*tp_doc*/
57028 __pyx_tp_traverse_5rados_Rados, /*tp_traverse*/
57029 __pyx_tp_clear_5rados_Rados, /*tp_clear*/
57030 0, /*tp_richcompare*/
57031 0, /*tp_weaklistoffset*/
57032 0, /*tp_iter*/
57033 0, /*tp_iternext*/
57034 __pyx_methods_5rados_Rados, /*tp_methods*/
57035 0, /*tp_members*/
57036 __pyx_getsets_5rados_Rados, /*tp_getset*/
57037 0, /*tp_base*/
57038 0, /*tp_dict*/
57039 0, /*tp_descr_get*/
57040 0, /*tp_descr_set*/
57041 0, /*tp_dictoffset*/
57042 __pyx_pw_5rados_5Rados_1__init__, /*tp_init*/
57043 0, /*tp_alloc*/
57044 __pyx_tp_new_5rados_Rados, /*tp_new*/
57045 0, /*tp_free*/
57046 0, /*tp_is_gc*/
57047 0, /*tp_bases*/
57048 0, /*tp_mro*/
57049 0, /*tp_cache*/
57050 0, /*tp_subclasses*/
57051 0, /*tp_weaklist*/
57052 0, /*tp_del*/
57053 0, /*tp_version_tag*/
57054 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57055 0, /*tp_finalize*/
57056 #endif
57057};
57058
57059static PyObject *__pyx_tp_new_5rados_Ioctx(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
57060 struct __pyx_obj_5rados_Ioctx *p;
57061 PyObject *o;
57062 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
57063 o = (*t->tp_alloc)(t, 0);
57064 } else {
57065 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
57066 }
57067 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
57068 p = ((struct __pyx_obj_5rados_Ioctx *)o);
57069 p->name = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57070 p->state = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57071 p->locator_key = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57072 p->nspace = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57073 p->safe_completions = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57074 p->complete_completions = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57075 p->lock = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57076 return o;
57077}
57078
57079static void __pyx_tp_dealloc_5rados_Ioctx(PyObject *o) {
57080 struct __pyx_obj_5rados_Ioctx *p = (struct __pyx_obj_5rados_Ioctx *)o;
57081 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57082 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
57083 if (PyObject_CallFinalizerFromDealloc(o)) return;
57084 }
57085 #endif
57086 PyObject_GC_UnTrack(o);
57087 {
57088 PyObject *etype, *eval, *etb;
57089 PyErr_Fetch(&etype, &eval, &etb);
57090 ++Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57091 __pyx_pw_5rados_5Ioctx_7__dealloc__(o);
57092 --Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57093 PyErr_Restore(etype, eval, etb);
57094 }
57095 Py_CLEAR(p->name)do { if (p->name) { PyObject *_py_tmp = (PyObject *)(p->
name); (p->name) = ((void*)0); do { if ( --((PyObject*)(_py_tmp
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57096 Py_CLEAR(p->state)do { if (p->state) { PyObject *_py_tmp = (PyObject *)(p->
state); (p->state) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57097 Py_CLEAR(p->locator_key)do { if (p->locator_key) { PyObject *_py_tmp = (PyObject *
)(p->locator_key); (p->locator_key) = ((void*)0); do { if
( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*((
(PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
57098 Py_CLEAR(p->nspace)do { if (p->nspace) { PyObject *_py_tmp = (PyObject *)(p->
nspace); (p->nspace) = ((void*)0); do { if ( --((PyObject*
)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57099 Py_CLEAR(p->safe_completions)do { if (p->safe_completions) { PyObject *_py_tmp = (PyObject
*)(p->safe_completions); (p->safe_completions) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
57100 Py_CLEAR(p->complete_completions)do { if (p->complete_completions) { PyObject *_py_tmp = (PyObject
*)(p->complete_completions); (p->complete_completions)
= ((void*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt
!= 0) ; else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while
(0); } } while (0)
;
57101 Py_CLEAR(p->lock)do { if (p->lock) { PyObject *_py_tmp = (PyObject *)(p->
lock); (p->lock) = ((void*)0); do { if ( --((PyObject*)(_py_tmp
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57102 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
57103}
57104
57105static int __pyx_tp_traverse_5rados_Ioctx(PyObject *o, visitproc v, void *a) {
57106 int e;
57107 struct __pyx_obj_5rados_Ioctx *p = (struct __pyx_obj_5rados_Ioctx *)o;
57108 if (p->name) {
57109 e = (*v)(p->name, a); if (e) return e;
57110 }
57111 if (p->state) {
57112 e = (*v)(p->state, a); if (e) return e;
57113 }
57114 if (p->locator_key) {
57115 e = (*v)(p->locator_key, a); if (e) return e;
57116 }
57117 if (p->nspace) {
57118 e = (*v)(p->nspace, a); if (e) return e;
57119 }
57120 if (p->safe_completions) {
57121 e = (*v)(p->safe_completions, a); if (e) return e;
57122 }
57123 if (p->complete_completions) {
57124 e = (*v)(p->complete_completions, a); if (e) return e;
57125 }
57126 if (p->lock) {
57127 e = (*v)(p->lock, a); if (e) return e;
57128 }
57129 return 0;
57130}
57131
57132static int __pyx_tp_clear_5rados_Ioctx(PyObject *o) {
57133 PyObject* tmp;
57134 struct __pyx_obj_5rados_Ioctx *p = (struct __pyx_obj_5rados_Ioctx *)o;
57135 tmp = ((PyObject*)p->name);
57136 p->name = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57137 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57138 tmp = ((PyObject*)p->state);
57139 p->state = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57140 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57141 tmp = ((PyObject*)p->locator_key);
57142 p->locator_key = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57143 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57144 tmp = ((PyObject*)p->nspace);
57145 p->nspace = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57146 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57147 tmp = ((PyObject*)p->safe_completions);
57148 p->safe_completions = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57149 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57150 tmp = ((PyObject*)p->complete_completions);
57151 p->complete_completions = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57152 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57153 tmp = ((PyObject*)p->lock);
57154 p->lock = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57155 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57156 return 0;
57157}
57158
57159static PyObject *__pyx_getprop_5rados_5Ioctx_name(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57160 return __pyx_pw_5rados_5Ioctx_4name_1__get__(o);
57161}
57162
57163static int __pyx_setprop_5rados_5Ioctx_name(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57164 if (v) {
57165 return __pyx_pw_5rados_5Ioctx_4name_3__set__(o, v);
57166 }
57167 else {
57168 return __pyx_pw_5rados_5Ioctx_4name_5__del__(o);
57169 }
57170}
57171
57172static PyObject *__pyx_getprop_5rados_5Ioctx_state(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57173 return __pyx_pw_5rados_5Ioctx_5state_1__get__(o);
57174}
57175
57176static int __pyx_setprop_5rados_5Ioctx_state(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57177 if (v) {
57178 return __pyx_pw_5rados_5Ioctx_5state_3__set__(o, v);
57179 }
57180 else {
57181 return __pyx_pw_5rados_5Ioctx_5state_5__del__(o);
57182 }
57183}
57184
57185static PyObject *__pyx_getprop_5rados_5Ioctx_locator_key(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57186 return __pyx_pw_5rados_5Ioctx_11locator_key_1__get__(o);
57187}
57188
57189static int __pyx_setprop_5rados_5Ioctx_locator_key(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57190 if (v) {
57191 return __pyx_pw_5rados_5Ioctx_11locator_key_3__set__(o, v);
57192 }
57193 else {
57194 return __pyx_pw_5rados_5Ioctx_11locator_key_5__del__(o);
57195 }
57196}
57197
57198static PyObject *__pyx_getprop_5rados_5Ioctx_nspace(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57199 return __pyx_pw_5rados_5Ioctx_6nspace_1__get__(o);
57200}
57201
57202static int __pyx_setprop_5rados_5Ioctx_nspace(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57203 if (v) {
57204 return __pyx_pw_5rados_5Ioctx_6nspace_3__set__(o, v);
57205 }
57206 else {
57207 return __pyx_pw_5rados_5Ioctx_6nspace_5__del__(o);
57208 }
57209}
57210
57211static PyObject *__pyx_getprop_5rados_5Ioctx_safe_completions(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57212 return __pyx_pw_5rados_5Ioctx_16safe_completions_1__get__(o);
57213}
57214
57215static int __pyx_setprop_5rados_5Ioctx_safe_completions(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57216 if (v) {
57217 return __pyx_pw_5rados_5Ioctx_16safe_completions_3__set__(o, v);
57218 }
57219 else {
57220 return __pyx_pw_5rados_5Ioctx_16safe_completions_5__del__(o);
57221 }
57222}
57223
57224static PyObject *__pyx_getprop_5rados_5Ioctx_complete_completions(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57225 return __pyx_pw_5rados_5Ioctx_20complete_completions_1__get__(o);
57226}
57227
57228static int __pyx_setprop_5rados_5Ioctx_complete_completions(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57229 if (v) {
57230 return __pyx_pw_5rados_5Ioctx_20complete_completions_3__set__(o, v);
57231 }
57232 else {
57233 return __pyx_pw_5rados_5Ioctx_20complete_completions_5__del__(o);
57234 }
57235}
57236
57237static PyObject *__pyx_getprop_5rados_5Ioctx_lock(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57238 return __pyx_pw_5rados_5Ioctx_4lock_1__get__(o);
57239}
57240
57241static int __pyx_setprop_5rados_5Ioctx_lock(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57242 if (v) {
57243 return __pyx_pw_5rados_5Ioctx_4lock_3__set__(o, v);
57244 }
57245 else {
57246 return __pyx_pw_5rados_5Ioctx_4lock_5__del__(o);
57247 }
57248}
57249
57250static PyMethodDef __pyx_methods_5rados_Ioctx[] = {
57251 {"__enter__", (PyCFunction)__pyx_pw_5rados_5Ioctx_3__enter__, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_2__enter__},
57252 {"__exit__", (PyCFunction)__pyx_pw_5rados_5Ioctx_5__exit__, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_4__exit__},
57253 {"__track_completion", (PyCFunction)__pyx_pw_5rados_5Ioctx_9__track_completion, METH_O0x0008, __pyx_doc_5rados_5Ioctx_8__track_completion},
57254 {"__get_completion", (PyCFunction)__pyx_pw_5rados_5Ioctx_11__get_completion, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_10__get_completion},
57255 {"aio_stat", (PyCFunction)__pyx_pw_5rados_5Ioctx_13aio_stat, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_12aio_stat},
57256 {"aio_write", (PyCFunction)__pyx_pw_5rados_5Ioctx_15aio_write, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_14aio_write},
57257 {"aio_write_full", (PyCFunction)__pyx_pw_5rados_5Ioctx_17aio_write_full, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_16aio_write_full},
57258 {"aio_append", (PyCFunction)__pyx_pw_5rados_5Ioctx_19aio_append, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_18aio_append},
57259 {"aio_flush", (PyCFunction)__pyx_pw_5rados_5Ioctx_21aio_flush, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_20aio_flush},
57260 {"aio_read", (PyCFunction)__pyx_pw_5rados_5Ioctx_23aio_read, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_22aio_read},
57261 {"aio_execute", (PyCFunction)__pyx_pw_5rados_5Ioctx_25aio_execute, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_24aio_execute},
57262 {"aio_remove", (PyCFunction)__pyx_pw_5rados_5Ioctx_27aio_remove, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_26aio_remove},
57263 {"require_ioctx_open", (PyCFunction)__pyx_pw_5rados_5Ioctx_29require_ioctx_open, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_28require_ioctx_open},
57264 {"set_locator_key", (PyCFunction)__pyx_pw_5rados_5Ioctx_31set_locator_key, METH_O0x0008, __pyx_doc_5rados_5Ioctx_30set_locator_key},
57265 {"get_locator_key", (PyCFunction)__pyx_pw_5rados_5Ioctx_33get_locator_key, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_32get_locator_key},
57266 {"set_read", (PyCFunction)__pyx_pw_5rados_5Ioctx_35set_read, METH_O0x0008, __pyx_doc_5rados_5Ioctx_34set_read},
57267 {"set_namespace", (PyCFunction)__pyx_pw_5rados_5Ioctx_37set_namespace, METH_O0x0008, __pyx_doc_5rados_5Ioctx_36set_namespace},
57268 {"get_namespace", (PyCFunction)__pyx_pw_5rados_5Ioctx_39get_namespace, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_38get_namespace},
57269 {"close", (PyCFunction)__pyx_pw_5rados_5Ioctx_41close, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_40close},
57270 {"write", (PyCFunction)__pyx_pw_5rados_5Ioctx_43write, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_42write},
57271 {"write_full", (PyCFunction)__pyx_pw_5rados_5Ioctx_45write_full, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_44write_full},
57272 {"append", (PyCFunction)__pyx_pw_5rados_5Ioctx_47append, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_46append},
57273 {"read", (PyCFunction)__pyx_pw_5rados_5Ioctx_49read, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_48read},
57274 {"execute", (PyCFunction)__pyx_pw_5rados_5Ioctx_51execute, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_50execute},
57275 {"get_stats", (PyCFunction)__pyx_pw_5rados_5Ioctx_53get_stats, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_52get_stats},
57276 {"remove_object", (PyCFunction)__pyx_pw_5rados_5Ioctx_55remove_object, METH_O0x0008, __pyx_doc_5rados_5Ioctx_54remove_object},
57277 {"trunc", (PyCFunction)__pyx_pw_5rados_5Ioctx_57trunc, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_56trunc},
57278 {"stat", (PyCFunction)__pyx_pw_5rados_5Ioctx_59stat, METH_O0x0008, __pyx_doc_5rados_5Ioctx_58stat},
57279 {"get_xattr", (PyCFunction)__pyx_pw_5rados_5Ioctx_61get_xattr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_60get_xattr},
57280 {"get_xattrs", (PyCFunction)__pyx_pw_5rados_5Ioctx_63get_xattrs, METH_O0x0008, __pyx_doc_5rados_5Ioctx_62get_xattrs},
57281 {"set_xattr", (PyCFunction)__pyx_pw_5rados_5Ioctx_65set_xattr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_64set_xattr},
57282 {"rm_xattr", (PyCFunction)__pyx_pw_5rados_5Ioctx_67rm_xattr, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_66rm_xattr},
57283 {"notify", (PyCFunction)__pyx_pw_5rados_5Ioctx_69notify, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_68notify},
57284 {"list_objects", (PyCFunction)__pyx_pw_5rados_5Ioctx_71list_objects, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_70list_objects},
57285 {"list_snaps", (PyCFunction)__pyx_pw_5rados_5Ioctx_73list_snaps, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_72list_snaps},
57286 {"create_snap", (PyCFunction)__pyx_pw_5rados_5Ioctx_75create_snap, METH_O0x0008, __pyx_doc_5rados_5Ioctx_74create_snap},
57287 {"remove_snap", (PyCFunction)__pyx_pw_5rados_5Ioctx_77remove_snap, METH_O0x0008, __pyx_doc_5rados_5Ioctx_76remove_snap},
57288 {"lookup_snap", (PyCFunction)__pyx_pw_5rados_5Ioctx_79lookup_snap, METH_O0x0008, __pyx_doc_5rados_5Ioctx_78lookup_snap},
57289 {"snap_rollback", (PyCFunction)__pyx_pw_5rados_5Ioctx_81snap_rollback, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_80snap_rollback},
57290 {"create_self_managed_snap", (PyCFunction)__pyx_pw_5rados_5Ioctx_83create_self_managed_snap, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_82create_self_managed_snap},
57291 {"remove_self_managed_snap", (PyCFunction)__pyx_pw_5rados_5Ioctx_85remove_self_managed_snap, METH_O0x0008, __pyx_doc_5rados_5Ioctx_84remove_self_managed_snap},
57292 {"set_self_managed_snap_write", (PyCFunction)__pyx_pw_5rados_5Ioctx_87set_self_managed_snap_write, METH_O0x0008, __pyx_doc_5rados_5Ioctx_86set_self_managed_snap_write},
57293 {"rollback_self_managed_snap", (PyCFunction)__pyx_pw_5rados_5Ioctx_89rollback_self_managed_snap, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_88rollback_self_managed_snap},
57294 {"get_last_version", (PyCFunction)__pyx_pw_5rados_5Ioctx_91get_last_version, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_90get_last_version},
57295 {"create_write_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_93create_write_op, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_92create_write_op},
57296 {"create_read_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_95create_read_op, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_94create_read_op},
57297 {"release_write_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_97release_write_op, METH_O0x0008, __pyx_doc_5rados_5Ioctx_96release_write_op},
57298 {"release_read_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_99release_read_op, METH_O0x0008, __pyx_doc_5rados_5Ioctx_98release_read_op},
57299 {"set_omap", (PyCFunction)__pyx_pw_5rados_5Ioctx_101set_omap, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_100set_omap},
57300 {"operate_write_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_103operate_write_op, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_102operate_write_op},
57301 {"operate_aio_write_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_105operate_aio_write_op, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_104operate_aio_write_op},
57302 {"operate_read_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_107operate_read_op, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_106operate_read_op},
57303 {"operate_aio_read_op", (PyCFunction)__pyx_pw_5rados_5Ioctx_109operate_aio_read_op, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_108operate_aio_read_op},
57304 {"get_omap_vals", (PyCFunction)__pyx_pw_5rados_5Ioctx_111get_omap_vals, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_110get_omap_vals},
57305 {"get_omap_keys", (PyCFunction)__pyx_pw_5rados_5Ioctx_113get_omap_keys, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_112get_omap_keys},
57306 {"get_omap_vals_by_keys", (PyCFunction)__pyx_pw_5rados_5Ioctx_115get_omap_vals_by_keys, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_114get_omap_vals_by_keys},
57307 {"remove_omap_keys", (PyCFunction)__pyx_pw_5rados_5Ioctx_117remove_omap_keys, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_116remove_omap_keys},
57308 {"clear_omap", (PyCFunction)__pyx_pw_5rados_5Ioctx_119clear_omap, METH_O0x0008, __pyx_doc_5rados_5Ioctx_118clear_omap},
57309 {"lock_exclusive", (PyCFunction)__pyx_pw_5rados_5Ioctx_121lock_exclusive, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_120lock_exclusive},
57310 {"lock_shared", (PyCFunction)__pyx_pw_5rados_5Ioctx_123lock_shared, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_122lock_shared},
57311 {"unlock", (PyCFunction)__pyx_pw_5rados_5Ioctx_125unlock, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_124unlock},
57312 {"set_osdmap_full_try", (PyCFunction)__pyx_pw_5rados_5Ioctx_127set_osdmap_full_try, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_126set_osdmap_full_try},
57313 {"unset_osdmap_full_try", (PyCFunction)__pyx_pw_5rados_5Ioctx_129unset_osdmap_full_try, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_128unset_osdmap_full_try},
57314 {"application_enable", (PyCFunction)__pyx_pw_5rados_5Ioctx_131application_enable, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_130application_enable},
57315 {"application_list", (PyCFunction)__pyx_pw_5rados_5Ioctx_133application_list, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_132application_list},
57316 {"application_metadata_set", (PyCFunction)__pyx_pw_5rados_5Ioctx_135application_metadata_set, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_134application_metadata_set},
57317 {"application_metadata_remove", (PyCFunction)__pyx_pw_5rados_5Ioctx_137application_metadata_remove, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_5Ioctx_136application_metadata_remove},
57318 {"application_metadata_list", (PyCFunction)__pyx_pw_5rados_5Ioctx_139application_metadata_list, METH_O0x0008, __pyx_doc_5rados_5Ioctx_138application_metadata_list},
57319 {"alignment", (PyCFunction)__pyx_pw_5rados_5Ioctx_141alignment, METH_NOARGS0x0004, __pyx_doc_5rados_5Ioctx_140alignment},
57320 {0, 0, 0, 0}
57321};
57322
57323static struct PyGetSetDef __pyx_getsets_5rados_Ioctx[] = {
57324 {(char *)"name", __pyx_getprop_5rados_5Ioctx_name, __pyx_setprop_5rados_5Ioctx_name, __pyx_k_name_object, 0},
57325 {(char *)"state", __pyx_getprop_5rados_5Ioctx_state, __pyx_setprop_5rados_5Ioctx_state, __pyx_k_state_object, 0},
57326 {(char *)"locator_key", __pyx_getprop_5rados_5Ioctx_locator_key, __pyx_setprop_5rados_5Ioctx_locator_key, __pyx_k_locator_key_object, 0},
57327 {(char *)"nspace", __pyx_getprop_5rados_5Ioctx_nspace, __pyx_setprop_5rados_5Ioctx_nspace, __pyx_k_nspace_object, 0},
57328 {(char *)"safe_completions", __pyx_getprop_5rados_5Ioctx_safe_completions, __pyx_setprop_5rados_5Ioctx_safe_completions, __pyx_k_safe_completions_object, 0},
57329 {(char *)"complete_completions", __pyx_getprop_5rados_5Ioctx_complete_completions, __pyx_setprop_5rados_5Ioctx_complete_completions, __pyx_k_complete_completions_object, 0},
57330 {(char *)"lock", __pyx_getprop_5rados_5Ioctx_lock, __pyx_setprop_5rados_5Ioctx_lock, __pyx_k_lock_object, 0},
57331 {0, 0, 0, 0, 0}
57332};
57333
57334static PyTypeObject __pyx_type_5rados_Ioctx = {
57335 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
57336 "rados.Ioctx", /*tp_name*/
57337 sizeof(struct __pyx_obj_5rados_Ioctx), /*tp_basicsize*/
57338 0, /*tp_itemsize*/
57339 __pyx_tp_dealloc_5rados_Ioctx, /*tp_dealloc*/
57340 0, /*tp_print*/
57341 0, /*tp_getattr*/
57342 0, /*tp_setattr*/
57343 #if PY_MAJOR_VERSION2 < 3
57344 0, /*tp_compare*/
57345 #endif
57346 #if PY_MAJOR_VERSION2 >= 3
57347 0, /*tp_as_async*/
57348 #endif
57349 0, /*tp_repr*/
57350 0, /*tp_as_number*/
57351 0, /*tp_as_sequence*/
57352 0, /*tp_as_mapping*/
57353 0, /*tp_hash*/
57354 0, /*tp_call*/
57355 0, /*tp_str*/
57356 0, /*tp_getattro*/
57357 0, /*tp_setattro*/
57358 0, /*tp_as_buffer*/
57359 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
57360 "Ioctx(name)\nrados.Ioctx object", /*tp_doc*/
57361 __pyx_tp_traverse_5rados_Ioctx, /*tp_traverse*/
57362 __pyx_tp_clear_5rados_Ioctx, /*tp_clear*/
57363 0, /*tp_richcompare*/
57364 0, /*tp_weaklistoffset*/
57365 0, /*tp_iter*/
57366 0, /*tp_iternext*/
57367 __pyx_methods_5rados_Ioctx, /*tp_methods*/
57368 0, /*tp_members*/
57369 __pyx_getsets_5rados_Ioctx, /*tp_getset*/
57370 0, /*tp_base*/
57371 0, /*tp_dict*/
57372 0, /*tp_descr_get*/
57373 0, /*tp_descr_set*/
57374 0, /*tp_dictoffset*/
57375 __pyx_pw_5rados_5Ioctx_1__init__, /*tp_init*/
57376 0, /*tp_alloc*/
57377 __pyx_tp_new_5rados_Ioctx, /*tp_new*/
57378 0, /*tp_free*/
57379 0, /*tp_is_gc*/
57380 0, /*tp_bases*/
57381 0, /*tp_mro*/
57382 0, /*tp_cache*/
57383 0, /*tp_subclasses*/
57384 0, /*tp_weaklist*/
57385 0, /*tp_del*/
57386 0, /*tp_version_tag*/
57387 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57388 0, /*tp_finalize*/
57389 #endif
57390};
57391
57392static PyObject *__pyx_tp_new_5rados_OmapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
57393 struct __pyx_obj_5rados_OmapIterator *p;
57394 PyObject *o;
57395 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
57396 o = (*t->tp_alloc)(t, 0);
57397 } else {
57398 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
57399 }
57400 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
57401 p = ((struct __pyx_obj_5rados_OmapIterator *)o);
57402 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57403 if (unlikely(__pyx_pw_5rados_12OmapIterator_1__cinit__(o, a, k) < 0)__builtin_expect(!!(__pyx_pw_5rados_12OmapIterator_1__cinit__
(o, a, k) < 0), 0)
) {
57404 Py_DECREF(o)do { if ( --((PyObject*)(o))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(o)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(o)))); } while (0)
; o = 0;
57405 }
57406 return o;
57407}
57408
57409static void __pyx_tp_dealloc_5rados_OmapIterator(PyObject *o) {
57410 struct __pyx_obj_5rados_OmapIterator *p = (struct __pyx_obj_5rados_OmapIterator *)o;
57411 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57412 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
57413 if (PyObject_CallFinalizerFromDealloc(o)) return;
57414 }
57415 #endif
57416 PyObject_GC_UnTrack(o);
57417 {
57418 PyObject *etype, *eval, *etb;
57419 PyErr_Fetch(&etype, &eval, &etb);
57420 ++Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57421 __pyx_pw_5rados_12OmapIterator_7__dealloc__(o);
57422 --Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57423 PyErr_Restore(etype, eval, etb);
57424 }
57425 Py_CLEAR(p->ioctx)do { if (p->ioctx) { PyObject *_py_tmp = (PyObject *)(p->
ioctx); (p->ioctx) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57426 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
57427}
57428
57429static int __pyx_tp_traverse_5rados_OmapIterator(PyObject *o, visitproc v, void *a) {
57430 int e;
57431 struct __pyx_obj_5rados_OmapIterator *p = (struct __pyx_obj_5rados_OmapIterator *)o;
57432 if (p->ioctx) {
57433 e = (*v)(((PyObject*)p->ioctx), a); if (e) return e;
57434 }
57435 return 0;
57436}
57437
57438static int __pyx_tp_clear_5rados_OmapIterator(PyObject *o) {
57439 PyObject* tmp;
57440 struct __pyx_obj_5rados_OmapIterator *p = (struct __pyx_obj_5rados_OmapIterator *)o;
57441 tmp = ((PyObject*)p->ioctx);
57442 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57443 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57444 return 0;
57445}
57446
57447static PyObject *__pyx_getprop_5rados_12OmapIterator_ioctx(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57448 return __pyx_pw_5rados_12OmapIterator_5ioctx_1__get__(o);
57449}
57450
57451static int __pyx_setprop_5rados_12OmapIterator_ioctx(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57452 if (v) {
57453 return __pyx_pw_5rados_12OmapIterator_5ioctx_3__set__(o, v);
57454 }
57455 else {
57456 return __pyx_pw_5rados_12OmapIterator_5ioctx_5__del__(o);
57457 }
57458}
57459
57460static PyMethodDef __pyx_methods_5rados_OmapIterator[] = {
57461 {"__next__", (PyCFunction)__pyx_pw_5rados_12OmapIterator_5__next__, METH_NOARGS0x0004|METH_COEXIST0x0040, __pyx_doc_5rados_12OmapIterator_4__next__},
57462 {0, 0, 0, 0}
57463};
57464
57465static struct PyGetSetDef __pyx_getsets_5rados_OmapIterator[] = {
57466 {(char *)"ioctx", __pyx_getprop_5rados_12OmapIterator_ioctx, __pyx_setprop_5rados_12OmapIterator_ioctx, __pyx_k_ioctx_rados_Ioctx, 0},
57467 {0, 0, 0, 0, 0}
57468};
57469
57470static PyTypeObject __pyx_type_5rados_OmapIterator = {
57471 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
57472 "rados.OmapIterator", /*tp_name*/
57473 sizeof(struct __pyx_obj_5rados_OmapIterator), /*tp_basicsize*/
57474 0, /*tp_itemsize*/
57475 __pyx_tp_dealloc_5rados_OmapIterator, /*tp_dealloc*/
57476 0, /*tp_print*/
57477 0, /*tp_getattr*/
57478 0, /*tp_setattr*/
57479 #if PY_MAJOR_VERSION2 < 3
57480 0, /*tp_compare*/
57481 #endif
57482 #if PY_MAJOR_VERSION2 >= 3
57483 0, /*tp_as_async*/
57484 #endif
57485 0, /*tp_repr*/
57486 0, /*tp_as_number*/
57487 0, /*tp_as_sequence*/
57488 0, /*tp_as_mapping*/
57489 0, /*tp_hash*/
57490 0, /*tp_call*/
57491 0, /*tp_str*/
57492 0, /*tp_getattro*/
57493 0, /*tp_setattro*/
57494 0, /*tp_as_buffer*/
57495 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
57496 "Omap iterator", /*tp_doc*/
57497 __pyx_tp_traverse_5rados_OmapIterator, /*tp_traverse*/
57498 __pyx_tp_clear_5rados_OmapIterator, /*tp_clear*/
57499 0, /*tp_richcompare*/
57500 0, /*tp_weaklistoffset*/
57501 __pyx_pw_5rados_12OmapIterator_3__iter__, /*tp_iter*/
57502 __pyx_pw_5rados_12OmapIterator_5__next__, /*tp_iternext*/
57503 __pyx_methods_5rados_OmapIterator, /*tp_methods*/
57504 0, /*tp_members*/
57505 __pyx_getsets_5rados_OmapIterator, /*tp_getset*/
57506 0, /*tp_base*/
57507 0, /*tp_dict*/
57508 0, /*tp_descr_get*/
57509 0, /*tp_descr_set*/
57510 0, /*tp_dictoffset*/
57511 0, /*tp_init*/
57512 0, /*tp_alloc*/
57513 __pyx_tp_new_5rados_OmapIterator, /*tp_new*/
57514 0, /*tp_free*/
57515 0, /*tp_is_gc*/
57516 0, /*tp_bases*/
57517 0, /*tp_mro*/
57518 0, /*tp_cache*/
57519 0, /*tp_subclasses*/
57520 0, /*tp_weaklist*/
57521 0, /*tp_del*/
57522 0, /*tp_version_tag*/
57523 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57524 0, /*tp_finalize*/
57525 #endif
57526};
57527
57528static PyObject *__pyx_tp_new_5rados_ObjectIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
57529 struct __pyx_obj_5rados_ObjectIterator *p;
57530 PyObject *o;
57531 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
57532 o = (*t->tp_alloc)(t, 0);
57533 } else {
57534 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
57535 }
57536 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
57537 p = ((struct __pyx_obj_5rados_ObjectIterator *)o);
57538 p->ioctx = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57539 if (unlikely(__pyx_pw_5rados_14ObjectIterator_1__cinit__(o, a, k) < 0)__builtin_expect(!!(__pyx_pw_5rados_14ObjectIterator_1__cinit__
(o, a, k) < 0), 0)
) {
57540 Py_DECREF(o)do { if ( --((PyObject*)(o))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(o)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(o)))); } while (0)
; o = 0;
57541 }
57542 return o;
57543}
57544
57545static void __pyx_tp_dealloc_5rados_ObjectIterator(PyObject *o) {
57546 struct __pyx_obj_5rados_ObjectIterator *p = (struct __pyx_obj_5rados_ObjectIterator *)o;
57547 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57548 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
57549 if (PyObject_CallFinalizerFromDealloc(o)) return;
57550 }
57551 #endif
57552 PyObject_GC_UnTrack(o);
57553 {
57554 PyObject *etype, *eval, *etb;
57555 PyErr_Fetch(&etype, &eval, &etb);
57556 ++Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57557 __pyx_pw_5rados_14ObjectIterator_7__dealloc__(o);
57558 --Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57559 PyErr_Restore(etype, eval, etb);
57560 }
57561 Py_CLEAR(p->ioctx)do { if (p->ioctx) { PyObject *_py_tmp = (PyObject *)(p->
ioctx); (p->ioctx) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57562 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
57563}
57564
57565static int __pyx_tp_traverse_5rados_ObjectIterator(PyObject *o, visitproc v, void *a) {
57566 int e;
57567 struct __pyx_obj_5rados_ObjectIterator *p = (struct __pyx_obj_5rados_ObjectIterator *)o;
57568 if (p->ioctx) {
57569 e = (*v)(p->ioctx, a); if (e) return e;
57570 }
57571 return 0;
57572}
57573
57574static int __pyx_tp_clear_5rados_ObjectIterator(PyObject *o) {
57575 PyObject* tmp;
57576 struct __pyx_obj_5rados_ObjectIterator *p = (struct __pyx_obj_5rados_ObjectIterator *)o;
57577 tmp = ((PyObject*)p->ioctx);
57578 p->ioctx = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57579 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57580 return 0;
57581}
57582
57583static PyObject *__pyx_getprop_5rados_14ObjectIterator_ioctx(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57584 return __pyx_pw_5rados_14ObjectIterator_5ioctx_1__get__(o);
57585}
57586
57587static int __pyx_setprop_5rados_14ObjectIterator_ioctx(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57588 if (v) {
57589 return __pyx_pw_5rados_14ObjectIterator_5ioctx_3__set__(o, v);
57590 }
57591 else {
57592 return __pyx_pw_5rados_14ObjectIterator_5ioctx_5__del__(o);
57593 }
57594}
57595
57596static PyMethodDef __pyx_methods_5rados_ObjectIterator[] = {
57597 {"__next__", (PyCFunction)__pyx_pw_5rados_14ObjectIterator_5__next__, METH_NOARGS0x0004|METH_COEXIST0x0040, __pyx_doc_5rados_14ObjectIterator_4__next__},
57598 {0, 0, 0, 0}
57599};
57600
57601static struct PyGetSetDef __pyx_getsets_5rados_ObjectIterator[] = {
57602 {(char *)"ioctx", __pyx_getprop_5rados_14ObjectIterator_ioctx, __pyx_setprop_5rados_14ObjectIterator_ioctx, __pyx_k_ioctx_object, 0},
57603 {0, 0, 0, 0, 0}
57604};
57605
57606static PyTypeObject __pyx_type_5rados_ObjectIterator = {
57607 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
57608 "rados.ObjectIterator", /*tp_name*/
57609 sizeof(struct __pyx_obj_5rados_ObjectIterator), /*tp_basicsize*/
57610 0, /*tp_itemsize*/
57611 __pyx_tp_dealloc_5rados_ObjectIterator, /*tp_dealloc*/
57612 0, /*tp_print*/
57613 0, /*tp_getattr*/
57614 0, /*tp_setattr*/
57615 #if PY_MAJOR_VERSION2 < 3
57616 0, /*tp_compare*/
57617 #endif
57618 #if PY_MAJOR_VERSION2 >= 3
57619 0, /*tp_as_async*/
57620 #endif
57621 0, /*tp_repr*/
57622 0, /*tp_as_number*/
57623 0, /*tp_as_sequence*/
57624 0, /*tp_as_mapping*/
57625 0, /*tp_hash*/
57626 0, /*tp_call*/
57627 0, /*tp_str*/
57628 0, /*tp_getattro*/
57629 0, /*tp_setattro*/
57630 0, /*tp_as_buffer*/
57631 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
57632 "rados.Ioctx Object iterator", /*tp_doc*/
57633 __pyx_tp_traverse_5rados_ObjectIterator, /*tp_traverse*/
57634 __pyx_tp_clear_5rados_ObjectIterator, /*tp_clear*/
57635 0, /*tp_richcompare*/
57636 0, /*tp_weaklistoffset*/
57637 __pyx_pw_5rados_14ObjectIterator_3__iter__, /*tp_iter*/
57638 __pyx_pw_5rados_14ObjectIterator_5__next__, /*tp_iternext*/
57639 __pyx_methods_5rados_ObjectIterator, /*tp_methods*/
57640 0, /*tp_members*/
57641 __pyx_getsets_5rados_ObjectIterator, /*tp_getset*/
57642 0, /*tp_base*/
57643 0, /*tp_dict*/
57644 0, /*tp_descr_get*/
57645 0, /*tp_descr_set*/
57646 0, /*tp_dictoffset*/
57647 0, /*tp_init*/
57648 0, /*tp_alloc*/
57649 __pyx_tp_new_5rados_ObjectIterator, /*tp_new*/
57650 0, /*tp_free*/
57651 0, /*tp_is_gc*/
57652 0, /*tp_bases*/
57653 0, /*tp_mro*/
57654 0, /*tp_cache*/
57655 0, /*tp_subclasses*/
57656 0, /*tp_weaklist*/
57657 0, /*tp_del*/
57658 0, /*tp_version_tag*/
57659 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57660 0, /*tp_finalize*/
57661 #endif
57662};
57663
57664static PyObject *__pyx_tp_new_5rados_XattrIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
57665 struct __pyx_obj_5rados_XattrIterator *p;
57666 PyObject *o;
57667 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
57668 o = (*t->tp_alloc)(t, 0);
57669 } else {
57670 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
57671 }
57672 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
57673 p = ((struct __pyx_obj_5rados_XattrIterator *)o);
57674 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57675 p->oid = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57676 if (unlikely(__pyx_pw_5rados_13XattrIterator_1__cinit__(o, a, k) < 0)__builtin_expect(!!(__pyx_pw_5rados_13XattrIterator_1__cinit__
(o, a, k) < 0), 0)
) {
57677 Py_DECREF(o)do { if ( --((PyObject*)(o))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(o)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(o)))); } while (0)
; o = 0;
57678 }
57679 return o;
57680}
57681
57682static void __pyx_tp_dealloc_5rados_XattrIterator(PyObject *o) {
57683 struct __pyx_obj_5rados_XattrIterator *p = (struct __pyx_obj_5rados_XattrIterator *)o;
57684 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57685 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
57686 if (PyObject_CallFinalizerFromDealloc(o)) return;
57687 }
57688 #endif
57689 PyObject_GC_UnTrack(o);
57690 {
57691 PyObject *etype, *eval, *etb;
57692 PyErr_Fetch(&etype, &eval, &etb);
57693 ++Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57694 __pyx_pw_5rados_13XattrIterator_7__dealloc__(o);
57695 --Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
57696 PyErr_Restore(etype, eval, etb);
57697 }
57698 Py_CLEAR(p->ioctx)do { if (p->ioctx) { PyObject *_py_tmp = (PyObject *)(p->
ioctx); (p->ioctx) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57699 Py_CLEAR(p->oid)do { if (p->oid) { PyObject *_py_tmp = (PyObject *)(p->
oid); (p->oid) = ((void*)0); do { if ( --((PyObject*)(_py_tmp
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57700 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
57701}
57702
57703static int __pyx_tp_traverse_5rados_XattrIterator(PyObject *o, visitproc v, void *a) {
57704 int e;
57705 struct __pyx_obj_5rados_XattrIterator *p = (struct __pyx_obj_5rados_XattrIterator *)o;
57706 if (p->ioctx) {
57707 e = (*v)(((PyObject*)p->ioctx), a); if (e) return e;
57708 }
57709 if (p->oid) {
57710 e = (*v)(p->oid, a); if (e) return e;
57711 }
57712 return 0;
57713}
57714
57715static int __pyx_tp_clear_5rados_XattrIterator(PyObject *o) {
57716 PyObject* tmp;
57717 struct __pyx_obj_5rados_XattrIterator *p = (struct __pyx_obj_5rados_XattrIterator *)o;
57718 tmp = ((PyObject*)p->ioctx);
57719 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57720 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57721 tmp = ((PyObject*)p->oid);
57722 p->oid = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57723 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57724 return 0;
57725}
57726
57727static PyObject *__pyx_getprop_5rados_13XattrIterator_ioctx(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57728 return __pyx_pw_5rados_13XattrIterator_5ioctx_1__get__(o);
57729}
57730
57731static int __pyx_setprop_5rados_13XattrIterator_ioctx(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57732 if (v) {
57733 return __pyx_pw_5rados_13XattrIterator_5ioctx_3__set__(o, v);
57734 }
57735 else {
57736 return __pyx_pw_5rados_13XattrIterator_5ioctx_5__del__(o);
57737 }
57738}
57739
57740static PyObject *__pyx_getprop_5rados_13XattrIterator_oid(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57741 return __pyx_pw_5rados_13XattrIterator_3oid_1__get__(o);
57742}
57743
57744static int __pyx_setprop_5rados_13XattrIterator_oid(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57745 if (v) {
57746 return __pyx_pw_5rados_13XattrIterator_3oid_3__set__(o, v);
57747 }
57748 else {
57749 return __pyx_pw_5rados_13XattrIterator_3oid_5__del__(o);
57750 }
57751}
57752
57753static PyMethodDef __pyx_methods_5rados_XattrIterator[] = {
57754 {"__next__", (PyCFunction)__pyx_pw_5rados_13XattrIterator_5__next__, METH_NOARGS0x0004|METH_COEXIST0x0040, __pyx_doc_5rados_13XattrIterator_4__next__},
57755 {0, 0, 0, 0}
57756};
57757
57758static struct PyGetSetDef __pyx_getsets_5rados_XattrIterator[] = {
57759 {(char *)"ioctx", __pyx_getprop_5rados_13XattrIterator_ioctx, __pyx_setprop_5rados_13XattrIterator_ioctx, __pyx_k_ioctx_rados_Ioctx, 0},
57760 {(char *)"oid", __pyx_getprop_5rados_13XattrIterator_oid, __pyx_setprop_5rados_13XattrIterator_oid, __pyx_k_oid_object, 0},
57761 {0, 0, 0, 0, 0}
57762};
57763
57764static PyTypeObject __pyx_type_5rados_XattrIterator = {
57765 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
57766 "rados.XattrIterator", /*tp_name*/
57767 sizeof(struct __pyx_obj_5rados_XattrIterator), /*tp_basicsize*/
57768 0, /*tp_itemsize*/
57769 __pyx_tp_dealloc_5rados_XattrIterator, /*tp_dealloc*/
57770 0, /*tp_print*/
57771 0, /*tp_getattr*/
57772 0, /*tp_setattr*/
57773 #if PY_MAJOR_VERSION2 < 3
57774 0, /*tp_compare*/
57775 #endif
57776 #if PY_MAJOR_VERSION2 >= 3
57777 0, /*tp_as_async*/
57778 #endif
57779 0, /*tp_repr*/
57780 0, /*tp_as_number*/
57781 0, /*tp_as_sequence*/
57782 0, /*tp_as_mapping*/
57783 0, /*tp_hash*/
57784 0, /*tp_call*/
57785 0, /*tp_str*/
57786 0, /*tp_getattro*/
57787 0, /*tp_setattro*/
57788 0, /*tp_as_buffer*/
57789 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
57790 "Extended attribute iterator", /*tp_doc*/
57791 __pyx_tp_traverse_5rados_XattrIterator, /*tp_traverse*/
57792 __pyx_tp_clear_5rados_XattrIterator, /*tp_clear*/
57793 0, /*tp_richcompare*/
57794 0, /*tp_weaklistoffset*/
57795 __pyx_pw_5rados_13XattrIterator_3__iter__, /*tp_iter*/
57796 __pyx_pw_5rados_13XattrIterator_5__next__, /*tp_iternext*/
57797 __pyx_methods_5rados_XattrIterator, /*tp_methods*/
57798 0, /*tp_members*/
57799 __pyx_getsets_5rados_XattrIterator, /*tp_getset*/
57800 0, /*tp_base*/
57801 0, /*tp_dict*/
57802 0, /*tp_descr_get*/
57803 0, /*tp_descr_set*/
57804 0, /*tp_dictoffset*/
57805 0, /*tp_init*/
57806 0, /*tp_alloc*/
57807 __pyx_tp_new_5rados_XattrIterator, /*tp_new*/
57808 0, /*tp_free*/
57809 0, /*tp_is_gc*/
57810 0, /*tp_bases*/
57811 0, /*tp_mro*/
57812 0, /*tp_cache*/
57813 0, /*tp_subclasses*/
57814 0, /*tp_weaklist*/
57815 0, /*tp_del*/
57816 0, /*tp_version_tag*/
57817 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57818 0, /*tp_finalize*/
57819 #endif
57820};
57821
57822static PyObject *__pyx_tp_new_5rados_SnapIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
57823 struct __pyx_obj_5rados_SnapIterator *p;
57824 PyObject *o;
57825 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
57826 o = (*t->tp_alloc)(t, 0);
57827 } else {
57828 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
57829 }
57830 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
57831 p = ((struct __pyx_obj_5rados_SnapIterator *)o);
57832 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57833 if (unlikely(__pyx_pw_5rados_12SnapIterator_1__cinit__(o, a, k) < 0)__builtin_expect(!!(__pyx_pw_5rados_12SnapIterator_1__cinit__
(o, a, k) < 0), 0)
) {
57834 Py_DECREF(o)do { if ( --((PyObject*)(o))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(o)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(o)))); } while (0)
; o = 0;
57835 }
57836 return o;
57837}
57838
57839static void __pyx_tp_dealloc_5rados_SnapIterator(PyObject *o) {
57840 struct __pyx_obj_5rados_SnapIterator *p = (struct __pyx_obj_5rados_SnapIterator *)o;
57841 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57842 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
57843 if (PyObject_CallFinalizerFromDealloc(o)) return;
57844 }
57845 #endif
57846 PyObject_GC_UnTrack(o);
57847 Py_CLEAR(p->ioctx)do { if (p->ioctx) { PyObject *_py_tmp = (PyObject *)(p->
ioctx); (p->ioctx) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57848 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
57849}
57850
57851static int __pyx_tp_traverse_5rados_SnapIterator(PyObject *o, visitproc v, void *a) {
57852 int e;
57853 struct __pyx_obj_5rados_SnapIterator *p = (struct __pyx_obj_5rados_SnapIterator *)o;
57854 if (p->ioctx) {
57855 e = (*v)(((PyObject*)p->ioctx), a); if (e) return e;
57856 }
57857 return 0;
57858}
57859
57860static int __pyx_tp_clear_5rados_SnapIterator(PyObject *o) {
57861 PyObject* tmp;
57862 struct __pyx_obj_5rados_SnapIterator *p = (struct __pyx_obj_5rados_SnapIterator *)o;
57863 tmp = ((PyObject*)p->ioctx);
57864 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57865 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57866 return 0;
57867}
57868
57869static PyObject *__pyx_getprop_5rados_12SnapIterator_ioctx(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57870 return __pyx_pw_5rados_12SnapIterator_5ioctx_1__get__(o);
57871}
57872
57873static int __pyx_setprop_5rados_12SnapIterator_ioctx(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
57874 if (v) {
57875 return __pyx_pw_5rados_12SnapIterator_5ioctx_3__set__(o, v);
57876 }
57877 else {
57878 return __pyx_pw_5rados_12SnapIterator_5ioctx_5__del__(o);
57879 }
57880}
57881
57882static PyMethodDef __pyx_methods_5rados_SnapIterator[] = {
57883 {"__next__", (PyCFunction)__pyx_pw_5rados_12SnapIterator_5__next__, METH_NOARGS0x0004|METH_COEXIST0x0040, __pyx_doc_5rados_12SnapIterator_4__next__},
57884 {0, 0, 0, 0}
57885};
57886
57887static struct PyGetSetDef __pyx_getsets_5rados_SnapIterator[] = {
57888 {(char *)"ioctx", __pyx_getprop_5rados_12SnapIterator_ioctx, __pyx_setprop_5rados_12SnapIterator_ioctx, __pyx_k_ioctx_rados_Ioctx, 0},
57889 {0, 0, 0, 0, 0}
57890};
57891
57892static PyTypeObject __pyx_type_5rados_SnapIterator = {
57893 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
57894 "rados.SnapIterator", /*tp_name*/
57895 sizeof(struct __pyx_obj_5rados_SnapIterator), /*tp_basicsize*/
57896 0, /*tp_itemsize*/
57897 __pyx_tp_dealloc_5rados_SnapIterator, /*tp_dealloc*/
57898 0, /*tp_print*/
57899 0, /*tp_getattr*/
57900 0, /*tp_setattr*/
57901 #if PY_MAJOR_VERSION2 < 3
57902 0, /*tp_compare*/
57903 #endif
57904 #if PY_MAJOR_VERSION2 >= 3
57905 0, /*tp_as_async*/
57906 #endif
57907 0, /*tp_repr*/
57908 0, /*tp_as_number*/
57909 0, /*tp_as_sequence*/
57910 0, /*tp_as_mapping*/
57911 0, /*tp_hash*/
57912 0, /*tp_call*/
57913 0, /*tp_str*/
57914 0, /*tp_getattro*/
57915 0, /*tp_setattro*/
57916 0, /*tp_as_buffer*/
57917 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
57918 "Snapshot iterator", /*tp_doc*/
57919 __pyx_tp_traverse_5rados_SnapIterator, /*tp_traverse*/
57920 __pyx_tp_clear_5rados_SnapIterator, /*tp_clear*/
57921 0, /*tp_richcompare*/
57922 0, /*tp_weaklistoffset*/
57923 __pyx_pw_5rados_12SnapIterator_3__iter__, /*tp_iter*/
57924 __pyx_pw_5rados_12SnapIterator_5__next__, /*tp_iternext*/
57925 __pyx_methods_5rados_SnapIterator, /*tp_methods*/
57926 0, /*tp_members*/
57927 __pyx_getsets_5rados_SnapIterator, /*tp_getset*/
57928 0, /*tp_base*/
57929 0, /*tp_dict*/
57930 0, /*tp_descr_get*/
57931 0, /*tp_descr_set*/
57932 0, /*tp_dictoffset*/
57933 0, /*tp_init*/
57934 0, /*tp_alloc*/
57935 __pyx_tp_new_5rados_SnapIterator, /*tp_new*/
57936 0, /*tp_free*/
57937 0, /*tp_is_gc*/
57938 0, /*tp_bases*/
57939 0, /*tp_mro*/
57940 0, /*tp_cache*/
57941 0, /*tp_subclasses*/
57942 0, /*tp_weaklist*/
57943 0, /*tp_del*/
57944 0, /*tp_version_tag*/
57945 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57946 0, /*tp_finalize*/
57947 #endif
57948};
57949
57950static PyObject *__pyx_tp_new_5rados_Snap(PyTypeObject *t, PyObject *a, PyObject *k) {
57951 struct __pyx_obj_5rados_Snap *p;
57952 PyObject *o;
57953 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
57954 o = (*t->tp_alloc)(t, 0);
57955 } else {
57956 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
57957 }
57958 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
57959 p = ((struct __pyx_obj_5rados_Snap *)o);
57960 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57961 p->name = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57962 if (unlikely(__pyx_pw_5rados_4Snap_1__cinit__(o, a, k) < 0)__builtin_expect(!!(__pyx_pw_5rados_4Snap_1__cinit__(o, a, k)
< 0), 0)
) {
57963 Py_DECREF(o)do { if ( --((PyObject*)(o))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(o)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(o)))); } while (0)
; o = 0;
57964 }
57965 return o;
57966}
57967
57968static void __pyx_tp_dealloc_5rados_Snap(PyObject *o) {
57969 struct __pyx_obj_5rados_Snap *p = (struct __pyx_obj_5rados_Snap *)o;
57970 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
57971 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
57972 if (PyObject_CallFinalizerFromDealloc(o)) return;
57973 }
57974 #endif
57975 PyObject_GC_UnTrack(o);
57976 Py_CLEAR(p->ioctx)do { if (p->ioctx) { PyObject *_py_tmp = (PyObject *)(p->
ioctx); (p->ioctx) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57977 Py_CLEAR(p->name)do { if (p->name) { PyObject *_py_tmp = (PyObject *)(p->
name); (p->name) = ((void*)0); do { if ( --((PyObject*)(_py_tmp
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
57978 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
57979}
57980
57981static int __pyx_tp_traverse_5rados_Snap(PyObject *o, visitproc v, void *a) {
57982 int e;
57983 struct __pyx_obj_5rados_Snap *p = (struct __pyx_obj_5rados_Snap *)o;
57984 if (p->ioctx) {
57985 e = (*v)(((PyObject*)p->ioctx), a); if (e) return e;
57986 }
57987 if (p->name) {
57988 e = (*v)(p->name, a); if (e) return e;
57989 }
57990 return 0;
57991}
57992
57993static int __pyx_tp_clear_5rados_Snap(PyObject *o) {
57994 PyObject* tmp;
57995 struct __pyx_obj_5rados_Snap *p = (struct __pyx_obj_5rados_Snap *)o;
57996 tmp = ((PyObject*)p->ioctx);
57997 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
57998 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
57999 tmp = ((PyObject*)p->name);
58000 p->name = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58001 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58002 return 0;
58003}
58004
58005static PyObject *__pyx_getprop_5rados_4Snap_ioctx(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58006 return __pyx_pw_5rados_4Snap_5ioctx_1__get__(o);
58007}
58008
58009static int __pyx_setprop_5rados_4Snap_ioctx(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58010 if (v) {
58011 return __pyx_pw_5rados_4Snap_5ioctx_3__set__(o, v);
58012 }
58013 else {
58014 return __pyx_pw_5rados_4Snap_5ioctx_5__del__(o);
58015 }
58016}
58017
58018static PyObject *__pyx_getprop_5rados_4Snap_name(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58019 return __pyx_pw_5rados_4Snap_4name_1__get__(o);
58020}
58021
58022static int __pyx_setprop_5rados_4Snap_name(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58023 if (v) {
58024 return __pyx_pw_5rados_4Snap_4name_3__set__(o, v);
58025 }
58026 else {
58027 return __pyx_pw_5rados_4Snap_4name_5__del__(o);
58028 }
58029}
58030
58031static PyObject *__pyx_getprop_5rados_4Snap_snap_id(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58032 return __pyx_pw_5rados_4Snap_7snap_id_1__get__(o);
58033}
58034
58035static int __pyx_setprop_5rados_4Snap_snap_id(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58036 if (v) {
58037 return __pyx_pw_5rados_4Snap_7snap_id_3__set__(o, v);
58038 }
58039 else {
58040 PyErr_SetString(PyExc_NotImplementedError, "__del__");
58041 return -1;
58042 }
58043}
58044
58045static PyMethodDef __pyx_methods_5rados_Snap[] = {
58046 {"get_timestamp", (PyCFunction)__pyx_pw_5rados_4Snap_5get_timestamp, METH_NOARGS0x0004, __pyx_doc_5rados_4Snap_4get_timestamp},
58047 {0, 0, 0, 0}
58048};
58049
58050static struct PyGetSetDef __pyx_getsets_5rados_Snap[] = {
58051 {(char *)"ioctx", __pyx_getprop_5rados_4Snap_ioctx, __pyx_setprop_5rados_4Snap_ioctx, __pyx_k_ioctx_rados_Ioctx, 0},
58052 {(char *)"name", __pyx_getprop_5rados_4Snap_name, __pyx_setprop_5rados_4Snap_name, __pyx_k_name_object, 0},
58053 {(char *)"snap_id", __pyx_getprop_5rados_4Snap_snap_id, __pyx_setprop_5rados_4Snap_snap_id, __pyx_k_snap_id_rados_snap_t, 0},
58054 {0, 0, 0, 0, 0}
58055};
58056
58057static PyTypeObject __pyx_type_5rados_Snap = {
58058 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58059 "rados.Snap", /*tp_name*/
58060 sizeof(struct __pyx_obj_5rados_Snap), /*tp_basicsize*/
58061 0, /*tp_itemsize*/
58062 __pyx_tp_dealloc_5rados_Snap, /*tp_dealloc*/
58063 0, /*tp_print*/
58064 0, /*tp_getattr*/
58065 0, /*tp_setattr*/
58066 #if PY_MAJOR_VERSION2 < 3
58067 0, /*tp_compare*/
58068 #endif
58069 #if PY_MAJOR_VERSION2 >= 3
58070 0, /*tp_as_async*/
58071 #endif
58072 0, /*tp_repr*/
58073 0, /*tp_as_number*/
58074 0, /*tp_as_sequence*/
58075 0, /*tp_as_mapping*/
58076 0, /*tp_hash*/
58077 0, /*tp_call*/
58078 __pyx_pw_5rados_4Snap_3__str__, /*tp_str*/
58079 0, /*tp_getattro*/
58080 0, /*tp_setattro*/
58081 0, /*tp_as_buffer*/
58082 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
58083 "Snapshot object", /*tp_doc*/
58084 __pyx_tp_traverse_5rados_Snap, /*tp_traverse*/
58085 __pyx_tp_clear_5rados_Snap, /*tp_clear*/
58086 0, /*tp_richcompare*/
58087 0, /*tp_weaklistoffset*/
58088 0, /*tp_iter*/
58089 0, /*tp_iternext*/
58090 __pyx_methods_5rados_Snap, /*tp_methods*/
58091 0, /*tp_members*/
58092 __pyx_getsets_5rados_Snap, /*tp_getset*/
58093 0, /*tp_base*/
58094 0, /*tp_dict*/
58095 0, /*tp_descr_get*/
58096 0, /*tp_descr_set*/
58097 0, /*tp_dictoffset*/
58098 0, /*tp_init*/
58099 0, /*tp_alloc*/
58100 __pyx_tp_new_5rados_Snap, /*tp_new*/
58101 0, /*tp_free*/
58102 0, /*tp_is_gc*/
58103 0, /*tp_bases*/
58104 0, /*tp_mro*/
58105 0, /*tp_cache*/
58106 0, /*tp_subclasses*/
58107 0, /*tp_weaklist*/
58108 0, /*tp_del*/
58109 0, /*tp_version_tag*/
58110 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58111 0, /*tp_finalize*/
58112 #endif
58113};
58114
58115static PyObject *__pyx_tp_new_5rados_Completion(PyTypeObject *t, PyObject *a, PyObject *k) {
58116 struct __pyx_obj_5rados_Completion *p;
58117 PyObject *o;
58118 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
58119 o = (*t->tp_alloc)(t, 0);
58120 } else {
58121 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
58122 }
58123 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58124 p = ((struct __pyx_obj_5rados_Completion *)o);
58125 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58126 p->oncomplete = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58127 p->onsafe = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58128 if (unlikely(__pyx_pw_5rados_10Completion_1__cinit__(o, a, k) < 0)__builtin_expect(!!(__pyx_pw_5rados_10Completion_1__cinit__(o
, a, k) < 0), 0)
) {
58129 Py_DECREF(o)do { if ( --((PyObject*)(o))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(o)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(o)))); } while (0)
; o = 0;
58130 }
58131 return o;
58132}
58133
58134static void __pyx_tp_dealloc_5rados_Completion(PyObject *o) {
58135 struct __pyx_obj_5rados_Completion *p = (struct __pyx_obj_5rados_Completion *)o;
58136 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58137 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& !_PyGC_FINALIZED(o)) {
58138 if (PyObject_CallFinalizerFromDealloc(o)) return;
58139 }
58140 #endif
58141 PyObject_GC_UnTrack(o);
58142 {
58143 PyObject *etype, *eval, *etb;
58144 PyErr_Fetch(&etype, &eval, &etb);
58145 ++Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
58146 __pyx_pw_5rados_10Completion_17__dealloc__(o);
58147 --Py_REFCNT(o)(((PyObject*)(o))->ob_refcnt);
58148 PyErr_Restore(etype, eval, etb);
58149 }
58150 Py_CLEAR(p->ioctx)do { if (p->ioctx) { PyObject *_py_tmp = (PyObject *)(p->
ioctx); (p->ioctx) = ((void*)0); do { if ( --((PyObject*)(
_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
58151 Py_CLEAR(p->oncomplete)do { if (p->oncomplete) { PyObject *_py_tmp = (PyObject *)
(p->oncomplete); (p->oncomplete) = ((void*)0); do { if (
--((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
58152 Py_CLEAR(p->onsafe)do { if (p->onsafe) { PyObject *_py_tmp = (PyObject *)(p->
onsafe); (p->onsafe) = ((void*)0); do { if ( --((PyObject*
)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
58153 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58154}
58155
58156static int __pyx_tp_traverse_5rados_Completion(PyObject *o, visitproc v, void *a) {
58157 int e;
58158 struct __pyx_obj_5rados_Completion *p = (struct __pyx_obj_5rados_Completion *)o;
58159 if (p->ioctx) {
58160 e = (*v)(((PyObject*)p->ioctx), a); if (e) return e;
58161 }
58162 if (p->oncomplete) {
58163 e = (*v)(p->oncomplete, a); if (e) return e;
58164 }
58165 if (p->onsafe) {
58166 e = (*v)(p->onsafe, a); if (e) return e;
58167 }
58168 return 0;
58169}
58170
58171static int __pyx_tp_clear_5rados_Completion(PyObject *o) {
58172 PyObject* tmp;
58173 struct __pyx_obj_5rados_Completion *p = (struct __pyx_obj_5rados_Completion *)o;
58174 tmp = ((PyObject*)p->ioctx);
58175 p->ioctx = ((struct __pyx_obj_5rados_Ioctx *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58176 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58177 tmp = ((PyObject*)p->oncomplete);
58178 p->oncomplete = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58179 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58180 tmp = ((PyObject*)p->onsafe);
58181 p->onsafe = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58182 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58183 return 0;
58184}
58185
58186static PyObject *__pyx_getprop_5rados_10Completion_ioctx(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58187 return __pyx_pw_5rados_10Completion_5ioctx_1__get__(o);
58188}
58189
58190static int __pyx_setprop_5rados_10Completion_ioctx(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58191 if (v) {
58192 return __pyx_pw_5rados_10Completion_5ioctx_3__set__(o, v);
58193 }
58194 else {
58195 return __pyx_pw_5rados_10Completion_5ioctx_5__del__(o);
58196 }
58197}
58198
58199static PyObject *__pyx_getprop_5rados_10Completion_oncomplete(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58200 return __pyx_pw_5rados_10Completion_10oncomplete_1__get__(o);
58201}
58202
58203static int __pyx_setprop_5rados_10Completion_oncomplete(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58204 if (v) {
58205 return __pyx_pw_5rados_10Completion_10oncomplete_3__set__(o, v);
58206 }
58207 else {
58208 return __pyx_pw_5rados_10Completion_10oncomplete_5__del__(o);
58209 }
58210}
58211
58212static PyObject *__pyx_getprop_5rados_10Completion_onsafe(PyObject *o, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58213 return __pyx_pw_5rados_10Completion_6onsafe_1__get__(o);
58214}
58215
58216static int __pyx_setprop_5rados_10Completion_onsafe(PyObject *o, PyObject *v, CYTHON_UNUSED__attribute__ ((__unused__)) void *x) {
58217 if (v) {
58218 return __pyx_pw_5rados_10Completion_6onsafe_3__set__(o, v);
58219 }
58220 else {
58221 return __pyx_pw_5rados_10Completion_6onsafe_5__del__(o);
58222 }
58223}
58224
58225static PyMethodDef __pyx_methods_5rados_Completion[] = {
58226 {"is_safe", (PyCFunction)__pyx_pw_5rados_10Completion_3is_safe, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_2is_safe},
58227 {"is_complete", (PyCFunction)__pyx_pw_5rados_10Completion_5is_complete, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_4is_complete},
58228 {"wait_for_safe", (PyCFunction)__pyx_pw_5rados_10Completion_7wait_for_safe, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_6wait_for_safe},
58229 {"wait_for_complete", (PyCFunction)__pyx_pw_5rados_10Completion_9wait_for_complete, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_8wait_for_complete},
58230 {"wait_for_safe_and_cb", (PyCFunction)__pyx_pw_5rados_10Completion_11wait_for_safe_and_cb, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_10wait_for_safe_and_cb},
58231 {"wait_for_complete_and_cb", (PyCFunction)__pyx_pw_5rados_10Completion_13wait_for_complete_and_cb, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_12wait_for_complete_and_cb},
58232 {"get_return_value", (PyCFunction)__pyx_pw_5rados_10Completion_15get_return_value, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_14get_return_value},
58233 {"_complete", (PyCFunction)__pyx_pw_5rados_10Completion_19_complete, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_18_complete},
58234 {"_safe", (PyCFunction)__pyx_pw_5rados_10Completion_21_safe, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_20_safe},
58235 {"_cleanup", (PyCFunction)__pyx_pw_5rados_10Completion_23_cleanup, METH_NOARGS0x0004, __pyx_doc_5rados_10Completion_22_cleanup},
58236 {0, 0, 0, 0}
58237};
58238
58239static struct PyGetSetDef __pyx_getsets_5rados_Completion[] = {
58240 {(char *)"ioctx", __pyx_getprop_5rados_10Completion_ioctx, __pyx_setprop_5rados_10Completion_ioctx, __pyx_k_ioctx_rados_Ioctx, 0},
58241 {(char *)"oncomplete", __pyx_getprop_5rados_10Completion_oncomplete, __pyx_setprop_5rados_10Completion_oncomplete, __pyx_k_oncomplete_object, 0},
58242 {(char *)"onsafe", __pyx_getprop_5rados_10Completion_onsafe, __pyx_setprop_5rados_10Completion_onsafe, __pyx_k_onsafe_object, 0},
58243 {0, 0, 0, 0, 0}
58244};
58245
58246static PyTypeObject __pyx_type_5rados_Completion = {
58247 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58248 "rados.Completion", /*tp_name*/
58249 sizeof(struct __pyx_obj_5rados_Completion), /*tp_basicsize*/
58250 0, /*tp_itemsize*/
58251 __pyx_tp_dealloc_5rados_Completion, /*tp_dealloc*/
58252 0, /*tp_print*/
58253 0, /*tp_getattr*/
58254 0, /*tp_setattr*/
58255 #if PY_MAJOR_VERSION2 < 3
58256 0, /*tp_compare*/
58257 #endif
58258 #if PY_MAJOR_VERSION2 >= 3
58259 0, /*tp_as_async*/
58260 #endif
58261 0, /*tp_repr*/
58262 0, /*tp_as_number*/
58263 0, /*tp_as_sequence*/
58264 0, /*tp_as_mapping*/
58265 0, /*tp_hash*/
58266 0, /*tp_call*/
58267 0, /*tp_str*/
58268 0, /*tp_getattro*/
58269 0, /*tp_setattro*/
58270 0, /*tp_as_buffer*/
58271 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
58272 "completion object", /*tp_doc*/
58273 __pyx_tp_traverse_5rados_Completion, /*tp_traverse*/
58274 __pyx_tp_clear_5rados_Completion, /*tp_clear*/
58275 0, /*tp_richcompare*/
58276 0, /*tp_weaklistoffset*/
58277 0, /*tp_iter*/
58278 0, /*tp_iternext*/
58279 __pyx_methods_5rados_Completion, /*tp_methods*/
58280 0, /*tp_members*/
58281 __pyx_getsets_5rados_Completion, /*tp_getset*/
58282 0, /*tp_base*/
58283 0, /*tp_dict*/
58284 0, /*tp_descr_get*/
58285 0, /*tp_descr_set*/
58286 0, /*tp_dictoffset*/
58287 0, /*tp_init*/
58288 0, /*tp_alloc*/
58289 __pyx_tp_new_5rados_Completion, /*tp_new*/
58290 0, /*tp_free*/
58291 0, /*tp_is_gc*/
58292 0, /*tp_bases*/
58293 0, /*tp_mro*/
58294 0, /*tp_cache*/
58295 0, /*tp_subclasses*/
58296 0, /*tp_weaklist*/
58297 0, /*tp_del*/
58298 0, /*tp_version_tag*/
58299 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58300 0, /*tp_finalize*/
58301 #endif
58302};
58303
58304static PyObject *__pyx_tp_new_5rados_WriteOp(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
58305 PyObject *o;
58306 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
58307 o = (*t->tp_alloc)(t, 0);
58308 } else {
58309 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
58310 }
58311 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58312 return o;
58313}
58314
58315static void __pyx_tp_dealloc_5rados_WriteOp(PyObject *o) {
58316 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58317 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& (!PyType_IS_GC(Py_TYPE(o))(((((((PyObject*)(o))->ob_type)))->tp_flags & ((1L<<
14))) != 0)
|| !_PyGC_FINALIZED(o))) {
58318 if (PyObject_CallFinalizerFromDealloc(o)) return;
58319 }
58320 #endif
58321 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58322}
58323
58324static PyMethodDef __pyx_methods_5rados_WriteOp[] = {
58325 {"create", (PyCFunction)__pyx_pw_5rados_7WriteOp_1create, METH_NOARGS0x0004, __pyx_doc_5rados_7WriteOp_create},
58326 {"release", (PyCFunction)__pyx_pw_5rados_7WriteOp_3release, METH_NOARGS0x0004, __pyx_doc_5rados_7WriteOp_2release},
58327 {"new", (PyCFunction)__pyx_pw_5rados_7WriteOp_5new, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_7WriteOp_4new},
58328 {"remove", (PyCFunction)__pyx_pw_5rados_7WriteOp_7remove, METH_NOARGS0x0004, __pyx_doc_5rados_7WriteOp_6remove},
58329 {"set_flags", (PyCFunction)__pyx_pw_5rados_7WriteOp_9set_flags, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_7WriteOp_8set_flags},
58330 {"append", (PyCFunction)__pyx_pw_5rados_7WriteOp_11append, METH_O0x0008, __pyx_doc_5rados_7WriteOp_10append},
58331 {"write_full", (PyCFunction)__pyx_pw_5rados_7WriteOp_13write_full, METH_O0x0008, __pyx_doc_5rados_7WriteOp_12write_full},
58332 {"write", (PyCFunction)__pyx_pw_5rados_7WriteOp_15write, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_7WriteOp_14write},
58333 {"assert_version", (PyCFunction)__pyx_pw_5rados_7WriteOp_17assert_version, METH_O0x0008, __pyx_doc_5rados_7WriteOp_16assert_version},
58334 {"zero", (PyCFunction)__pyx_pw_5rados_7WriteOp_19zero, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_7WriteOp_18zero},
58335 {"truncate", (PyCFunction)__pyx_pw_5rados_7WriteOp_21truncate, METH_O0x0008, __pyx_doc_5rados_7WriteOp_20truncate},
58336 {0, 0, 0, 0}
58337};
58338
58339static PyTypeObject __pyx_type_5rados_WriteOp = {
58340 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58341 "rados.WriteOp", /*tp_name*/
58342 sizeof(struct __pyx_obj_5rados_WriteOp), /*tp_basicsize*/
58343 0, /*tp_itemsize*/
58344 __pyx_tp_dealloc_5rados_WriteOp, /*tp_dealloc*/
58345 0, /*tp_print*/
58346 0, /*tp_getattr*/
58347 0, /*tp_setattr*/
58348 #if PY_MAJOR_VERSION2 < 3
58349 0, /*tp_compare*/
58350 #endif
58351 #if PY_MAJOR_VERSION2 >= 3
58352 0, /*tp_as_async*/
58353 #endif
58354 0, /*tp_repr*/
58355 0, /*tp_as_number*/
58356 0, /*tp_as_sequence*/
58357 0, /*tp_as_mapping*/
58358 0, /*tp_hash*/
58359 0, /*tp_call*/
58360 0, /*tp_str*/
58361 0, /*tp_getattro*/
58362 0, /*tp_setattro*/
58363 0, /*tp_as_buffer*/
58364 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10), /*tp_flags*/
58365 0, /*tp_doc*/
58366 0, /*tp_traverse*/
58367 0, /*tp_clear*/
58368 0, /*tp_richcompare*/
58369 0, /*tp_weaklistoffset*/
58370 0, /*tp_iter*/
58371 0, /*tp_iternext*/
58372 __pyx_methods_5rados_WriteOp, /*tp_methods*/
58373 0, /*tp_members*/
58374 0, /*tp_getset*/
58375 0, /*tp_base*/
58376 0, /*tp_dict*/
58377 0, /*tp_descr_get*/
58378 0, /*tp_descr_set*/
58379 0, /*tp_dictoffset*/
58380 0, /*tp_init*/
58381 0, /*tp_alloc*/
58382 __pyx_tp_new_5rados_WriteOp, /*tp_new*/
58383 0, /*tp_free*/
58384 0, /*tp_is_gc*/
58385 0, /*tp_bases*/
58386 0, /*tp_mro*/
58387 0, /*tp_cache*/
58388 0, /*tp_subclasses*/
58389 0, /*tp_weaklist*/
58390 0, /*tp_del*/
58391 0, /*tp_version_tag*/
58392 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58393 0, /*tp_finalize*/
58394 #endif
58395};
58396
58397static PyObject *__pyx_tp_new_5rados_ReadOp(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
58398 PyObject *o;
58399 if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)__builtin_expect(!!((t->tp_flags & (1L<<20)) == 0
), 1)
) {
58400 o = (*t->tp_alloc)(t, 0);
58401 } else {
58402 o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
58403 }
58404 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58405 return o;
58406}
58407
58408static void __pyx_tp_dealloc_5rados_ReadOp(PyObject *o) {
58409 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58410 if (unlikely(Py_TYPE(o)->tp_finalize)__builtin_expect(!!((((PyObject*)(o))->ob_type)->tp_finalize
), 0)
&& (!PyType_IS_GC(Py_TYPE(o))(((((((PyObject*)(o))->ob_type)))->tp_flags & ((1L<<
14))) != 0)
|| !_PyGC_FINALIZED(o))) {
58411 if (PyObject_CallFinalizerFromDealloc(o)) return;
58412 }
58413 #endif
58414 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58415}
58416
58417static PyMethodDef __pyx_methods_5rados_ReadOp[] = {
58418 {"create", (PyCFunction)__pyx_pw_5rados_6ReadOp_1create, METH_NOARGS0x0004, __pyx_doc_5rados_6ReadOp_create},
58419 {"release", (PyCFunction)__pyx_pw_5rados_6ReadOp_3release, METH_NOARGS0x0004, __pyx_doc_5rados_6ReadOp_2release},
58420 {"set_flags", (PyCFunction)__pyx_pw_5rados_6ReadOp_5set_flags, METH_VARARGS0x0001|METH_KEYWORDS0x0002, __pyx_doc_5rados_6ReadOp_4set_flags},
58421 {0, 0, 0, 0}
58422};
58423
58424static PyTypeObject __pyx_type_5rados_ReadOp = {
58425 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58426 "rados.ReadOp", /*tp_name*/
58427 sizeof(struct __pyx_obj_5rados_ReadOp), /*tp_basicsize*/
58428 0, /*tp_itemsize*/
58429 __pyx_tp_dealloc_5rados_ReadOp, /*tp_dealloc*/
58430 0, /*tp_print*/
58431 0, /*tp_getattr*/
58432 0, /*tp_setattr*/
58433 #if PY_MAJOR_VERSION2 < 3
58434 0, /*tp_compare*/
58435 #endif
58436 #if PY_MAJOR_VERSION2 >= 3
58437 0, /*tp_as_async*/
58438 #endif
58439 0, /*tp_repr*/
58440 0, /*tp_as_number*/
58441 0, /*tp_as_sequence*/
58442 0, /*tp_as_mapping*/
58443 0, /*tp_hash*/
58444 0, /*tp_call*/
58445 0, /*tp_str*/
58446 0, /*tp_getattro*/
58447 0, /*tp_setattro*/
58448 0, /*tp_as_buffer*/
58449 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_BASETYPE(1L<<10), /*tp_flags*/
58450 0, /*tp_doc*/
58451 0, /*tp_traverse*/
58452 0, /*tp_clear*/
58453 0, /*tp_richcompare*/
58454 0, /*tp_weaklistoffset*/
58455 0, /*tp_iter*/
58456 0, /*tp_iternext*/
58457 __pyx_methods_5rados_ReadOp, /*tp_methods*/
58458 0, /*tp_members*/
58459 0, /*tp_getset*/
58460 0, /*tp_base*/
58461 0, /*tp_dict*/
58462 0, /*tp_descr_get*/
58463 0, /*tp_descr_set*/
58464 0, /*tp_dictoffset*/
58465 0, /*tp_init*/
58466 0, /*tp_alloc*/
58467 __pyx_tp_new_5rados_ReadOp, /*tp_new*/
58468 0, /*tp_free*/
58469 0, /*tp_is_gc*/
58470 0, /*tp_bases*/
58471 0, /*tp_mro*/
58472 0, /*tp_cache*/
58473 0, /*tp_subclasses*/
58474 0, /*tp_weaklist*/
58475 0, /*tp_del*/
58476 0, /*tp_version_tag*/
58477 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58478 0, /*tp_finalize*/
58479 #endif
58480};
58481
58482static struct __pyx_obj_5rados___pyx_scope_struct__requires *__pyx_freelist_5rados___pyx_scope_struct__requires[8];
58483static int __pyx_freecount_5rados___pyx_scope_struct__requires = 0;
58484
58485static PyObject *__pyx_tp_new_5rados___pyx_scope_struct__requires(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
58486 PyObject *o;
58487 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct__requires > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct__requires)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct__requires
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct__requires
))), 1)
) {
58488 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct__requires[--__pyx_freecount_5rados___pyx_scope_struct__requires];
58489 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct__requires));
58490 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
58491 PyObject_GC_Track(o);
58492 } else {
58493 o = (*t->tp_alloc)(t, 0);
58494 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58495 }
58496 return o;
58497}
58498
58499static void __pyx_tp_dealloc_5rados___pyx_scope_struct__requires(PyObject *o) {
58500 struct __pyx_obj_5rados___pyx_scope_struct__requires *p = (struct __pyx_obj_5rados___pyx_scope_struct__requires *)o;
58501 PyObject_GC_UnTrack(o);
58502 Py_CLEAR(p->__pyx_v_check_type)do { if (p->__pyx_v_check_type) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_check_type); (p->__pyx_v_check_type) = (
(void*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while
(0); } } while (0)
;
58503 Py_CLEAR(p->__pyx_v_is_type_of)do { if (p->__pyx_v_is_type_of) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_is_type_of); (p->__pyx_v_is_type_of) = (
(void*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while
(0); } } while (0)
;
58504 Py_CLEAR(p->__pyx_v_types)do { if (p->__pyx_v_types) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_types); (p->__pyx_v_types) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
58505 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct__requires < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct__requires)))) {
58506 __pyx_freelist_5rados___pyx_scope_struct__requires[__pyx_freecount_5rados___pyx_scope_struct__requires++] = ((struct __pyx_obj_5rados___pyx_scope_struct__requires *)o);
58507 } else {
58508 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58509 }
58510}
58511
58512static int __pyx_tp_traverse_5rados___pyx_scope_struct__requires(PyObject *o, visitproc v, void *a) {
58513 int e;
58514 struct __pyx_obj_5rados___pyx_scope_struct__requires *p = (struct __pyx_obj_5rados___pyx_scope_struct__requires *)o;
58515 if (p->__pyx_v_check_type) {
58516 e = (*v)(p->__pyx_v_check_type, a); if (e) return e;
58517 }
58518 if (p->__pyx_v_is_type_of) {
58519 e = (*v)(p->__pyx_v_is_type_of, a); if (e) return e;
58520 }
58521 if (p->__pyx_v_types) {
58522 e = (*v)(p->__pyx_v_types, a); if (e) return e;
58523 }
58524 return 0;
58525}
58526
58527static int __pyx_tp_clear_5rados___pyx_scope_struct__requires(PyObject *o) {
58528 PyObject* tmp;
58529 struct __pyx_obj_5rados___pyx_scope_struct__requires *p = (struct __pyx_obj_5rados___pyx_scope_struct__requires *)o;
58530 tmp = ((PyObject*)p->__pyx_v_check_type);
58531 p->__pyx_v_check_type = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58532 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58533 tmp = ((PyObject*)p->__pyx_v_is_type_of);
58534 p->__pyx_v_is_type_of = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58535 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58536 tmp = ((PyObject*)p->__pyx_v_types);
58537 p->__pyx_v_types = ((PyObject*)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58538 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58539 return 0;
58540}
58541
58542static PyTypeObject __pyx_type_5rados___pyx_scope_struct__requires = {
58543 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58544 "rados.__pyx_scope_struct__requires", /*tp_name*/
58545 sizeof(struct __pyx_obj_5rados___pyx_scope_struct__requires), /*tp_basicsize*/
58546 0, /*tp_itemsize*/
58547 __pyx_tp_dealloc_5rados___pyx_scope_struct__requires, /*tp_dealloc*/
58548 0, /*tp_print*/
58549 0, /*tp_getattr*/
58550 0, /*tp_setattr*/
58551 #if PY_MAJOR_VERSION2 < 3
58552 0, /*tp_compare*/
58553 #endif
58554 #if PY_MAJOR_VERSION2 >= 3
58555 0, /*tp_as_async*/
58556 #endif
58557 0, /*tp_repr*/
58558 0, /*tp_as_number*/
58559 0, /*tp_as_sequence*/
58560 0, /*tp_as_mapping*/
58561 0, /*tp_hash*/
58562 0, /*tp_call*/
58563 0, /*tp_str*/
58564 0, /*tp_getattro*/
58565 0, /*tp_setattro*/
58566 0, /*tp_as_buffer*/
58567 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
58568 0, /*tp_doc*/
58569 __pyx_tp_traverse_5rados___pyx_scope_struct__requires, /*tp_traverse*/
58570 __pyx_tp_clear_5rados___pyx_scope_struct__requires, /*tp_clear*/
58571 0, /*tp_richcompare*/
58572 0, /*tp_weaklistoffset*/
58573 0, /*tp_iter*/
58574 0, /*tp_iternext*/
58575 0, /*tp_methods*/
58576 0, /*tp_members*/
58577 0, /*tp_getset*/
58578 0, /*tp_base*/
58579 0, /*tp_dict*/
58580 0, /*tp_descr_get*/
58581 0, /*tp_descr_set*/
58582 0, /*tp_dictoffset*/
58583 0, /*tp_init*/
58584 0, /*tp_alloc*/
58585 __pyx_tp_new_5rados___pyx_scope_struct__requires, /*tp_new*/
58586 0, /*tp_free*/
58587 0, /*tp_is_gc*/
58588 0, /*tp_bases*/
58589 0, /*tp_mro*/
58590 0, /*tp_cache*/
58591 0, /*tp_subclasses*/
58592 0, /*tp_weaklist*/
58593 0, /*tp_del*/
58594 0, /*tp_version_tag*/
58595 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58596 0, /*tp_finalize*/
58597 #endif
58598};
58599
58600static struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *__pyx_freelist_5rados___pyx_scope_struct_1_check_type[8];
58601static int __pyx_freecount_5rados___pyx_scope_struct_1_check_type = 0;
58602
58603static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_1_check_type(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
58604 PyObject *o;
58605 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_1_check_type > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_1_check_type)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_1_check_type
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_1_check_type
))), 1)
) {
58606 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_1_check_type[--__pyx_freecount_5rados___pyx_scope_struct_1_check_type];
58607 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_1_check_type));
58608 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
58609 PyObject_GC_Track(o);
58610 } else {
58611 o = (*t->tp_alloc)(t, 0);
58612 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58613 }
58614 return o;
58615}
58616
58617static void __pyx_tp_dealloc_5rados___pyx_scope_struct_1_check_type(PyObject *o) {
58618 struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *p = (struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *)o;
58619 PyObject_GC_UnTrack(o);
58620 Py_CLEAR(p->__pyx_outer_scope)do { if (p->__pyx_outer_scope) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_outer_scope); (p->__pyx_outer_scope) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
58621 Py_CLEAR(p->__pyx_v_arg_type)do { if (p->__pyx_v_arg_type) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_arg_type); (p->__pyx_v_arg_type) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
58622 Py_CLEAR(p->__pyx_v_val)do { if (p->__pyx_v_val) { PyObject *_py_tmp = (PyObject *
)(p->__pyx_v_val); (p->__pyx_v_val) = ((void*)0); do { if
( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*((
(PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
58623 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_1_check_type < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_1_check_type)))) {
58624 __pyx_freelist_5rados___pyx_scope_struct_1_check_type[__pyx_freecount_5rados___pyx_scope_struct_1_check_type++] = ((struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *)o);
58625 } else {
58626 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58627 }
58628}
58629
58630static int __pyx_tp_traverse_5rados___pyx_scope_struct_1_check_type(PyObject *o, visitproc v, void *a) {
58631 int e;
58632 struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *p = (struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *)o;
58633 if (p->__pyx_outer_scope) {
58634 e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;
58635 }
58636 if (p->__pyx_v_arg_type) {
58637 e = (*v)(p->__pyx_v_arg_type, a); if (e) return e;
58638 }
58639 if (p->__pyx_v_val) {
58640 e = (*v)(p->__pyx_v_val, a); if (e) return e;
58641 }
58642 return 0;
58643}
58644
58645static int __pyx_tp_clear_5rados___pyx_scope_struct_1_check_type(PyObject *o) {
58646 PyObject* tmp;
58647 struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *p = (struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *)o;
58648 tmp = ((PyObject*)p->__pyx_outer_scope);
58649 p->__pyx_outer_scope = ((struct __pyx_obj_5rados___pyx_scope_struct__requires *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58650 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58651 tmp = ((PyObject*)p->__pyx_v_arg_type);
58652 p->__pyx_v_arg_type = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58653 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58654 tmp = ((PyObject*)p->__pyx_v_val);
58655 p->__pyx_v_val = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58656 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58657 return 0;
58658}
58659
58660static PyTypeObject __pyx_type_5rados___pyx_scope_struct_1_check_type = {
58661 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58662 "rados.__pyx_scope_struct_1_check_type", /*tp_name*/
58663 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_1_check_type), /*tp_basicsize*/
58664 0, /*tp_itemsize*/
58665 __pyx_tp_dealloc_5rados___pyx_scope_struct_1_check_type, /*tp_dealloc*/
58666 0, /*tp_print*/
58667 0, /*tp_getattr*/
58668 0, /*tp_setattr*/
58669 #if PY_MAJOR_VERSION2 < 3
58670 0, /*tp_compare*/
58671 #endif
58672 #if PY_MAJOR_VERSION2 >= 3
58673 0, /*tp_as_async*/
58674 #endif
58675 0, /*tp_repr*/
58676 0, /*tp_as_number*/
58677 0, /*tp_as_sequence*/
58678 0, /*tp_as_mapping*/
58679 0, /*tp_hash*/
58680 0, /*tp_call*/
58681 0, /*tp_str*/
58682 0, /*tp_getattro*/
58683 0, /*tp_setattro*/
58684 0, /*tp_as_buffer*/
58685 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
58686 0, /*tp_doc*/
58687 __pyx_tp_traverse_5rados___pyx_scope_struct_1_check_type, /*tp_traverse*/
58688 __pyx_tp_clear_5rados___pyx_scope_struct_1_check_type, /*tp_clear*/
58689 0, /*tp_richcompare*/
58690 0, /*tp_weaklistoffset*/
58691 0, /*tp_iter*/
58692 0, /*tp_iternext*/
58693 0, /*tp_methods*/
58694 0, /*tp_members*/
58695 0, /*tp_getset*/
58696 0, /*tp_base*/
58697 0, /*tp_dict*/
58698 0, /*tp_descr_get*/
58699 0, /*tp_descr_set*/
58700 0, /*tp_dictoffset*/
58701 0, /*tp_init*/
58702 0, /*tp_alloc*/
58703 __pyx_tp_new_5rados___pyx_scope_struct_1_check_type, /*tp_new*/
58704 0, /*tp_free*/
58705 0, /*tp_is_gc*/
58706 0, /*tp_bases*/
58707 0, /*tp_mro*/
58708 0, /*tp_cache*/
58709 0, /*tp_subclasses*/
58710 0, /*tp_weaklist*/
58711 0, /*tp_del*/
58712 0, /*tp_version_tag*/
58713 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58714 0, /*tp_finalize*/
58715 #endif
58716};
58717
58718static struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *__pyx_freelist_5rados___pyx_scope_struct_2_genexpr[8];
58719static int __pyx_freecount_5rados___pyx_scope_struct_2_genexpr = 0;
58720
58721static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_2_genexpr(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
58722 PyObject *o;
58723 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_2_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_2_genexpr
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr
))), 1)
) {
58724 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_2_genexpr[--__pyx_freecount_5rados___pyx_scope_struct_2_genexpr];
58725 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr));
58726 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
58727 PyObject_GC_Track(o);
58728 } else {
58729 o = (*t->tp_alloc)(t, 0);
58730 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58731 }
58732 return o;
58733}
58734
58735static void __pyx_tp_dealloc_5rados___pyx_scope_struct_2_genexpr(PyObject *o) {
58736 struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *)o;
58737 PyObject_GC_UnTrack(o);
58738 Py_CLEAR(p->__pyx_outer_scope)do { if (p->__pyx_outer_scope) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_outer_scope); (p->__pyx_outer_scope) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
58739 Py_CLEAR(p->__pyx_v_t)do { if (p->__pyx_v_t) { PyObject *_py_tmp = (PyObject *)(
p->__pyx_v_t); (p->__pyx_v_t) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
58740 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_2_genexpr < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr)))) {
58741 __pyx_freelist_5rados___pyx_scope_struct_2_genexpr[__pyx_freecount_5rados___pyx_scope_struct_2_genexpr++] = ((struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *)o);
58742 } else {
58743 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58744 }
58745}
58746
58747static int __pyx_tp_traverse_5rados___pyx_scope_struct_2_genexpr(PyObject *o, visitproc v, void *a) {
58748 int e;
58749 struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *)o;
58750 if (p->__pyx_outer_scope) {
58751 e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;
58752 }
58753 if (p->__pyx_v_t) {
58754 e = (*v)(p->__pyx_v_t, a); if (e) return e;
58755 }
58756 return 0;
58757}
58758
58759static int __pyx_tp_clear_5rados___pyx_scope_struct_2_genexpr(PyObject *o) {
58760 PyObject* tmp;
58761 struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr *)o;
58762 tmp = ((PyObject*)p->__pyx_outer_scope);
58763 p->__pyx_outer_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58764 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58765 tmp = ((PyObject*)p->__pyx_v_t);
58766 p->__pyx_v_t = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58767 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58768 return 0;
58769}
58770
58771static PyTypeObject __pyx_type_5rados___pyx_scope_struct_2_genexpr = {
58772 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58773 "rados.__pyx_scope_struct_2_genexpr", /*tp_name*/
58774 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_2_genexpr), /*tp_basicsize*/
58775 0, /*tp_itemsize*/
58776 __pyx_tp_dealloc_5rados___pyx_scope_struct_2_genexpr, /*tp_dealloc*/
58777 0, /*tp_print*/
58778 0, /*tp_getattr*/
58779 0, /*tp_setattr*/
58780 #if PY_MAJOR_VERSION2 < 3
58781 0, /*tp_compare*/
58782 #endif
58783 #if PY_MAJOR_VERSION2 >= 3
58784 0, /*tp_as_async*/
58785 #endif
58786 0, /*tp_repr*/
58787 0, /*tp_as_number*/
58788 0, /*tp_as_sequence*/
58789 0, /*tp_as_mapping*/
58790 0, /*tp_hash*/
58791 0, /*tp_call*/
58792 0, /*tp_str*/
58793 0, /*tp_getattro*/
58794 0, /*tp_setattro*/
58795 0, /*tp_as_buffer*/
58796 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
58797 0, /*tp_doc*/
58798 __pyx_tp_traverse_5rados___pyx_scope_struct_2_genexpr, /*tp_traverse*/
58799 __pyx_tp_clear_5rados___pyx_scope_struct_2_genexpr, /*tp_clear*/
58800 0, /*tp_richcompare*/
58801 0, /*tp_weaklistoffset*/
58802 0, /*tp_iter*/
58803 0, /*tp_iternext*/
58804 0, /*tp_methods*/
58805 0, /*tp_members*/
58806 0, /*tp_getset*/
58807 0, /*tp_base*/
58808 0, /*tp_dict*/
58809 0, /*tp_descr_get*/
58810 0, /*tp_descr_set*/
58811 0, /*tp_dictoffset*/
58812 0, /*tp_init*/
58813 0, /*tp_alloc*/
58814 __pyx_tp_new_5rados___pyx_scope_struct_2_genexpr, /*tp_new*/
58815 0, /*tp_free*/
58816 0, /*tp_is_gc*/
58817 0, /*tp_bases*/
58818 0, /*tp_mro*/
58819 0, /*tp_cache*/
58820 0, /*tp_subclasses*/
58821 0, /*tp_weaklist*/
58822 0, /*tp_del*/
58823 0, /*tp_version_tag*/
58824 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58825 0, /*tp_finalize*/
58826 #endif
58827};
58828
58829static struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *__pyx_freelist_5rados___pyx_scope_struct_3_genexpr[8];
58830static int __pyx_freecount_5rados___pyx_scope_struct_3_genexpr = 0;
58831
58832static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_3_genexpr(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
58833 PyObject *o;
58834 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_3_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_3_genexpr
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr
))), 1)
) {
58835 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_3_genexpr[--__pyx_freecount_5rados___pyx_scope_struct_3_genexpr];
58836 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr));
58837 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
58838 PyObject_GC_Track(o);
58839 } else {
58840 o = (*t->tp_alloc)(t, 0);
58841 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58842 }
58843 return o;
58844}
58845
58846static void __pyx_tp_dealloc_5rados___pyx_scope_struct_3_genexpr(PyObject *o) {
58847 struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *)o;
58848 PyObject_GC_UnTrack(o);
58849 Py_CLEAR(p->__pyx_outer_scope)do { if (p->__pyx_outer_scope) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_outer_scope); (p->__pyx_outer_scope) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
58850 Py_CLEAR(p->__pyx_v_t)do { if (p->__pyx_v_t) { PyObject *_py_tmp = (PyObject *)(
p->__pyx_v_t); (p->__pyx_v_t) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
58851 Py_CLEAR(p->__pyx_t_0)do { if (p->__pyx_t_0) { PyObject *_py_tmp = (PyObject *)(
p->__pyx_t_0); (p->__pyx_t_0) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
58852 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_3_genexpr < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr)))) {
58853 __pyx_freelist_5rados___pyx_scope_struct_3_genexpr[__pyx_freecount_5rados___pyx_scope_struct_3_genexpr++] = ((struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *)o);
58854 } else {
58855 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58856 }
58857}
58858
58859static int __pyx_tp_traverse_5rados___pyx_scope_struct_3_genexpr(PyObject *o, visitproc v, void *a) {
58860 int e;
58861 struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *)o;
58862 if (p->__pyx_outer_scope) {
58863 e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;
58864 }
58865 if (p->__pyx_v_t) {
58866 e = (*v)(p->__pyx_v_t, a); if (e) return e;
58867 }
58868 if (p->__pyx_t_0) {
58869 e = (*v)(p->__pyx_t_0, a); if (e) return e;
58870 }
58871 return 0;
58872}
58873
58874static int __pyx_tp_clear_5rados___pyx_scope_struct_3_genexpr(PyObject *o) {
58875 PyObject* tmp;
58876 struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr *)o;
58877 tmp = ((PyObject*)p->__pyx_outer_scope);
58878 p->__pyx_outer_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_1_check_type *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58879 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58880 tmp = ((PyObject*)p->__pyx_v_t);
58881 p->__pyx_v_t = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58882 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58883 tmp = ((PyObject*)p->__pyx_t_0);
58884 p->__pyx_t_0 = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58885 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58886 return 0;
58887}
58888
58889static PyTypeObject __pyx_type_5rados___pyx_scope_struct_3_genexpr = {
58890 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
58891 "rados.__pyx_scope_struct_3_genexpr", /*tp_name*/
58892 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_3_genexpr), /*tp_basicsize*/
58893 0, /*tp_itemsize*/
58894 __pyx_tp_dealloc_5rados___pyx_scope_struct_3_genexpr, /*tp_dealloc*/
58895 0, /*tp_print*/
58896 0, /*tp_getattr*/
58897 0, /*tp_setattr*/
58898 #if PY_MAJOR_VERSION2 < 3
58899 0, /*tp_compare*/
58900 #endif
58901 #if PY_MAJOR_VERSION2 >= 3
58902 0, /*tp_as_async*/
58903 #endif
58904 0, /*tp_repr*/
58905 0, /*tp_as_number*/
58906 0, /*tp_as_sequence*/
58907 0, /*tp_as_mapping*/
58908 0, /*tp_hash*/
58909 0, /*tp_call*/
58910 0, /*tp_str*/
58911 0, /*tp_getattro*/
58912 0, /*tp_setattro*/
58913 0, /*tp_as_buffer*/
58914 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
58915 0, /*tp_doc*/
58916 __pyx_tp_traverse_5rados___pyx_scope_struct_3_genexpr, /*tp_traverse*/
58917 __pyx_tp_clear_5rados___pyx_scope_struct_3_genexpr, /*tp_clear*/
58918 0, /*tp_richcompare*/
58919 0, /*tp_weaklistoffset*/
58920 0, /*tp_iter*/
58921 0, /*tp_iternext*/
58922 0, /*tp_methods*/
58923 0, /*tp_members*/
58924 0, /*tp_getset*/
58925 0, /*tp_base*/
58926 0, /*tp_dict*/
58927 0, /*tp_descr_get*/
58928 0, /*tp_descr_set*/
58929 0, /*tp_dictoffset*/
58930 0, /*tp_init*/
58931 0, /*tp_alloc*/
58932 __pyx_tp_new_5rados___pyx_scope_struct_3_genexpr, /*tp_new*/
58933 0, /*tp_free*/
58934 0, /*tp_is_gc*/
58935 0, /*tp_bases*/
58936 0, /*tp_mro*/
58937 0, /*tp_cache*/
58938 0, /*tp_subclasses*/
58939 0, /*tp_weaklist*/
58940 0, /*tp_del*/
58941 0, /*tp_version_tag*/
58942 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
58943 0, /*tp_finalize*/
58944 #endif
58945};
58946
58947static struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *__pyx_freelist_5rados___pyx_scope_struct_4_wrapper[8];
58948static int __pyx_freecount_5rados___pyx_scope_struct_4_wrapper = 0;
58949
58950static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_4_wrapper(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
58951 PyObject *o;
58952 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_4_wrapper > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_4_wrapper
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper
))), 1)
) {
58953 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_4_wrapper[--__pyx_freecount_5rados___pyx_scope_struct_4_wrapper];
58954 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper));
58955 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
58956 PyObject_GC_Track(o);
58957 } else {
58958 o = (*t->tp_alloc)(t, 0);
58959 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
58960 }
58961 return o;
58962}
58963
58964static void __pyx_tp_dealloc_5rados___pyx_scope_struct_4_wrapper(PyObject *o) {
58965 struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *p = (struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *)o;
58966 PyObject_GC_UnTrack(o);
58967 Py_CLEAR(p->__pyx_outer_scope)do { if (p->__pyx_outer_scope) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_outer_scope); (p->__pyx_outer_scope) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
58968 Py_CLEAR(p->__pyx_v_f)do { if (p->__pyx_v_f) { PyObject *_py_tmp = (PyObject *)(
p->__pyx_v_f); (p->__pyx_v_f) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
58969 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_4_wrapper < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper)))) {
58970 __pyx_freelist_5rados___pyx_scope_struct_4_wrapper[__pyx_freecount_5rados___pyx_scope_struct_4_wrapper++] = ((struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *)o);
58971 } else {
58972 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
58973 }
58974}
58975
58976static int __pyx_tp_traverse_5rados___pyx_scope_struct_4_wrapper(PyObject *o, visitproc v, void *a) {
58977 int e;
58978 struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *p = (struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *)o;
58979 if (p->__pyx_outer_scope) {
58980 e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;
58981 }
58982 if (p->__pyx_v_f) {
58983 e = (*v)(p->__pyx_v_f, a); if (e) return e;
58984 }
58985 return 0;
58986}
58987
58988static int __pyx_tp_clear_5rados___pyx_scope_struct_4_wrapper(PyObject *o) {
58989 PyObject* tmp;
58990 struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *p = (struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *)o;
58991 tmp = ((PyObject*)p->__pyx_outer_scope);
58992 p->__pyx_outer_scope = ((struct __pyx_obj_5rados___pyx_scope_struct__requires *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58993 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58994 tmp = ((PyObject*)p->__pyx_v_f);
58995 p->__pyx_v_f = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
58996 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
58997 return 0;
58998}
58999
59000static PyTypeObject __pyx_type_5rados___pyx_scope_struct_4_wrapper = {
59001 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59002 "rados.__pyx_scope_struct_4_wrapper", /*tp_name*/
59003 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper), /*tp_basicsize*/
59004 0, /*tp_itemsize*/
59005 __pyx_tp_dealloc_5rados___pyx_scope_struct_4_wrapper, /*tp_dealloc*/
59006 0, /*tp_print*/
59007 0, /*tp_getattr*/
59008 0, /*tp_setattr*/
59009 #if PY_MAJOR_VERSION2 < 3
59010 0, /*tp_compare*/
59011 #endif
59012 #if PY_MAJOR_VERSION2 >= 3
59013 0, /*tp_as_async*/
59014 #endif
59015 0, /*tp_repr*/
59016 0, /*tp_as_number*/
59017 0, /*tp_as_sequence*/
59018 0, /*tp_as_mapping*/
59019 0, /*tp_hash*/
59020 0, /*tp_call*/
59021 0, /*tp_str*/
59022 0, /*tp_getattro*/
59023 0, /*tp_setattro*/
59024 0, /*tp_as_buffer*/
59025 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59026 0, /*tp_doc*/
59027 __pyx_tp_traverse_5rados___pyx_scope_struct_4_wrapper, /*tp_traverse*/
59028 __pyx_tp_clear_5rados___pyx_scope_struct_4_wrapper, /*tp_clear*/
59029 0, /*tp_richcompare*/
59030 0, /*tp_weaklistoffset*/
59031 0, /*tp_iter*/
59032 0, /*tp_iternext*/
59033 0, /*tp_methods*/
59034 0, /*tp_members*/
59035 0, /*tp_getset*/
59036 0, /*tp_base*/
59037 0, /*tp_dict*/
59038 0, /*tp_descr_get*/
59039 0, /*tp_descr_set*/
59040 0, /*tp_dictoffset*/
59041 0, /*tp_init*/
59042 0, /*tp_alloc*/
59043 __pyx_tp_new_5rados___pyx_scope_struct_4_wrapper, /*tp_new*/
59044 0, /*tp_free*/
59045 0, /*tp_is_gc*/
59046 0, /*tp_bases*/
59047 0, /*tp_mro*/
59048 0, /*tp_cache*/
59049 0, /*tp_subclasses*/
59050 0, /*tp_weaklist*/
59051 0, /*tp_del*/
59052 0, /*tp_version_tag*/
59053 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59054 0, /*tp_finalize*/
59055 #endif
59056};
59057
59058static struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *__pyx_freelist_5rados___pyx_scope_struct_5_validate_func[8];
59059static int __pyx_freecount_5rados___pyx_scope_struct_5_validate_func = 0;
59060
59061static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_5_validate_func(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59062 PyObject *o;
59063 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_5_validate_func > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_5_validate_func
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func
))), 1)
) {
59064 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_5_validate_func[--__pyx_freecount_5rados___pyx_scope_struct_5_validate_func];
59065 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func));
59066 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59067 PyObject_GC_Track(o);
59068 } else {
59069 o = (*t->tp_alloc)(t, 0);
59070 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59071 }
59072 return o;
59073}
59074
59075static void __pyx_tp_dealloc_5rados___pyx_scope_struct_5_validate_func(PyObject *o) {
59076 struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *p = (struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *)o;
59077 PyObject_GC_UnTrack(o);
59078 Py_CLEAR(p->__pyx_outer_scope)do { if (p->__pyx_outer_scope) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_outer_scope); (p->__pyx_outer_scope) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
59079 Py_CLEAR(p->__pyx_v_kwargs)do { if (p->__pyx_v_kwargs) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_kwargs); (p->__pyx_v_kwargs) = ((void*)0
); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59080 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_5_validate_func < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func)))) {
59081 __pyx_freelist_5rados___pyx_scope_struct_5_validate_func[__pyx_freecount_5rados___pyx_scope_struct_5_validate_func++] = ((struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *)o);
59082 } else {
59083 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59084 }
59085}
59086
59087static int __pyx_tp_traverse_5rados___pyx_scope_struct_5_validate_func(PyObject *o, visitproc v, void *a) {
59088 int e;
59089 struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *p = (struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *)o;
59090 if (p->__pyx_outer_scope) {
59091 e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;
59092 }
59093 if (p->__pyx_v_kwargs) {
59094 e = (*v)(p->__pyx_v_kwargs, a); if (e) return e;
59095 }
59096 return 0;
59097}
59098
59099static int __pyx_tp_clear_5rados___pyx_scope_struct_5_validate_func(PyObject *o) {
59100 PyObject* tmp;
59101 struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *p = (struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *)o;
59102 tmp = ((PyObject*)p->__pyx_outer_scope);
59103 p->__pyx_outer_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_4_wrapper *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59104 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59105 tmp = ((PyObject*)p->__pyx_v_kwargs);
59106 p->__pyx_v_kwargs = ((PyObject*)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59107 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59108 return 0;
59109}
59110
59111static PyTypeObject __pyx_type_5rados___pyx_scope_struct_5_validate_func = {
59112 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59113 "rados.__pyx_scope_struct_5_validate_func", /*tp_name*/
59114 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func), /*tp_basicsize*/
59115 0, /*tp_itemsize*/
59116 __pyx_tp_dealloc_5rados___pyx_scope_struct_5_validate_func, /*tp_dealloc*/
59117 0, /*tp_print*/
59118 0, /*tp_getattr*/
59119 0, /*tp_setattr*/
59120 #if PY_MAJOR_VERSION2 < 3
59121 0, /*tp_compare*/
59122 #endif
59123 #if PY_MAJOR_VERSION2 >= 3
59124 0, /*tp_as_async*/
59125 #endif
59126 0, /*tp_repr*/
59127 0, /*tp_as_number*/
59128 0, /*tp_as_sequence*/
59129 0, /*tp_as_mapping*/
59130 0, /*tp_hash*/
59131 0, /*tp_call*/
59132 0, /*tp_str*/
59133 0, /*tp_getattro*/
59134 0, /*tp_setattro*/
59135 0, /*tp_as_buffer*/
59136 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59137 0, /*tp_doc*/
59138 __pyx_tp_traverse_5rados___pyx_scope_struct_5_validate_func, /*tp_traverse*/
59139 __pyx_tp_clear_5rados___pyx_scope_struct_5_validate_func, /*tp_clear*/
59140 0, /*tp_richcompare*/
59141 0, /*tp_weaklistoffset*/
59142 0, /*tp_iter*/
59143 0, /*tp_iternext*/
59144 0, /*tp_methods*/
59145 0, /*tp_members*/
59146 0, /*tp_getset*/
59147 0, /*tp_base*/
59148 0, /*tp_dict*/
59149 0, /*tp_descr_get*/
59150 0, /*tp_descr_set*/
59151 0, /*tp_dictoffset*/
59152 0, /*tp_init*/
59153 0, /*tp_alloc*/
59154 __pyx_tp_new_5rados___pyx_scope_struct_5_validate_func, /*tp_new*/
59155 0, /*tp_free*/
59156 0, /*tp_is_gc*/
59157 0, /*tp_bases*/
59158 0, /*tp_mro*/
59159 0, /*tp_cache*/
59160 0, /*tp_subclasses*/
59161 0, /*tp_weaklist*/
59162 0, /*tp_del*/
59163 0, /*tp_version_tag*/
59164 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59165 0, /*tp_finalize*/
59166 #endif
59167};
59168
59169static struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *__pyx_freelist_5rados___pyx_scope_struct_6_genexpr[8];
59170static int __pyx_freecount_5rados___pyx_scope_struct_6_genexpr = 0;
59171
59172static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_6_genexpr(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59173 PyObject *o;
59174 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_6_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_6_genexpr
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr
))), 1)
) {
59175 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_6_genexpr[--__pyx_freecount_5rados___pyx_scope_struct_6_genexpr];
59176 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr));
59177 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59178 PyObject_GC_Track(o);
59179 } else {
59180 o = (*t->tp_alloc)(t, 0);
59181 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59182 }
59183 return o;
59184}
59185
59186static void __pyx_tp_dealloc_5rados___pyx_scope_struct_6_genexpr(PyObject *o) {
59187 struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *)o;
59188 PyObject_GC_UnTrack(o);
59189 Py_CLEAR(p->__pyx_outer_scope)do { if (p->__pyx_outer_scope) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_outer_scope); (p->__pyx_outer_scope) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
59190 Py_CLEAR(p->__pyx_v_name)do { if (p->__pyx_v_name) { PyObject *_py_tmp = (PyObject *
)(p->__pyx_v_name); (p->__pyx_v_name) = ((void*)0); do {
if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59191 Py_CLEAR(p->__pyx_v_spec)do { if (p->__pyx_v_spec) { PyObject *_py_tmp = (PyObject *
)(p->__pyx_v_spec); (p->__pyx_v_spec) = ((void*)0); do {
if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59192 Py_CLEAR(p->__pyx_t_0)do { if (p->__pyx_t_0) { PyObject *_py_tmp = (PyObject *)(
p->__pyx_t_0); (p->__pyx_t_0) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
59193 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_6_genexpr < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr)))) {
59194 __pyx_freelist_5rados___pyx_scope_struct_6_genexpr[__pyx_freecount_5rados___pyx_scope_struct_6_genexpr++] = ((struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *)o);
59195 } else {
59196 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59197 }
59198}
59199
59200static int __pyx_tp_traverse_5rados___pyx_scope_struct_6_genexpr(PyObject *o, visitproc v, void *a) {
59201 int e;
59202 struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *)o;
59203 if (p->__pyx_outer_scope) {
59204 e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;
59205 }
59206 if (p->__pyx_v_name) {
59207 e = (*v)(p->__pyx_v_name, a); if (e) return e;
59208 }
59209 if (p->__pyx_v_spec) {
59210 e = (*v)(p->__pyx_v_spec, a); if (e) return e;
59211 }
59212 if (p->__pyx_t_0) {
59213 e = (*v)(p->__pyx_t_0, a); if (e) return e;
59214 }
59215 return 0;
59216}
59217
59218static int __pyx_tp_clear_5rados___pyx_scope_struct_6_genexpr(PyObject *o) {
59219 PyObject* tmp;
59220 struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr *)o;
59221 tmp = ((PyObject*)p->__pyx_outer_scope);
59222 p->__pyx_outer_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_5_validate_func *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59223 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59224 tmp = ((PyObject*)p->__pyx_v_name);
59225 p->__pyx_v_name = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59226 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59227 tmp = ((PyObject*)p->__pyx_v_spec);
59228 p->__pyx_v_spec = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59229 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59230 tmp = ((PyObject*)p->__pyx_t_0);
59231 p->__pyx_t_0 = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59232 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59233 return 0;
59234}
59235
59236static PyTypeObject __pyx_type_5rados___pyx_scope_struct_6_genexpr = {
59237 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59238 "rados.__pyx_scope_struct_6_genexpr", /*tp_name*/
59239 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_6_genexpr), /*tp_basicsize*/
59240 0, /*tp_itemsize*/
59241 __pyx_tp_dealloc_5rados___pyx_scope_struct_6_genexpr, /*tp_dealloc*/
59242 0, /*tp_print*/
59243 0, /*tp_getattr*/
59244 0, /*tp_setattr*/
59245 #if PY_MAJOR_VERSION2 < 3
59246 0, /*tp_compare*/
59247 #endif
59248 #if PY_MAJOR_VERSION2 >= 3
59249 0, /*tp_as_async*/
59250 #endif
59251 0, /*tp_repr*/
59252 0, /*tp_as_number*/
59253 0, /*tp_as_sequence*/
59254 0, /*tp_as_mapping*/
59255 0, /*tp_hash*/
59256 0, /*tp_call*/
59257 0, /*tp_str*/
59258 0, /*tp_getattro*/
59259 0, /*tp_setattro*/
59260 0, /*tp_as_buffer*/
59261 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59262 0, /*tp_doc*/
59263 __pyx_tp_traverse_5rados___pyx_scope_struct_6_genexpr, /*tp_traverse*/
59264 __pyx_tp_clear_5rados___pyx_scope_struct_6_genexpr, /*tp_clear*/
59265 0, /*tp_richcompare*/
59266 0, /*tp_weaklistoffset*/
59267 0, /*tp_iter*/
59268 0, /*tp_iternext*/
59269 0, /*tp_methods*/
59270 0, /*tp_members*/
59271 0, /*tp_getset*/
59272 0, /*tp_base*/
59273 0, /*tp_dict*/
59274 0, /*tp_descr_get*/
59275 0, /*tp_descr_set*/
59276 0, /*tp_dictoffset*/
59277 0, /*tp_init*/
59278 0, /*tp_alloc*/
59279 __pyx_tp_new_5rados___pyx_scope_struct_6_genexpr, /*tp_new*/
59280 0, /*tp_free*/
59281 0, /*tp_is_gc*/
59282 0, /*tp_bases*/
59283 0, /*tp_mro*/
59284 0, /*tp_cache*/
59285 0, /*tp_subclasses*/
59286 0, /*tp_weaklist*/
59287 0, /*tp_del*/
59288 0, /*tp_version_tag*/
59289 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59290 0, /*tp_finalize*/
59291 #endif
59292};
59293
59294static struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *__pyx_freelist_5rados___pyx_scope_struct_7_flatten_dict[8];
59295static int __pyx_freecount_5rados___pyx_scope_struct_7_flatten_dict = 0;
59296
59297static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_7_flatten_dict(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59298 PyObject *o;
59299 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_7_flatten_dict > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_7_flatten_dict
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict
))), 1)
) {
59300 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_7_flatten_dict[--__pyx_freecount_5rados___pyx_scope_struct_7_flatten_dict];
59301 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict));
59302 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59303 PyObject_GC_Track(o);
59304 } else {
59305 o = (*t->tp_alloc)(t, 0);
59306 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59307 }
59308 return o;
59309}
59310
59311static void __pyx_tp_dealloc_5rados___pyx_scope_struct_7_flatten_dict(PyObject *o) {
59312 struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *p = (struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *)o;
59313 PyObject_GC_UnTrack(o);
59314 Py_CLEAR(p->__pyx_v_items)do { if (p->__pyx_v_items) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_items); (p->__pyx_v_items) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59315 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_7_flatten_dict < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict)))) {
59316 __pyx_freelist_5rados___pyx_scope_struct_7_flatten_dict[__pyx_freecount_5rados___pyx_scope_struct_7_flatten_dict++] = ((struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *)o);
59317 } else {
59318 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59319 }
59320}
59321
59322static int __pyx_tp_traverse_5rados___pyx_scope_struct_7_flatten_dict(PyObject *o, visitproc v, void *a) {
59323 int e;
59324 struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *p = (struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *)o;
59325 if (p->__pyx_v_items) {
59326 e = (*v)(p->__pyx_v_items, a); if (e) return e;
59327 }
59328 return 0;
59329}
59330
59331static int __pyx_tp_clear_5rados___pyx_scope_struct_7_flatten_dict(PyObject *o) {
59332 PyObject* tmp;
59333 struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *p = (struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *)o;
59334 tmp = ((PyObject*)p->__pyx_v_items);
59335 p->__pyx_v_items = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59336 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59337 return 0;
59338}
59339
59340static PyTypeObject __pyx_type_5rados___pyx_scope_struct_7_flatten_dict = {
59341 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59342 "rados.__pyx_scope_struct_7_flatten_dict", /*tp_name*/
59343 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict), /*tp_basicsize*/
59344 0, /*tp_itemsize*/
59345 __pyx_tp_dealloc_5rados___pyx_scope_struct_7_flatten_dict, /*tp_dealloc*/
59346 0, /*tp_print*/
59347 0, /*tp_getattr*/
59348 0, /*tp_setattr*/
59349 #if PY_MAJOR_VERSION2 < 3
59350 0, /*tp_compare*/
59351 #endif
59352 #if PY_MAJOR_VERSION2 >= 3
59353 0, /*tp_as_async*/
59354 #endif
59355 0, /*tp_repr*/
59356 0, /*tp_as_number*/
59357 0, /*tp_as_sequence*/
59358 0, /*tp_as_mapping*/
59359 0, /*tp_hash*/
59360 0, /*tp_call*/
59361 0, /*tp_str*/
59362 0, /*tp_getattro*/
59363 0, /*tp_setattro*/
59364 0, /*tp_as_buffer*/
59365 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59366 0, /*tp_doc*/
59367 __pyx_tp_traverse_5rados___pyx_scope_struct_7_flatten_dict, /*tp_traverse*/
59368 __pyx_tp_clear_5rados___pyx_scope_struct_7_flatten_dict, /*tp_clear*/
59369 0, /*tp_richcompare*/
59370 0, /*tp_weaklistoffset*/
59371 0, /*tp_iter*/
59372 0, /*tp_iternext*/
59373 0, /*tp_methods*/
59374 0, /*tp_members*/
59375 0, /*tp_getset*/
59376 0, /*tp_base*/
59377 0, /*tp_dict*/
59378 0, /*tp_descr_get*/
59379 0, /*tp_descr_set*/
59380 0, /*tp_dictoffset*/
59381 0, /*tp_init*/
59382 0, /*tp_alloc*/
59383 __pyx_tp_new_5rados___pyx_scope_struct_7_flatten_dict, /*tp_new*/
59384 0, /*tp_free*/
59385 0, /*tp_is_gc*/
59386 0, /*tp_bases*/
59387 0, /*tp_mro*/
59388 0, /*tp_cache*/
59389 0, /*tp_subclasses*/
59390 0, /*tp_weaklist*/
59391 0, /*tp_del*/
59392 0, /*tp_version_tag*/
59393 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59394 0, /*tp_finalize*/
59395 #endif
59396};
59397
59398static struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *__pyx_freelist_5rados___pyx_scope_struct_8_genexpr[8];
59399static int __pyx_freecount_5rados___pyx_scope_struct_8_genexpr = 0;
59400
59401static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_8_genexpr(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59402 PyObject *o;
59403 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_8_genexpr > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_8_genexpr
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr
))), 1)
) {
59404 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_8_genexpr[--__pyx_freecount_5rados___pyx_scope_struct_8_genexpr];
59405 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr));
59406 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59407 PyObject_GC_Track(o);
59408 } else {
59409 o = (*t->tp_alloc)(t, 0);
59410 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59411 }
59412 return o;
59413}
59414
59415static void __pyx_tp_dealloc_5rados___pyx_scope_struct_8_genexpr(PyObject *o) {
59416 struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *)o;
59417 PyObject_GC_UnTrack(o);
59418 Py_CLEAR(p->__pyx_outer_scope)do { if (p->__pyx_outer_scope) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_outer_scope); (p->__pyx_outer_scope) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
59419 Py_CLEAR(p->__pyx_v_i)do { if (p->__pyx_v_i) { PyObject *_py_tmp = (PyObject *)(
p->__pyx_v_i); (p->__pyx_v_i) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
59420 Py_CLEAR(p->__pyx_t_0)do { if (p->__pyx_t_0) { PyObject *_py_tmp = (PyObject *)(
p->__pyx_t_0); (p->__pyx_t_0) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
59421 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_8_genexpr < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr)))) {
59422 __pyx_freelist_5rados___pyx_scope_struct_8_genexpr[__pyx_freecount_5rados___pyx_scope_struct_8_genexpr++] = ((struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *)o);
59423 } else {
59424 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59425 }
59426}
59427
59428static int __pyx_tp_traverse_5rados___pyx_scope_struct_8_genexpr(PyObject *o, visitproc v, void *a) {
59429 int e;
59430 struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *)o;
59431 if (p->__pyx_outer_scope) {
59432 e = (*v)(((PyObject*)p->__pyx_outer_scope), a); if (e) return e;
59433 }
59434 if (p->__pyx_v_i) {
59435 e = (*v)(p->__pyx_v_i, a); if (e) return e;
59436 }
59437 if (p->__pyx_t_0) {
59438 e = (*v)(p->__pyx_t_0, a); if (e) return e;
59439 }
59440 return 0;
59441}
59442
59443static int __pyx_tp_clear_5rados___pyx_scope_struct_8_genexpr(PyObject *o) {
59444 PyObject* tmp;
59445 struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *p = (struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr *)o;
59446 tmp = ((PyObject*)p->__pyx_outer_scope);
59447 p->__pyx_outer_scope = ((struct __pyx_obj_5rados___pyx_scope_struct_7_flatten_dict *)Py_None(&_Py_NoneStruct)); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59448 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59449 tmp = ((PyObject*)p->__pyx_v_i);
59450 p->__pyx_v_i = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59451 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59452 tmp = ((PyObject*)p->__pyx_t_0);
59453 p->__pyx_t_0 = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59454 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59455 return 0;
59456}
59457
59458static PyTypeObject __pyx_type_5rados___pyx_scope_struct_8_genexpr = {
59459 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59460 "rados.__pyx_scope_struct_8_genexpr", /*tp_name*/
59461 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_8_genexpr), /*tp_basicsize*/
59462 0, /*tp_itemsize*/
59463 __pyx_tp_dealloc_5rados___pyx_scope_struct_8_genexpr, /*tp_dealloc*/
59464 0, /*tp_print*/
59465 0, /*tp_getattr*/
59466 0, /*tp_setattr*/
59467 #if PY_MAJOR_VERSION2 < 3
59468 0, /*tp_compare*/
59469 #endif
59470 #if PY_MAJOR_VERSION2 >= 3
59471 0, /*tp_as_async*/
59472 #endif
59473 0, /*tp_repr*/
59474 0, /*tp_as_number*/
59475 0, /*tp_as_sequence*/
59476 0, /*tp_as_mapping*/
59477 0, /*tp_hash*/
59478 0, /*tp_call*/
59479 0, /*tp_str*/
59480 0, /*tp_getattro*/
59481 0, /*tp_setattro*/
59482 0, /*tp_as_buffer*/
59483 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59484 0, /*tp_doc*/
59485 __pyx_tp_traverse_5rados___pyx_scope_struct_8_genexpr, /*tp_traverse*/
59486 __pyx_tp_clear_5rados___pyx_scope_struct_8_genexpr, /*tp_clear*/
59487 0, /*tp_richcompare*/
59488 0, /*tp_weaklistoffset*/
59489 0, /*tp_iter*/
59490 0, /*tp_iternext*/
59491 0, /*tp_methods*/
59492 0, /*tp_members*/
59493 0, /*tp_getset*/
59494 0, /*tp_base*/
59495 0, /*tp_dict*/
59496 0, /*tp_descr_get*/
59497 0, /*tp_descr_set*/
59498 0, /*tp_dictoffset*/
59499 0, /*tp_init*/
59500 0, /*tp_alloc*/
59501 __pyx_tp_new_5rados___pyx_scope_struct_8_genexpr, /*tp_new*/
59502 0, /*tp_free*/
59503 0, /*tp_is_gc*/
59504 0, /*tp_bases*/
59505 0, /*tp_mro*/
59506 0, /*tp_cache*/
59507 0, /*tp_subclasses*/
59508 0, /*tp_weaklist*/
59509 0, /*tp_del*/
59510 0, /*tp_version_tag*/
59511 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59512 0, /*tp_finalize*/
59513 #endif
59514};
59515
59516static struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *__pyx_freelist_5rados___pyx_scope_struct_9_aio_stat[8];
59517static int __pyx_freecount_5rados___pyx_scope_struct_9_aio_stat = 0;
59518
59519static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_9_aio_stat(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59520 PyObject *o;
59521 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_9_aio_stat > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_9_aio_stat
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat
))), 1)
) {
59522 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_9_aio_stat[--__pyx_freecount_5rados___pyx_scope_struct_9_aio_stat];
59523 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat));
59524 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59525 PyObject_GC_Track(o);
59526 } else {
59527 o = (*t->tp_alloc)(t, 0);
59528 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59529 }
59530 return o;
59531}
59532
59533static void __pyx_tp_dealloc_5rados___pyx_scope_struct_9_aio_stat(PyObject *o) {
59534 struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *p = (struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *)o;
59535 PyObject_GC_UnTrack(o);
59536 Py_CLEAR(p->__pyx_v_oncomplete)do { if (p->__pyx_v_oncomplete) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_oncomplete); (p->__pyx_v_oncomplete) = (
(void*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while
(0); } } while (0)
;
59537 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_9_aio_stat < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat)))) {
59538 __pyx_freelist_5rados___pyx_scope_struct_9_aio_stat[__pyx_freecount_5rados___pyx_scope_struct_9_aio_stat++] = ((struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *)o);
59539 } else {
59540 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59541 }
59542}
59543
59544static int __pyx_tp_traverse_5rados___pyx_scope_struct_9_aio_stat(PyObject *o, visitproc v, void *a) {
59545 int e;
59546 struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *p = (struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *)o;
59547 if (p->__pyx_v_oncomplete) {
59548 e = (*v)(p->__pyx_v_oncomplete, a); if (e) return e;
59549 }
59550 return 0;
59551}
59552
59553static int __pyx_tp_clear_5rados___pyx_scope_struct_9_aio_stat(PyObject *o) {
59554 PyObject* tmp;
59555 struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *p = (struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat *)o;
59556 tmp = ((PyObject*)p->__pyx_v_oncomplete);
59557 p->__pyx_v_oncomplete = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59558 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59559 return 0;
59560}
59561
59562static PyTypeObject __pyx_type_5rados___pyx_scope_struct_9_aio_stat = {
59563 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59564 "rados.__pyx_scope_struct_9_aio_stat", /*tp_name*/
59565 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_9_aio_stat), /*tp_basicsize*/
59566 0, /*tp_itemsize*/
59567 __pyx_tp_dealloc_5rados___pyx_scope_struct_9_aio_stat, /*tp_dealloc*/
59568 0, /*tp_print*/
59569 0, /*tp_getattr*/
59570 0, /*tp_setattr*/
59571 #if PY_MAJOR_VERSION2 < 3
59572 0, /*tp_compare*/
59573 #endif
59574 #if PY_MAJOR_VERSION2 >= 3
59575 0, /*tp_as_async*/
59576 #endif
59577 0, /*tp_repr*/
59578 0, /*tp_as_number*/
59579 0, /*tp_as_sequence*/
59580 0, /*tp_as_mapping*/
59581 0, /*tp_hash*/
59582 0, /*tp_call*/
59583 0, /*tp_str*/
59584 0, /*tp_getattro*/
59585 0, /*tp_setattro*/
59586 0, /*tp_as_buffer*/
59587 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59588 0, /*tp_doc*/
59589 __pyx_tp_traverse_5rados___pyx_scope_struct_9_aio_stat, /*tp_traverse*/
59590 __pyx_tp_clear_5rados___pyx_scope_struct_9_aio_stat, /*tp_clear*/
59591 0, /*tp_richcompare*/
59592 0, /*tp_weaklistoffset*/
59593 0, /*tp_iter*/
59594 0, /*tp_iternext*/
59595 0, /*tp_methods*/
59596 0, /*tp_members*/
59597 0, /*tp_getset*/
59598 0, /*tp_base*/
59599 0, /*tp_dict*/
59600 0, /*tp_descr_get*/
59601 0, /*tp_descr_set*/
59602 0, /*tp_dictoffset*/
59603 0, /*tp_init*/
59604 0, /*tp_alloc*/
59605 __pyx_tp_new_5rados___pyx_scope_struct_9_aio_stat, /*tp_new*/
59606 0, /*tp_free*/
59607 0, /*tp_is_gc*/
59608 0, /*tp_bases*/
59609 0, /*tp_mro*/
59610 0, /*tp_cache*/
59611 0, /*tp_subclasses*/
59612 0, /*tp_weaklist*/
59613 0, /*tp_del*/
59614 0, /*tp_version_tag*/
59615 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59616 0, /*tp_finalize*/
59617 #endif
59618};
59619
59620static struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *__pyx_freelist_5rados___pyx_scope_struct_10_aio_read[8];
59621static int __pyx_freecount_5rados___pyx_scope_struct_10_aio_read = 0;
59622
59623static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_10_aio_read(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59624 PyObject *o;
59625 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_10_aio_read > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_10_aio_read
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read
))), 1)
) {
59626 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_10_aio_read[--__pyx_freecount_5rados___pyx_scope_struct_10_aio_read];
59627 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read));
59628 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59629 PyObject_GC_Track(o);
59630 } else {
59631 o = (*t->tp_alloc)(t, 0);
59632 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59633 }
59634 return o;
59635}
59636
59637static void __pyx_tp_dealloc_5rados___pyx_scope_struct_10_aio_read(PyObject *o) {
59638 struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *p = (struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *)o;
59639 PyObject_GC_UnTrack(o);
59640 Py_CLEAR(p->__pyx_v_length)do { if (p->__pyx_v_length) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_length); (p->__pyx_v_length) = ((void*)0
); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59641 Py_CLEAR(p->__pyx_v_oncomplete)do { if (p->__pyx_v_oncomplete) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_oncomplete); (p->__pyx_v_oncomplete) = (
(void*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while
(0); } } while (0)
;
59642 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_10_aio_read < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read)))) {
59643 __pyx_freelist_5rados___pyx_scope_struct_10_aio_read[__pyx_freecount_5rados___pyx_scope_struct_10_aio_read++] = ((struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *)o);
59644 } else {
59645 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59646 }
59647}
59648
59649static int __pyx_tp_traverse_5rados___pyx_scope_struct_10_aio_read(PyObject *o, visitproc v, void *a) {
59650 int e;
59651 struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *p = (struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *)o;
59652 if (p->__pyx_v_length) {
59653 e = (*v)(p->__pyx_v_length, a); if (e) return e;
59654 }
59655 if (p->__pyx_v_oncomplete) {
59656 e = (*v)(p->__pyx_v_oncomplete, a); if (e) return e;
59657 }
59658 return 0;
59659}
59660
59661static int __pyx_tp_clear_5rados___pyx_scope_struct_10_aio_read(PyObject *o) {
59662 PyObject* tmp;
59663 struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *p = (struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read *)o;
59664 tmp = ((PyObject*)p->__pyx_v_length);
59665 p->__pyx_v_length = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59666 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59667 tmp = ((PyObject*)p->__pyx_v_oncomplete);
59668 p->__pyx_v_oncomplete = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59669 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59670 return 0;
59671}
59672
59673static PyTypeObject __pyx_type_5rados___pyx_scope_struct_10_aio_read = {
59674 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59675 "rados.__pyx_scope_struct_10_aio_read", /*tp_name*/
59676 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_10_aio_read), /*tp_basicsize*/
59677 0, /*tp_itemsize*/
59678 __pyx_tp_dealloc_5rados___pyx_scope_struct_10_aio_read, /*tp_dealloc*/
59679 0, /*tp_print*/
59680 0, /*tp_getattr*/
59681 0, /*tp_setattr*/
59682 #if PY_MAJOR_VERSION2 < 3
59683 0, /*tp_compare*/
59684 #endif
59685 #if PY_MAJOR_VERSION2 >= 3
59686 0, /*tp_as_async*/
59687 #endif
59688 0, /*tp_repr*/
59689 0, /*tp_as_number*/
59690 0, /*tp_as_sequence*/
59691 0, /*tp_as_mapping*/
59692 0, /*tp_hash*/
59693 0, /*tp_call*/
59694 0, /*tp_str*/
59695 0, /*tp_getattro*/
59696 0, /*tp_setattro*/
59697 0, /*tp_as_buffer*/
59698 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59699 0, /*tp_doc*/
59700 __pyx_tp_traverse_5rados___pyx_scope_struct_10_aio_read, /*tp_traverse*/
59701 __pyx_tp_clear_5rados___pyx_scope_struct_10_aio_read, /*tp_clear*/
59702 0, /*tp_richcompare*/
59703 0, /*tp_weaklistoffset*/
59704 0, /*tp_iter*/
59705 0, /*tp_iternext*/
59706 0, /*tp_methods*/
59707 0, /*tp_members*/
59708 0, /*tp_getset*/
59709 0, /*tp_base*/
59710 0, /*tp_dict*/
59711 0, /*tp_descr_get*/
59712 0, /*tp_descr_set*/
59713 0, /*tp_dictoffset*/
59714 0, /*tp_init*/
59715 0, /*tp_alloc*/
59716 __pyx_tp_new_5rados___pyx_scope_struct_10_aio_read, /*tp_new*/
59717 0, /*tp_free*/
59718 0, /*tp_is_gc*/
59719 0, /*tp_bases*/
59720 0, /*tp_mro*/
59721 0, /*tp_cache*/
59722 0, /*tp_subclasses*/
59723 0, /*tp_weaklist*/
59724 0, /*tp_del*/
59725 0, /*tp_version_tag*/
59726 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59727 0, /*tp_finalize*/
59728 #endif
59729};
59730
59731static struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *__pyx_freelist_5rados___pyx_scope_struct_11_aio_execute[8];
59732static int __pyx_freecount_5rados___pyx_scope_struct_11_aio_execute = 0;
59733
59734static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_11_aio_execute(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59735 PyObject *o;
59736 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_11_aio_execute > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_11_aio_execute
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute
))), 1)
) {
59737 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_11_aio_execute[--__pyx_freecount_5rados___pyx_scope_struct_11_aio_execute];
59738 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute));
59739 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59740 PyObject_GC_Track(o);
59741 } else {
59742 o = (*t->tp_alloc)(t, 0);
59743 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59744 }
59745 return o;
59746}
59747
59748static void __pyx_tp_dealloc_5rados___pyx_scope_struct_11_aio_execute(PyObject *o) {
59749 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *p = (struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *)o;
59750 PyObject_GC_UnTrack(o);
59751 Py_CLEAR(p->__pyx_v_length)do { if (p->__pyx_v_length) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_length); (p->__pyx_v_length) = ((void*)0
); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59752 Py_CLEAR(p->__pyx_v_oncomplete)do { if (p->__pyx_v_oncomplete) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_oncomplete); (p->__pyx_v_oncomplete) = (
(void*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt !=
0) ; else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while
(0); } } while (0)
;
59753 Py_CLEAR(p->__pyx_v_onsafe)do { if (p->__pyx_v_onsafe) { PyObject *_py_tmp = (PyObject
*)(p->__pyx_v_onsafe); (p->__pyx_v_onsafe) = ((void*)0
); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59754 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_11_aio_execute < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute)))) {
59755 __pyx_freelist_5rados___pyx_scope_struct_11_aio_execute[__pyx_freecount_5rados___pyx_scope_struct_11_aio_execute++] = ((struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *)o);
59756 } else {
59757 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59758 }
59759}
59760
59761static int __pyx_tp_traverse_5rados___pyx_scope_struct_11_aio_execute(PyObject *o, visitproc v, void *a) {
59762 int e;
59763 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *p = (struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *)o;
59764 if (p->__pyx_v_length) {
59765 e = (*v)(p->__pyx_v_length, a); if (e) return e;
59766 }
59767 if (p->__pyx_v_oncomplete) {
59768 e = (*v)(p->__pyx_v_oncomplete, a); if (e) return e;
59769 }
59770 if (p->__pyx_v_onsafe) {
59771 e = (*v)(p->__pyx_v_onsafe, a); if (e) return e;
59772 }
59773 return 0;
59774}
59775
59776static int __pyx_tp_clear_5rados___pyx_scope_struct_11_aio_execute(PyObject *o) {
59777 PyObject* tmp;
59778 struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *p = (struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute *)o;
59779 tmp = ((PyObject*)p->__pyx_v_length);
59780 p->__pyx_v_length = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59781 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59782 tmp = ((PyObject*)p->__pyx_v_oncomplete);
59783 p->__pyx_v_oncomplete = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59784 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59785 tmp = ((PyObject*)p->__pyx_v_onsafe);
59786 p->__pyx_v_onsafe = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59787 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59788 return 0;
59789}
59790
59791static PyTypeObject __pyx_type_5rados___pyx_scope_struct_11_aio_execute = {
59792 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59793 "rados.__pyx_scope_struct_11_aio_execute", /*tp_name*/
59794 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_11_aio_execute), /*tp_basicsize*/
59795 0, /*tp_itemsize*/
59796 __pyx_tp_dealloc_5rados___pyx_scope_struct_11_aio_execute, /*tp_dealloc*/
59797 0, /*tp_print*/
59798 0, /*tp_getattr*/
59799 0, /*tp_setattr*/
59800 #if PY_MAJOR_VERSION2 < 3
59801 0, /*tp_compare*/
59802 #endif
59803 #if PY_MAJOR_VERSION2 >= 3
59804 0, /*tp_as_async*/
59805 #endif
59806 0, /*tp_repr*/
59807 0, /*tp_as_number*/
59808 0, /*tp_as_sequence*/
59809 0, /*tp_as_mapping*/
59810 0, /*tp_hash*/
59811 0, /*tp_call*/
59812 0, /*tp_str*/
59813 0, /*tp_getattro*/
59814 0, /*tp_setattro*/
59815 0, /*tp_as_buffer*/
59816 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59817 0, /*tp_doc*/
59818 __pyx_tp_traverse_5rados___pyx_scope_struct_11_aio_execute, /*tp_traverse*/
59819 __pyx_tp_clear_5rados___pyx_scope_struct_11_aio_execute, /*tp_clear*/
59820 0, /*tp_richcompare*/
59821 0, /*tp_weaklistoffset*/
59822 0, /*tp_iter*/
59823 0, /*tp_iternext*/
59824 0, /*tp_methods*/
59825 0, /*tp_members*/
59826 0, /*tp_getset*/
59827 0, /*tp_base*/
59828 0, /*tp_dict*/
59829 0, /*tp_descr_get*/
59830 0, /*tp_descr_set*/
59831 0, /*tp_dictoffset*/
59832 0, /*tp_init*/
59833 0, /*tp_alloc*/
59834 __pyx_tp_new_5rados___pyx_scope_struct_11_aio_execute, /*tp_new*/
59835 0, /*tp_free*/
59836 0, /*tp_is_gc*/
59837 0, /*tp_bases*/
59838 0, /*tp_mro*/
59839 0, /*tp_cache*/
59840 0, /*tp_subclasses*/
59841 0, /*tp_weaklist*/
59842 0, /*tp_del*/
59843 0, /*tp_version_tag*/
59844 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59845 0, /*tp_finalize*/
59846 #endif
59847};
59848
59849static struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *__pyx_freelist_5rados___pyx_scope_struct_12_set_object_locator[8];
59850static int __pyx_freecount_5rados___pyx_scope_struct_12_set_object_locator = 0;
59851
59852static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_12_set_object_locator(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59853 PyObject *o;
59854 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_12_set_object_locator > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_12_set_object_locator
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator
))), 1)
) {
59855 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_12_set_object_locator[--__pyx_freecount_5rados___pyx_scope_struct_12_set_object_locator];
59856 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator));
59857 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59858 PyObject_GC_Track(o);
59859 } else {
59860 o = (*t->tp_alloc)(t, 0);
59861 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59862 }
59863 return o;
59864}
59865
59866static void __pyx_tp_dealloc_5rados___pyx_scope_struct_12_set_object_locator(PyObject *o) {
59867 struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *p = (struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *)o;
59868 PyObject_GC_UnTrack(o);
59869 Py_CLEAR(p->__pyx_v_func)do { if (p->__pyx_v_func) { PyObject *_py_tmp = (PyObject *
)(p->__pyx_v_func); (p->__pyx_v_func) = ((void*)0); do {
if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59870 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_12_set_object_locator < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator)))) {
59871 __pyx_freelist_5rados___pyx_scope_struct_12_set_object_locator[__pyx_freecount_5rados___pyx_scope_struct_12_set_object_locator++] = ((struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *)o);
59872 } else {
59873 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59874 }
59875}
59876
59877static int __pyx_tp_traverse_5rados___pyx_scope_struct_12_set_object_locator(PyObject *o, visitproc v, void *a) {
59878 int e;
59879 struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *p = (struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *)o;
59880 if (p->__pyx_v_func) {
59881 e = (*v)(p->__pyx_v_func, a); if (e) return e;
59882 }
59883 return 0;
59884}
59885
59886static int __pyx_tp_clear_5rados___pyx_scope_struct_12_set_object_locator(PyObject *o) {
59887 PyObject* tmp;
59888 struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *p = (struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator *)o;
59889 tmp = ((PyObject*)p->__pyx_v_func);
59890 p->__pyx_v_func = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59891 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59892 return 0;
59893}
59894
59895static PyTypeObject __pyx_type_5rados___pyx_scope_struct_12_set_object_locator = {
59896 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
59897 "rados.__pyx_scope_struct_12_set_object_locator", /*tp_name*/
59898 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_12_set_object_locator), /*tp_basicsize*/
59899 0, /*tp_itemsize*/
59900 __pyx_tp_dealloc_5rados___pyx_scope_struct_12_set_object_locator, /*tp_dealloc*/
59901 0, /*tp_print*/
59902 0, /*tp_getattr*/
59903 0, /*tp_setattr*/
59904 #if PY_MAJOR_VERSION2 < 3
59905 0, /*tp_compare*/
59906 #endif
59907 #if PY_MAJOR_VERSION2 >= 3
59908 0, /*tp_as_async*/
59909 #endif
59910 0, /*tp_repr*/
59911 0, /*tp_as_number*/
59912 0, /*tp_as_sequence*/
59913 0, /*tp_as_mapping*/
59914 0, /*tp_hash*/
59915 0, /*tp_call*/
59916 0, /*tp_str*/
59917 0, /*tp_getattro*/
59918 0, /*tp_setattro*/
59919 0, /*tp_as_buffer*/
59920 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
59921 0, /*tp_doc*/
59922 __pyx_tp_traverse_5rados___pyx_scope_struct_12_set_object_locator, /*tp_traverse*/
59923 __pyx_tp_clear_5rados___pyx_scope_struct_12_set_object_locator, /*tp_clear*/
59924 0, /*tp_richcompare*/
59925 0, /*tp_weaklistoffset*/
59926 0, /*tp_iter*/
59927 0, /*tp_iternext*/
59928 0, /*tp_methods*/
59929 0, /*tp_members*/
59930 0, /*tp_getset*/
59931 0, /*tp_base*/
59932 0, /*tp_dict*/
59933 0, /*tp_descr_get*/
59934 0, /*tp_descr_set*/
59935 0, /*tp_dictoffset*/
59936 0, /*tp_init*/
59937 0, /*tp_alloc*/
59938 __pyx_tp_new_5rados___pyx_scope_struct_12_set_object_locator, /*tp_new*/
59939 0, /*tp_free*/
59940 0, /*tp_is_gc*/
59941 0, /*tp_bases*/
59942 0, /*tp_mro*/
59943 0, /*tp_cache*/
59944 0, /*tp_subclasses*/
59945 0, /*tp_weaklist*/
59946 0, /*tp_del*/
59947 0, /*tp_version_tag*/
59948 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
59949 0, /*tp_finalize*/
59950 #endif
59951};
59952
59953static struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *__pyx_freelist_5rados___pyx_scope_struct_13_set_object_namespace[8];
59954static int __pyx_freecount_5rados___pyx_scope_struct_13_set_object_namespace = 0;
59955
59956static PyObject *__pyx_tp_new_5rados___pyx_scope_struct_13_set_object_namespace(PyTypeObject *t, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *a, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *k) {
59957 PyObject *o;
59958 if (CYTHON_COMPILING_IN_CPYTHON1 && likely((__pyx_freecount_5rados___pyx_scope_struct_13_set_object_namespace > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace)))__builtin_expect(!!((__pyx_freecount_5rados___pyx_scope_struct_13_set_object_namespace
> 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace
))), 1)
) {
59959 o = (PyObject*)__pyx_freelist_5rados___pyx_scope_struct_13_set_object_namespace[--__pyx_freecount_5rados___pyx_scope_struct_13_set_object_namespace];
59960 memset(o, 0, sizeof(struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace));
59961 (void) PyObject_INIT(o, t)( (((PyObject*)(o))->ob_type) = (t), ( (((PyObject*)((PyObject
*)(o)))->ob_refcnt) = 1), (o) )
;
59962 PyObject_GC_Track(o);
59963 } else {
59964 o = (*t->tp_alloc)(t, 0);
59965 if (unlikely(!o)__builtin_expect(!!(!o), 0)) return 0;
59966 }
59967 return o;
59968}
59969
59970static void __pyx_tp_dealloc_5rados___pyx_scope_struct_13_set_object_namespace(PyObject *o) {
59971 struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *p = (struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *)o;
59972 PyObject_GC_UnTrack(o);
59973 Py_CLEAR(p->__pyx_v_func)do { if (p->__pyx_v_func) { PyObject *_py_tmp = (PyObject *
)(p->__pyx_v_func); (p->__pyx_v_func) = ((void*)0); do {
if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
59974 if (CYTHON_COMPILING_IN_CPYTHON1 && ((__pyx_freecount_5rados___pyx_scope_struct_13_set_object_namespace < 8) & (Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_basicsize == sizeof(struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace)))) {
59975 __pyx_freelist_5rados___pyx_scope_struct_13_set_object_namespace[__pyx_freecount_5rados___pyx_scope_struct_13_set_object_namespace++] = ((struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *)o);
59976 } else {
59977 (*Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_free)(o);
59978 }
59979}
59980
59981static int __pyx_tp_traverse_5rados___pyx_scope_struct_13_set_object_namespace(PyObject *o, visitproc v, void *a) {
59982 int e;
59983 struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *p = (struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *)o;
59984 if (p->__pyx_v_func) {
59985 e = (*v)(p->__pyx_v_func, a); if (e) return e;
59986 }
59987 return 0;
59988}
59989
59990static int __pyx_tp_clear_5rados___pyx_scope_struct_13_set_object_namespace(PyObject *o) {
59991 PyObject* tmp;
59992 struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *p = (struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace *)o;
59993 tmp = ((PyObject*)p->__pyx_v_func);
59994 p->__pyx_v_func = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
59995 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
59996 return 0;
59997}
59998
59999static PyTypeObject __pyx_type_5rados___pyx_scope_struct_13_set_object_namespace = {
60000 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
60001 "rados.__pyx_scope_struct_13_set_object_namespace", /*tp_name*/
60002 sizeof(struct __pyx_obj_5rados___pyx_scope_struct_13_set_object_namespace), /*tp_basicsize*/
60003 0, /*tp_itemsize*/
60004 __pyx_tp_dealloc_5rados___pyx_scope_struct_13_set_object_namespace, /*tp_dealloc*/
60005 0, /*tp_print*/
60006 0, /*tp_getattr*/
60007 0, /*tp_setattr*/
60008 #if PY_MAJOR_VERSION2 < 3
60009 0, /*tp_compare*/
60010 #endif
60011 #if PY_MAJOR_VERSION2 >= 3
60012 0, /*tp_as_async*/
60013 #endif
60014 0, /*tp_repr*/
60015 0, /*tp_as_number*/
60016 0, /*tp_as_sequence*/
60017 0, /*tp_as_mapping*/
60018 0, /*tp_hash*/
60019 0, /*tp_call*/
60020 0, /*tp_str*/
60021 0, /*tp_getattro*/
60022 0, /*tp_setattro*/
60023 0, /*tp_as_buffer*/
60024 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
|Py_TPFLAGS_HAVE_VERSION_TAG(1L<<18)|Py_TPFLAGS_CHECKTYPES(1L<<4)|Py_TPFLAGS_HAVE_NEWBUFFER(1L<<21)|Py_TPFLAGS_HAVE_GC(1L<<14), /*tp_flags*/
60025 0, /*tp_doc*/
60026 __pyx_tp_traverse_5rados___pyx_scope_struct_13_set_object_namespace, /*tp_traverse*/
60027 __pyx_tp_clear_5rados___pyx_scope_struct_13_set_object_namespace, /*tp_clear*/
60028 0, /*tp_richcompare*/
60029 0, /*tp_weaklistoffset*/
60030 0, /*tp_iter*/
60031 0, /*tp_iternext*/
60032 0, /*tp_methods*/
60033 0, /*tp_members*/
60034 0, /*tp_getset*/
60035 0, /*tp_base*/
60036 0, /*tp_dict*/
60037 0, /*tp_descr_get*/
60038 0, /*tp_descr_set*/
60039 0, /*tp_dictoffset*/
60040 0, /*tp_init*/
60041 0, /*tp_alloc*/
60042 __pyx_tp_new_5rados___pyx_scope_struct_13_set_object_namespace, /*tp_new*/
60043 0, /*tp_free*/
60044 0, /*tp_is_gc*/
60045 0, /*tp_bases*/
60046 0, /*tp_mro*/
60047 0, /*tp_cache*/
60048 0, /*tp_subclasses*/
60049 0, /*tp_weaklist*/
60050 0, /*tp_del*/
60051 0, /*tp_version_tag*/
60052 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
60053 0, /*tp_finalize*/
60054 #endif
60055};
60056
60057static PyMethodDef __pyx_methods[] = {
60058 {0, 0, 0, 0}
60059};
60060
60061#if PY_MAJOR_VERSION2 >= 3
60062static struct PyModuleDef __pyx_moduledef = {
60063 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x03020000
60064 { PyObject_HEAD_INIT(NULL)1, ((void*)0), NULL((void*)0), 0, NULL((void*)0) },
60065 #else
60066 PyModuleDef_HEAD_INIT,
60067 #endif
60068 "rados",
60069 __pyx_k_This_module_is_a_thin_wrapper_a, /* m_doc */
60070 -1, /* m_size */
60071 __pyx_methods /* m_methods */,
60072 NULL((void*)0), /* m_reload */
60073 NULL((void*)0), /* m_traverse */
60074 NULL((void*)0), /* m_clear */
60075 NULL((void*)0) /* m_free */
60076};
60077#endif
60078
60079static __Pyx_StringTabEntry __pyx_string_tab[] = {
60080 {&__pyx_n_s_ADMIN_AUID, __pyx_k_ADMIN_AUID, sizeof(__pyx_k_ADMIN_AUID), 0, 0, 1, 1},
60081 {&__pyx_n_s_ANONYMOUS_AUID, __pyx_k_ANONYMOUS_AUID, sizeof(__pyx_k_ANONYMOUS_AUID), 0, 0, 1, 1},
60082 {&__pyx_n_s_CEPH_ARGS, __pyx_k_CEPH_ARGS, sizeof(__pyx_k_CEPH_ARGS), 0, 0, 1, 1},
60083 {&__pyx_n_s_Callable, __pyx_k_Callable, sizeof(__pyx_k_Callable), 0, 0, 1, 1},
60084 {&__pyx_n_s_Error, __pyx_k_Error, sizeof(__pyx_k_Error), 0, 0, 1, 1},
60085 {&__pyx_n_s_Error___init, __pyx_k_Error___init, sizeof(__pyx_k_Error___init), 0, 0, 1, 1},
60086 {&__pyx_n_s_Error___reduce, __pyx_k_Error___reduce, sizeof(__pyx_k_Error___reduce), 0, 0, 1, 1},
60087 {&__pyx_n_s_Error___str, __pyx_k_Error___str, sizeof(__pyx_k_Error___str), 0, 0, 1, 1},
60088 {&__pyx_kp_s_Error_class_derived_from_Except, __pyx_k_Error_class_derived_from_Except, sizeof(__pyx_k_Error_class_derived_from_Except), 0, 0, 1, 0},
60089 {&__pyx_n_s_Exception, __pyx_k_Exception, sizeof(__pyx_k_Exception), 0, 0, 1, 1},
60090 {&__pyx_kp_s_Failed_to_create_self_managed_sn, __pyx_k_Failed_to_create_self_managed_sn, sizeof(__pyx_k_Failed_to_create_self_managed_sn), 0, 0, 1, 0},
60091 {&__pyx_kp_s_Failed_to_create_snap_s, __pyx_k_Failed_to_create_snap_s, sizeof(__pyx_k_Failed_to_create_snap_s), 0, 0, 1, 0},
60092 {&__pyx_kp_s_Failed_to_delete_key_r_xattr_r, __pyx_k_Failed_to_delete_key_r_xattr_r, sizeof(__pyx_k_Failed_to_delete_key_r_xattr_r), 0, 0, 1, 0},
60093 {&__pyx_kp_s_Failed_to_get_rados_xattrs_for_o, __pyx_k_Failed_to_get_rados_xattrs_for_o, sizeof(__pyx_k_Failed_to_get_rados_xattrs_for_o), 0, 0, 1, 0},
60094 {&__pyx_kp_s_Failed_to_get_xattr_r, __pyx_k_Failed_to_get_xattr_r, sizeof(__pyx_k_Failed_to_get_xattr_r), 0, 0, 1, 0},
60095 {&__pyx_kp_s_Failed_to_lookup_snap_s, __pyx_k_Failed_to_lookup_snap_s, sizeof(__pyx_k_Failed_to_lookup_snap_s), 0, 0, 1, 0},
60096 {&__pyx_kp_s_Failed_to_notify_r, __pyx_k_Failed_to_notify_r, sizeof(__pyx_k_Failed_to_notify_r), 0, 0, 1, 0},
60097 {&__pyx_kp_s_Failed_to_operate_aio_read_op_fo, __pyx_k_Failed_to_operate_aio_read_op_fo, sizeof(__pyx_k_Failed_to_operate_aio_read_op_fo), 0, 0, 1, 0},
60098 {&__pyx_kp_s_Failed_to_operate_aio_write_op_f, __pyx_k_Failed_to_operate_aio_write_op_f, sizeof(__pyx_k_Failed_to_operate_aio_write_op_f), 0, 0, 1, 0},
60099 {&__pyx_kp_s_Failed_to_operate_read_op_for_oi, __pyx_k_Failed_to_operate_read_op_for_oi, sizeof(__pyx_k_Failed_to_operate_read_op_for_oi), 0, 0, 1, 0},
60100 {&__pyx_kp_s_Failed_to_operate_write_op_for_o, __pyx_k_Failed_to_operate_write_op_for_o, sizeof(__pyx_k_Failed_to_operate_write_op_for_o), 0, 0, 1, 0},
60101 {&__pyx_kp_s_Failed_to_remove_s, __pyx_k_Failed_to_remove_s, sizeof(__pyx_k_Failed_to_remove_s), 0, 0, 1, 0},
60102 {&__pyx_kp_s_Failed_to_remove_self_managed_sn, __pyx_k_Failed_to_remove_self_managed_sn, sizeof(__pyx_k_Failed_to_remove_self_managed_sn), 0, 0, 1, 0},
60103 {&__pyx_kp_s_Failed_to_remove_snap_s, __pyx_k_Failed_to_remove_snap_s, sizeof(__pyx_k_Failed_to_remove_snap_s), 0, 0, 1, 0},
60104 {&__pyx_kp_s_Failed_to_rollback_s, __pyx_k_Failed_to_rollback_s, sizeof(__pyx_k_Failed_to_rollback_s), 0, 0, 1, 0},
60105 {&__pyx_kp_s_Failed_to_set_xattr_r, __pyx_k_Failed_to_set_xattr_r, sizeof(__pyx_k_Failed_to_set_xattr_r), 0, 0, 1, 0},
60106 {&__pyx_kp_s_Failed_to_stat_r, __pyx_k_Failed_to_stat_r, sizeof(__pyx_k_Failed_to_stat_r), 0, 0, 1, 0},
60107 {&__pyx_kp_s_Failed_to_update_snapshot_write, __pyx_k_Failed_to_update_snapshot_write, sizeof(__pyx_k_Failed_to_update_snapshot_write), 0, 0, 1, 0},
60108 {&__pyx_kp_s_For_watching_cluster_log_messag, __pyx_k_For_watching_cluster_log_messag, sizeof(__pyx_k_For_watching_cluster_log_messag), 0, 0, 1, 0},
60109 {&__pyx_n_s_IOError, __pyx_k_IOError, sizeof(__pyx_k_IOError), 0, 0, 1, 1},
60110 {&__pyx_n_s_IOError___init, __pyx_k_IOError___init, sizeof(__pyx_k_IOError___init), 0, 0, 1, 1},
60111 {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
60112 {&__pyx_n_s_InProgress, __pyx_k_InProgress, sizeof(__pyx_k_InProgress), 0, 0, 1, 1},
60113 {&__pyx_n_s_InProgress___init, __pyx_k_InProgress___init, sizeof(__pyx_k_InProgress___init), 0, 0, 1, 1},
60114 {&__pyx_kp_s_InProgress_class_derived_from_E, __pyx_k_InProgress_class_derived_from_E, sizeof(__pyx_k_InProgress_class_derived_from_E), 0, 0, 1, 0},
60115 {&__pyx_n_s_InterruptedOrTimeoutError, __pyx_k_InterruptedOrTimeoutError, sizeof(__pyx_k_InterruptedOrTimeoutError), 0, 0, 1, 1},
60116 {&__pyx_n_s_InterruptedOrTimeoutError___init, __pyx_k_InterruptedOrTimeoutError___init, sizeof(__pyx_k_InterruptedOrTimeoutError___init), 0, 0, 1, 1},
60117 {&__pyx_kp_s_InterruptedOrTimeoutError_class, __pyx_k_InterruptedOrTimeoutError_class, sizeof(__pyx_k_InterruptedOrTimeoutError_class), 0, 0, 1, 0},
60118 {&__pyx_n_s_InvalidArgumentError, __pyx_k_InvalidArgumentError, sizeof(__pyx_k_InvalidArgumentError), 0, 0, 1, 1},
60119 {&__pyx_n_s_InvalidArgumentError___init, __pyx_k_InvalidArgumentError___init, sizeof(__pyx_k_InvalidArgumentError___init), 0, 0, 1, 1},
60120 {&__pyx_n_s_IoctxStateError, __pyx_k_IoctxStateError, sizeof(__pyx_k_IoctxStateError), 0, 0, 1, 1},
60121 {&__pyx_n_s_IoctxStateError___init, __pyx_k_IoctxStateError___init, sizeof(__pyx_k_IoctxStateError___init), 0, 0, 1, 1},
60122 {&__pyx_kp_s_IoctxStateError_class_derived_f, __pyx_k_IoctxStateError_class_derived_f, sizeof(__pyx_k_IoctxStateError_class_derived_f), 0, 0, 1, 0},
60123 {&__pyx_kp_s_Ioctx_append_s_failed_to_append, __pyx_k_Ioctx_append_s_failed_to_append, sizeof(__pyx_k_Ioctx_append_s_failed_to_append), 0, 0, 1, 0},
60124 {&__pyx_kp_s_Ioctx_append_s_rados_append_retu, __pyx_k_Ioctx_append_s_rados_append_retu, sizeof(__pyx_k_Ioctx_append_s_rados_append_retu), 0, 0, 1, 0},
60125 {&__pyx_kp_s_Ioctx_get_stats_s_get_stats_fail, __pyx_k_Ioctx_get_stats_s_get_stats_fail, sizeof(__pyx_k_Ioctx_get_stats_s_get_stats_fail), 0, 0, 1, 0},
60126 {&__pyx_kp_s_Ioctx_rados_lock_exclusive_s_fai, __pyx_k_Ioctx_rados_lock_exclusive_s_fai, sizeof(__pyx_k_Ioctx_rados_lock_exclusive_s_fai), 0, 0, 1, 0},
60127 {&__pyx_kp_s_Ioctx_read_s_failed_to_read_s, __pyx_k_Ioctx_read_s_failed_to_read_s, sizeof(__pyx_k_Ioctx_read_s_failed_to_read_s), 0, 0, 1, 0},
60128 {&__pyx_kp_s_Ioctx_trunc_s_failed_to_truncate, __pyx_k_Ioctx_trunc_s_failed_to_truncate, sizeof(__pyx_k_Ioctx_trunc_s_failed_to_truncate), 0, 0, 1, 0},
60129 {&__pyx_kp_s_Ioctx_write_full_s_failed_to_wri, __pyx_k_Ioctx_write_full_s_failed_to_wri, sizeof(__pyx_k_Ioctx_write_full_s_failed_to_wri), 0, 0, 1, 0},
60130 {&__pyx_kp_s_Ioctx_write_full_s_rados_write_f, __pyx_k_Ioctx_write_full_s_rados_write_f, sizeof(__pyx_k_Ioctx_write_full_s_rados_write_f), 0, 0, 1, 0},
60131 {&__pyx_kp_s_Ioctx_write_s_failed_to_write_s, __pyx_k_Ioctx_write_s_failed_to_write_s, sizeof(__pyx_k_Ioctx_write_s_failed_to_write_s), 0, 0, 1, 0},
60132 {&__pyx_kp_s_Ioctx_write_s_rados_write_return, __pyx_k_Ioctx_write_s_rados_write_return, sizeof(__pyx_k_Ioctx_write_s_rados_write_return), 0, 0, 1, 0},
60133 {&__pyx_n_s_IsConnected, __pyx_k_IsConnected, sizeof(__pyx_k_IsConnected), 0, 0, 1, 1},
60134 {&__pyx_n_s_IsConnected___init, __pyx_k_IsConnected___init, sizeof(__pyx_k_IsConnected___init), 0, 0, 1, 1},
60135 {&__pyx_kp_s_IsConnected_class_derived_from, __pyx_k_IsConnected_class_derived_from, sizeof(__pyx_k_IsConnected_class_derived_from), 0, 0, 1, 0},
60136 {&__pyx_n_s_LIBRADOS_ALL_NSPACES, __pyx_k_LIBRADOS_ALL_NSPACES, sizeof(__pyx_k_LIBRADOS_ALL_NSPACES), 0, 0, 1, 1},
60137 {&__pyx_n_s_LIBRADOS_CREATE_EXCLUSIVE, __pyx_k_LIBRADOS_CREATE_EXCLUSIVE, sizeof(__pyx_k_LIBRADOS_CREATE_EXCLUSIVE), 0, 0, 1, 1},
60138 {&__pyx_n_s_LIBRADOS_CREATE_IDEMPOTENT, __pyx_k_LIBRADOS_CREATE_IDEMPOTENT, sizeof(__pyx_k_LIBRADOS_CREATE_IDEMPOTENT), 0, 0, 1, 1},
60139 {&__pyx_n_s_LIBRADOS_OPERATION_BALANCE_READS, __pyx_k_LIBRADOS_OPERATION_BALANCE_READS, sizeof(__pyx_k_LIBRADOS_OPERATION_BALANCE_READS), 0, 0, 1, 1},
60140 {&__pyx_n_s_LIBRADOS_OPERATION_IGNORE_CACHE, __pyx_k_LIBRADOS_OPERATION_IGNORE_CACHE, sizeof(__pyx_k_LIBRADOS_OPERATION_IGNORE_CACHE), 0, 0, 1, 1},
60141 {&__pyx_n_s_LIBRADOS_OPERATION_IGNORE_OVERLA, __pyx_k_LIBRADOS_OPERATION_IGNORE_OVERLA, sizeof(__pyx_k_LIBRADOS_OPERATION_IGNORE_OVERLA), 0, 0, 1, 1},
60142 {&__pyx_n_s_LIBRADOS_OPERATION_LOCALIZE_READ, __pyx_k_LIBRADOS_OPERATION_LOCALIZE_READ, sizeof(__pyx_k_LIBRADOS_OPERATION_LOCALIZE_READ), 0, 0, 1, 1},
60143 {&__pyx_n_s_LIBRADOS_OPERATION_NOFLAG, __pyx_k_LIBRADOS_OPERATION_NOFLAG, sizeof(__pyx_k_LIBRADOS_OPERATION_NOFLAG), 0, 0, 1, 1},
60144 {&__pyx_n_s_LIBRADOS_OPERATION_ORDER_READS_W, __pyx_k_LIBRADOS_OPERATION_ORDER_READS_W, sizeof(__pyx_k_LIBRADOS_OPERATION_ORDER_READS_W), 0, 0, 1, 1},
60145 {&__pyx_n_s_LIBRADOS_OPERATION_SKIPRWLOCKS, __pyx_k_LIBRADOS_OPERATION_SKIPRWLOCKS, sizeof(__pyx_k_LIBRADOS_OPERATION_SKIPRWLOCKS), 0, 0, 1, 1},
60146 {&__pyx_n_s_LIBRADOS_OP_FLAG_EXCL, __pyx_k_LIBRADOS_OP_FLAG_EXCL, sizeof(__pyx_k_LIBRADOS_OP_FLAG_EXCL), 0, 0, 1, 1},
60147 {&__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_DONTNEE, __pyx_k_LIBRADOS_OP_FLAG_FADVISE_DONTNEE, sizeof(__pyx_k_LIBRADOS_OP_FLAG_FADVISE_DONTNEE), 0, 0, 1, 1},
60148 {&__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_NOCACHE, __pyx_k_LIBRADOS_OP_FLAG_FADVISE_NOCACHE, sizeof(__pyx_k_LIBRADOS_OP_FLAG_FADVISE_NOCACHE), 0, 0, 1, 1},
60149 {&__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_RANDOM, __pyx_k_LIBRADOS_OP_FLAG_FADVISE_RANDOM, sizeof(__pyx_k_LIBRADOS_OP_FLAG_FADVISE_RANDOM), 0, 0, 1, 1},
60150 {&__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_SEQUENT, __pyx_k_LIBRADOS_OP_FLAG_FADVISE_SEQUENT, sizeof(__pyx_k_LIBRADOS_OP_FLAG_FADVISE_SEQUENT), 0, 0, 1, 1},
60151 {&__pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_WILLNEE, __pyx_k_LIBRADOS_OP_FLAG_FADVISE_WILLNEE, sizeof(__pyx_k_LIBRADOS_OP_FLAG_FADVISE_WILLNEE), 0, 0, 1, 1},
60152 {&__pyx_n_s_LIBRADOS_OP_FLAG_FAILOK, __pyx_k_LIBRADOS_OP_FLAG_FAILOK, sizeof(__pyx_k_LIBRADOS_OP_FLAG_FAILOK), 0, 0, 1, 1},
60153 {&__pyx_n_s_LIBRADOS_SNAP_HEAD, __pyx_k_LIBRADOS_SNAP_HEAD, sizeof(__pyx_k_LIBRADOS_SNAP_HEAD), 0, 0, 1, 1},
60154 {&__pyx_n_s_Lock, __pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 0, 1, 1},
60155 {&__pyx_n_s_LogicError, __pyx_k_LogicError, sizeof(__pyx_k_LogicError), 0, 0, 1, 1},
60156 {&__pyx_n_s_LogicError___init, __pyx_k_LogicError___init, sizeof(__pyx_k_LogicError___init), 0, 0, 1, 1},
60157 {&__pyx_n_s_MONITOR_LEVELS, __pyx_k_MONITOR_LEVELS, sizeof(__pyx_k_MONITOR_LEVELS), 0, 0, 1, 1},
60158 {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
60159 {&__pyx_n_s_MonitorLog, __pyx_k_MonitorLog, sizeof(__pyx_k_MonitorLog), 0, 0, 1, 1},
60160 {&__pyx_n_s_MonitorLog___init, __pyx_k_MonitorLog___init, sizeof(__pyx_k_MonitorLog___init), 0, 0, 1, 1},
60161 {&__pyx_kp_s_Namespace_not_set_properly_in_co, __pyx_k_Namespace_not_set_properly_in_co, sizeof(__pyx_k_Namespace_not_set_properly_in_co), 0, 0, 1, 0},
60162 {&__pyx_n_s_NoData, __pyx_k_NoData, sizeof(__pyx_k_NoData), 0, 0, 1, 1},
60163 {&__pyx_n_s_NoData___init, __pyx_k_NoData___init, sizeof(__pyx_k_NoData___init), 0, 0, 1, 1},
60164 {&__pyx_kp_s_NoData_class_derived_from_OSErr, __pyx_k_NoData_class_derived_from_OSErr, sizeof(__pyx_k_NoData_class_derived_from_OSErr), 0, 0, 1, 0},
60165 {&__pyx_n_s_NoSpace, __pyx_k_NoSpace, sizeof(__pyx_k_NoSpace), 0, 0, 1, 1},
60166 {&__pyx_n_s_NoSpace___init, __pyx_k_NoSpace___init, sizeof(__pyx_k_NoSpace___init), 0, 0, 1, 1},
60167 {&__pyx_kp_s_NoSpace_class_derived_from_OSEr, __pyx_k_NoSpace_class_derived_from_OSEr, sizeof(__pyx_k_NoSpace_class_derived_from_OSEr), 0, 0, 1, 0},
60168 {&__pyx_n_s_None, __pyx_k_None, sizeof(__pyx_k_None), 0, 0, 1, 1},
60169 {&__pyx_n_s_OSError, __pyx_k_OSError, sizeof(__pyx_k_OSError), 0, 0, 1, 1},
60170 {&__pyx_kp_s_OSError_class_derived_from_Erro, __pyx_k_OSError_class_derived_from_Erro, sizeof(__pyx_k_OSError_class_derived_from_Erro), 0, 0, 1, 0},
60171 {&__pyx_n_s_Object, __pyx_k_Object, sizeof(__pyx_k_Object), 0, 0, 1, 1},
60172 {&__pyx_n_s_ObjectBusy, __pyx_k_ObjectBusy, sizeof(__pyx_k_ObjectBusy), 0, 0, 1, 1},
60173 {&__pyx_n_s_ObjectBusy___init, __pyx_k_ObjectBusy___init, sizeof(__pyx_k_ObjectBusy___init), 0, 0, 1, 1},
60174 {&__pyx_kp_s_ObjectBusy_class_derived_from_I, __pyx_k_ObjectBusy_class_derived_from_I, sizeof(__pyx_k_ObjectBusy_class_derived_from_I), 0, 0, 1, 0},
60175 {&__pyx_kp_s_ObjectBusy_class_derived_from_O, __pyx_k_ObjectBusy_class_derived_from_O, sizeof(__pyx_k_ObjectBusy_class_derived_from_O), 0, 0, 1, 0},
60176 {&__pyx_n_s_ObjectExists, __pyx_k_ObjectExists, sizeof(__pyx_k_ObjectExists), 0, 0, 1, 1},
60177 {&__pyx_n_s_ObjectExists___init, __pyx_k_ObjectExists___init, sizeof(__pyx_k_ObjectExists___init), 0, 0, 1, 1},
60178 {&__pyx_kp_s_ObjectExists_class_derived_from, __pyx_k_ObjectExists_class_derived_from, sizeof(__pyx_k_ObjectExists_class_derived_from), 0, 0, 1, 0},
60179 {&__pyx_n_s_ObjectNotFound, __pyx_k_ObjectNotFound, sizeof(__pyx_k_ObjectNotFound), 0, 0, 1, 1},
60180 {&__pyx_n_s_ObjectNotFound___init, __pyx_k_ObjectNotFound___init, sizeof(__pyx_k_ObjectNotFound___init), 0, 0, 1, 1},
60181 {&__pyx_kp_s_ObjectNotFound_class_derived_fr, __pyx_k_ObjectNotFound_class_derived_fr, sizeof(__pyx_k_ObjectNotFound_class_derived_fr), 0, 0, 1, 0},
60182 {&__pyx_n_s_ObjectStateError, __pyx_k_ObjectStateError, sizeof(__pyx_k_ObjectStateError), 0, 0, 1, 1},
60183 {&__pyx_n_s_ObjectStateError___init, __pyx_k_ObjectStateError___init, sizeof(__pyx_k_ObjectStateError___init), 0, 0, 1, 1},
60184 {&__pyx_kp_s_ObjectStateError_class_derived, __pyx_k_ObjectStateError_class_derived, sizeof(__pyx_k_ObjectStateError_class_derived), 0, 0, 1, 0},
60185 {&__pyx_n_s_Object___init, __pyx_k_Object___init, sizeof(__pyx_k_Object___init), 0, 0, 1, 1},
60186 {&__pyx_n_s_Object___str, __pyx_k_Object___str, sizeof(__pyx_k_Object___str), 0, 0, 1, 1},
60187 {&__pyx_n_s_Object_get_xattr, __pyx_k_Object_get_xattr, sizeof(__pyx_k_Object_get_xattr), 0, 0, 1, 1},
60188 {&__pyx_n_s_Object_get_xattrs, __pyx_k_Object_get_xattrs, sizeof(__pyx_k_Object_get_xattrs), 0, 0, 1, 1},
60189 {&__pyx_n_s_Object_read, __pyx_k_Object_read, sizeof(__pyx_k_Object_read), 0, 0, 1, 1},
60190 {&__pyx_n_s_Object_remove, __pyx_k_Object_remove, sizeof(__pyx_k_Object_remove), 0, 0, 1, 1},
60191 {&__pyx_n_s_Object_require_object_exists, __pyx_k_Object_require_object_exists, sizeof(__pyx_k_Object_require_object_exists), 0, 0, 1, 1},
60192 {&__pyx_n_s_Object_rm_xattr, __pyx_k_Object_rm_xattr, sizeof(__pyx_k_Object_rm_xattr), 0, 0, 1, 1},
60193 {&__pyx_n_s_Object_seek, __pyx_k_Object_seek, sizeof(__pyx_k_Object_seek), 0, 0, 1, 1},
60194 {&__pyx_n_s_Object_set_xattr, __pyx_k_Object_set_xattr, sizeof(__pyx_k_Object_set_xattr), 0, 0, 1, 1},
60195 {&__pyx_n_s_Object_stat, __pyx_k_Object_stat, sizeof(__pyx_k_Object_stat), 0, 0, 1, 1},
60196 {&__pyx_n_s_Object_write, __pyx_k_Object_write, sizeof(__pyx_k_Object_write), 0, 0, 1, 1},
60197 {&__pyx_n_s_OpCtx, __pyx_k_OpCtx, sizeof(__pyx_k_OpCtx), 0, 0, 1, 1},
60198 {&__pyx_n_s_OpCtx___enter, __pyx_k_OpCtx___enter, sizeof(__pyx_k_OpCtx___enter), 0, 0, 1, 1},
60199 {&__pyx_n_s_OpCtx___exit, __pyx_k_OpCtx___exit, sizeof(__pyx_k_OpCtx___exit), 0, 0, 1, 1},
60200 {&__pyx_n_s_PermissionDeniedError, __pyx_k_PermissionDeniedError, sizeof(__pyx_k_PermissionDeniedError), 0, 0, 1, 1},
60201 {&__pyx_n_s_PermissionDeniedError___init, __pyx_k_PermissionDeniedError___init, sizeof(__pyx_k_PermissionDeniedError___init), 0, 0, 1, 1},
60202 {&__pyx_n_s_PermissionError, __pyx_k_PermissionError, sizeof(__pyx_k_PermissionError), 0, 0, 1, 1},
60203 {&__pyx_n_s_PermissionError___init, __pyx_k_PermissionError___init, sizeof(__pyx_k_PermissionError___init), 0, 0, 1, 1},
60204 {&__pyx_kp_s_PermissionError_class_derived_f, __pyx_k_PermissionError_class_derived_f, sizeof(__pyx_k_PermissionError_class_derived_f), 0, 0, 1, 0},
60205 {&__pyx_kp_s_RADOS_I_O_error_s, __pyx_k_RADOS_I_O_error_s, sizeof(__pyx_k_RADOS_I_O_error_s), 0, 0, 1, 0},
60206 {&__pyx_kp_s_RADOS_Ioctx_state_error_s, __pyx_k_RADOS_Ioctx_state_error_s, sizeof(__pyx_k_RADOS_Ioctx_state_error_s), 0, 0, 1, 0},
60207 {&__pyx_kp_s_RADOS_in_progress_error_s, __pyx_k_RADOS_in_progress_error_s, sizeof(__pyx_k_RADOS_in_progress_error_s), 0, 0, 1, 0},
60208 {&__pyx_kp_s_RADOS_interrupted_or_timeout_s, __pyx_k_RADOS_interrupted_or_timeout_s, sizeof(__pyx_k_RADOS_interrupted_or_timeout_s), 0, 0, 1, 0},
60209 {&__pyx_kp_s_RADOS_invalid_argument_s, __pyx_k_RADOS_invalid_argument_s, sizeof(__pyx_k_RADOS_invalid_argument_s), 0, 0, 1, 0},
60210 {&__pyx_kp_s_RADOS_is_connected_error_s, __pyx_k_RADOS_is_connected_error_s, sizeof(__pyx_k_RADOS_is_connected_error_s), 0, 0, 1, 0},
60211 {&__pyx_kp_s_RADOS_logic_error_s, __pyx_k_RADOS_logic_error_s, sizeof(__pyx_k_RADOS_logic_error_s), 0, 0, 1, 0},
60212 {&__pyx_kp_s_RADOS_no_data_s, __pyx_k_RADOS_no_data_s, sizeof(__pyx_k_RADOS_no_data_s), 0, 0, 1, 0},
60213 {&__pyx_kp_s_RADOS_no_space_s, __pyx_k_RADOS_no_space_s, sizeof(__pyx_k_RADOS_no_space_s), 0, 0, 1, 0},
60214 {&__pyx_kp_s_RADOS_object_busy_s, __pyx_k_RADOS_object_busy_s, sizeof(__pyx_k_RADOS_object_busy_s), 0, 0, 1, 0},
60215 {&__pyx_kp_s_RADOS_object_exists_s, __pyx_k_RADOS_object_exists_s, sizeof(__pyx_k_RADOS_object_exists_s), 0, 0, 1, 0},
60216 {&__pyx_kp_s_RADOS_object_not_found_s, __pyx_k_RADOS_object_not_found_s, sizeof(__pyx_k_RADOS_object_not_found_s), 0, 0, 1, 0},
60217 {&__pyx_kp_s_RADOS_object_state_error_s, __pyx_k_RADOS_object_state_error_s, sizeof(__pyx_k_RADOS_object_state_error_s), 0, 0, 1, 0},
60218 {&__pyx_kp_s_RADOS_permission_denied_s, __pyx_k_RADOS_permission_denied_s, sizeof(__pyx_k_RADOS_permission_denied_s), 0, 0, 1, 0},
60219 {&__pyx_kp_s_RADOS_permission_error_s, __pyx_k_RADOS_permission_error_s, sizeof(__pyx_k_RADOS_permission_error_s), 0, 0, 1, 0},
60220 {&__pyx_kp_s_RADOS_rados_state_s, __pyx_k_RADOS_rados_state_s, sizeof(__pyx_k_RADOS_rados_state_s), 0, 0, 1, 0},
60221 {&__pyx_kp_s_RADOS_timed_out_s, __pyx_k_RADOS_timed_out_s, sizeof(__pyx_k_RADOS_timed_out_s), 0, 0, 1, 0},
60222 {&__pyx_n_s_RadosStateError, __pyx_k_RadosStateError, sizeof(__pyx_k_RadosStateError), 0, 0, 1, 1},
60223 {&__pyx_n_s_RadosStateError___init, __pyx_k_RadosStateError___init, sizeof(__pyx_k_RadosStateError___init), 0, 0, 1, 1},
60224 {&__pyx_kp_s_RadosStateError_class_derived_f, __pyx_k_RadosStateError_class_derived_f, sizeof(__pyx_k_RadosStateError_class_derived_f), 0, 0, 1, 0},
60225 {&__pyx_kp_s_Rados_can_t_supply_both_rados_id, __pyx_k_Rados_can_t_supply_both_rados_id, sizeof(__pyx_k_Rados_can_t_supply_both_rados_id), 0, 0, 1, 0},
60226 {&__pyx_kp_s_Rados_get_cluster_stats_s_get_st, __pyx_k_Rados_get_cluster_stats_s_get_st, sizeof(__pyx_k_Rados_get_cluster_stats_s_get_st), 0, 0, 1, 0},
60227 {&__pyx_kp_s_Rados_keys_and_values_must_have, __pyx_k_Rados_keys_and_values_must_have, sizeof(__pyx_k_Rados_keys_and_values_must_have), 0, 0, 1, 0},
60228 {&__pyx_kp_u_Rados_mon_command_line_1288, __pyx_k_Rados_mon_command_line_1288, sizeof(__pyx_k_Rados_mon_command_line_1288), 0, 1, 0, 0},
60229 {&__pyx_kp_s_Rados_object_wrapper_makes_the_o, __pyx_k_Rados_object_wrapper_makes_the_o, sizeof(__pyx_k_Rados_object_wrapper_makes_the_o), 0, 0, 1, 0},
60230 {&__pyx_n_s_ReadOpCtx, __pyx_k_ReadOpCtx, sizeof(__pyx_k_ReadOpCtx), 0, 0, 1, 1},
60231 {&__pyx_kp_u_Send_a_command_to_the_mon_mon_c, __pyx_k_Send_a_command_to_the_mon_mon_c, sizeof(__pyx_k_Send_a_command_to_the_mon_mon_c), 0, 1, 0, 0},
60232 {&__pyx_n_s_StopIteration, __pyx_k_StopIteration, sizeof(__pyx_k_StopIteration), 0, 0, 1, 1},
60233 {&__pyx_kp_s_The_object_is_s, __pyx_k_The_object_is_s, sizeof(__pyx_k_The_object_is_s), 0, 0, 1, 0},
60234 {&__pyx_kp_s_The_pool_is_s, __pyx_k_The_pool_is_s, sizeof(__pyx_k_The_pool_is_s), 0, 0, 1, 0},
60235 {&__pyx_n_s_TimedOut, __pyx_k_TimedOut, sizeof(__pyx_k_TimedOut), 0, 0, 1, 1},
60236 {&__pyx_n_s_TimedOut___init, __pyx_k_TimedOut___init, sizeof(__pyx_k_TimedOut___init), 0, 0, 1, 1},
60237 {&__pyx_kp_s_TimedOut_class_derived_from_OSE, __pyx_k_TimedOut_class_derived_from_OSE, sizeof(__pyx_k_TimedOut_class_derived_from_OSE), 0, 0, 1, 0},
60238 {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
60239 {&__pyx_n_s_Version, __pyx_k_Version, sizeof(__pyx_k_Version), 0, 0, 1, 1},
60240 {&__pyx_n_s_Version___init, __pyx_k_Version___init, sizeof(__pyx_k_Version___init), 0, 0, 1, 1},
60241 {&__pyx_n_s_Version___str, __pyx_k_Version___str, sizeof(__pyx_k_Version___str), 0, 0, 1, 1},
60242 {&__pyx_kp_s_Version_information, __pyx_k_Version_information, sizeof(__pyx_k_Version_information), 0, 0, 1, 0},
60243 {&__pyx_n_s_WriteOpCtx, __pyx_k_WriteOpCtx, sizeof(__pyx_k_WriteOpCtx), 0, 0, 1, 1},
60244 {&__pyx_kp_s_You_cannot_perform_that_operatio, __pyx_k_You_cannot_perform_that_operatio, sizeof(__pyx_k_You_cannot_perform_that_operatio), 0, 0, 1, 0},
60245 {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0},
60246 {&__pyx_kp_b__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 0, 0},
60247 {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0},
60248 {&__pyx_n_s_aio_append, __pyx_k_aio_append, sizeof(__pyx_k_aio_append), 0, 0, 1, 1},
60249 {&__pyx_n_s_aio_execute, __pyx_k_aio_execute, sizeof(__pyx_k_aio_execute), 0, 0, 1, 1},
60250 {&__pyx_n_s_aio_execute_locals_oncomplete, __pyx_k_aio_execute_locals_oncomplete, sizeof(__pyx_k_aio_execute_locals_oncomplete), 0, 0, 1, 1},
60251 {&__pyx_n_s_aio_execute_locals_onsafe, __pyx_k_aio_execute_locals_onsafe, sizeof(__pyx_k_aio_execute_locals_onsafe), 0, 0, 1, 1},
60252 {&__pyx_n_s_aio_read, __pyx_k_aio_read, sizeof(__pyx_k_aio_read), 0, 0, 1, 1},
60253 {&__pyx_n_s_aio_read_locals_oncomplete, __pyx_k_aio_read_locals_oncomplete, sizeof(__pyx_k_aio_read_locals_oncomplete), 0, 0, 1, 1},
60254 {&__pyx_n_s_aio_remove, __pyx_k_aio_remove, sizeof(__pyx_k_aio_remove), 0, 0, 1, 1},
60255 {&__pyx_n_s_aio_stat, __pyx_k_aio_stat, sizeof(__pyx_k_aio_stat), 0, 0, 1, 1},
60256 {&__pyx_n_s_aio_stat_locals_oncomplete, __pyx_k_aio_stat_locals_oncomplete, sizeof(__pyx_k_aio_stat_locals_oncomplete), 0, 0, 1, 1},
60257 {&__pyx_n_s_aio_write, __pyx_k_aio_write, sizeof(__pyx_k_aio_write), 0, 0, 1, 1},
60258 {&__pyx_n_s_aio_write_full, __pyx_k_aio_write_full, sizeof(__pyx_k_aio_write_full), 0, 0, 1, 1},
60259 {&__pyx_n_s_app_name, __pyx_k_app_name, sizeof(__pyx_k_app_name), 0, 0, 1, 1},
60260 {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1},
60261 {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1},
60262 {&__pyx_n_s_arg_name, __pyx_k_arg_name, sizeof(__pyx_k_arg_name), 0, 0, 1, 1},
60263 {&__pyx_n_s_arg_type, __pyx_k_arg_type, sizeof(__pyx_k_arg_type), 0, 0, 1, 1},
60264 {&__pyx_n_s_arg_val, __pyx_k_arg_val, sizeof(__pyx_k_arg_val), 0, 0, 1, 1},
60265 {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
60266 {&__pyx_n_s_assert_version, __pyx_k_assert_version, sizeof(__pyx_k_assert_version), 0, 0, 1, 1},
60267 {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
60268 {&__pyx_n_s_callback, __pyx_k_callback, sizeof(__pyx_k_callback), 0, 0, 1, 1},
60269 {&__pyx_kp_s_callback_must_be_a_callable_func, __pyx_k_callback_must_be_a_callable_func, sizeof(__pyx_k_callback_must_be_a_callable_func), 0, 0, 1, 0},
60270 {&__pyx_n_s_chain, __pyx_k_chain, sizeof(__pyx_k_chain), 0, 0, 1, 1},
60271 {&__pyx_n_s_check_type, __pyx_k_check_type, sizeof(__pyx_k_check_type), 0, 0, 1, 1},
60272 {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
60273 {&__pyx_kp_s_class_derived_from_Error, __pyx_k_class_derived_from_Error, sizeof(__pyx_k_class_derived_from_Error), 0, 0, 1, 0},
60274 {&__pyx_n_s_cleanup, __pyx_k_cleanup, sizeof(__pyx_k_cleanup), 0, 0, 1, 1},
60275 {&__pyx_n_s_clear_omap, __pyx_k_clear_omap, sizeof(__pyx_k_clear_omap), 0, 0, 1, 1},
60276 {&__pyx_kp_s_client, __pyx_k_client, sizeof(__pyx_k_client), 0, 0, 1, 0},
60277 {&__pyx_n_s_client_address, __pyx_k_client_address, sizeof(__pyx_k_client_address), 0, 0, 1, 1},
60278 {&__pyx_kp_s_client_admin, __pyx_k_client_admin, sizeof(__pyx_k_client_admin), 0, 0, 1, 0},
60279 {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
60280 {&__pyx_n_s_closed, __pyx_k_closed, sizeof(__pyx_k_closed), 0, 0, 1, 1},
60281 {&__pyx_n_s_cls, __pyx_k_cls, sizeof(__pyx_k_cls), 0, 0, 1, 1},
60282 {&__pyx_n_s_cluster, __pyx_k_cluster, sizeof(__pyx_k_cluster), 0, 0, 1, 1},
60283 {&__pyx_n_s_clustername, __pyx_k_clustername, sizeof(__pyx_k_clustername), 0, 0, 1, 1},
60284 {&__pyx_n_s_cmd, __pyx_k_cmd, sizeof(__pyx_k_cmd), 0, 0, 1, 1},
60285 {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
60286 {&__pyx_n_s_collections_abc, __pyx_k_collections_abc, sizeof(__pyx_k_collections_abc), 0, 0, 1, 1},
60287 {&__pyx_n_s_complete, __pyx_k_complete, sizeof(__pyx_k_complete), 0, 0, 1, 1},
60288 {&__pyx_n_s_completion_v, __pyx_k_completion_v, sizeof(__pyx_k_completion_v), 0, 0, 1, 1},
60289 {&__pyx_n_s_completion_v_2, __pyx_k_completion_v_2, sizeof(__pyx_k_completion_v_2), 0, 0, 1, 1},
60290 {&__pyx_n_s_conf, __pyx_k_conf, sizeof(__pyx_k_conf), 0, 0, 1, 1},
60291 {&__pyx_n_s_conf_defaults, __pyx_k_conf_defaults, sizeof(__pyx_k_conf_defaults), 0, 0, 1, 1},
60292 {&__pyx_n_s_conf_get, __pyx_k_conf_get, sizeof(__pyx_k_conf_get), 0, 0, 1, 1},
60293 {&__pyx_n_s_conf_read_file, __pyx_k_conf_read_file, sizeof(__pyx_k_conf_read_file), 0, 0, 1, 1},
60294 {&__pyx_n_s_conf_set, __pyx_k_conf_set, sizeof(__pyx_k_conf_set), 0, 0, 1, 1},
60295 {&__pyx_n_s_conffile, __pyx_k_conffile, sizeof(__pyx_k_conffile), 0, 0, 1, 1},
60296 {&__pyx_n_s_configuring, __pyx_k_configuring, sizeof(__pyx_k_configuring), 0, 0, 1, 1},
60297 {&__pyx_n_s_connect, __pyx_k_connect, sizeof(__pyx_k_connect), 0, 0, 1, 1},
60298 {&__pyx_n_s_connected, __pyx_k_connected, sizeof(__pyx_k_connected), 0, 0, 1, 1},
60299 {&__pyx_n_s_context, __pyx_k_context, sizeof(__pyx_k_context), 0, 0, 1, 1},
60300 {&__pyx_n_s_cookie, __pyx_k_cookie, sizeof(__pyx_k_cookie), 0, 0, 1, 1},
60301 {&__pyx_n_s_create, __pyx_k_create, sizeof(__pyx_k_create), 0, 0, 1, 1},
60302 {&__pyx_n_s_create_pool, __pyx_k_create_pool, sizeof(__pyx_k_create_pool), 0, 0, 1, 1},
60303 {&__pyx_n_s_create_snap, __pyx_k_create_snap, sizeof(__pyx_k_create_snap), 0, 0, 1, 1},
60304 {&__pyx_n_s_crush_rule, __pyx_k_crush_rule, sizeof(__pyx_k_crush_rule), 0, 0, 1, 1},
60305 {&__pyx_n_s_cstr, __pyx_k_cstr, sizeof(__pyx_k_cstr), 0, 0, 1, 1},
60306 {&__pyx_n_s_cstr_list, __pyx_k_cstr_list, sizeof(__pyx_k_cstr_list), 0, 0, 1, 1},
60307 {&__pyx_n_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 1},
60308 {&__pyx_kp_s_d_d_d, __pyx_k_d_d_d, sizeof(__pyx_k_d_d_d), 0, 0, 1, 0},
60309 {&__pyx_n_s_daemon, __pyx_k_daemon, sizeof(__pyx_k_daemon), 0, 0, 1, 1},
60310 {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
60311 {&__pyx_n_s_datetime, __pyx_k_datetime, sizeof(__pyx_k_datetime), 0, 0, 1, 1},
60312 {&__pyx_kp_s_deal_with_EACCES_related, __pyx_k_deal_with_EACCES_related, sizeof(__pyx_k_deal_with_EACCES_related), 0, 0, 1, 0},
60313 {&__pyx_n_s_debug, __pyx_k_debug, sizeof(__pyx_k_debug), 0, 0, 1, 1},
60314 {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1},
60315 {&__pyx_n_s_decode_cstr, __pyx_k_decode_cstr, sizeof(__pyx_k_decode_cstr), 0, 0, 1, 1},
60316 {&__pyx_kp_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 0},
60317 {&__pyx_n_s_delete_pool, __pyx_k_delete_pool, sizeof(__pyx_k_delete_pool), 0, 0, 1, 1},
60318 {&__pyx_n_s_desc, __pyx_k_desc, sizeof(__pyx_k_desc), 0, 0, 1, 1},
60319 {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
60320 {&__pyx_n_s_duration, __pyx_k_duration, sizeof(__pyx_k_duration), 0, 0, 1, 1},
60321 {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
60322 {&__pyx_n_s_encoding, __pyx_k_encoding, sizeof(__pyx_k_encoding), 0, 0, 1, 1},
60323 {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1},
60324 {&__pyx_n_s_err, __pyx_k_err, sizeof(__pyx_k_err), 0, 0, 1, 1},
60325 {&__pyx_n_s_errno, __pyx_k_errno, sizeof(__pyx_k_errno), 0, 0, 1, 1},
60326 {&__pyx_kp_s_errno_0_1, __pyx_k_errno_0_1, sizeof(__pyx_k_errno_0_1), 0, 0, 1, 0},
60327 {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
60328 {&__pyx_kp_s_error_appending_object_s, __pyx_k_error_appending_object_s, sizeof(__pyx_k_error_appending_object_s), 0, 0, 1, 0},
60329 {&__pyx_kp_s_error_blacklisting_client_s, __pyx_k_error_blacklisting_client_s, sizeof(__pyx_k_error_blacklisting_client_s), 0, 0, 1, 0},
60330 {&__pyx_kp_s_error_calling_conf_get, __pyx_k_error_calling_conf_get, sizeof(__pyx_k_error_calling_conf_get), 0, 0, 1, 0},
60331 {&__pyx_kp_s_error_calling_conf_parse_argv_re, __pyx_k_error_calling_conf_parse_argv_re, sizeof(__pyx_k_error_calling_conf_parse_argv_re), 0, 0, 1, 0},
60332 {&__pyx_kp_s_error_calling_conf_parse_env, __pyx_k_error_calling_conf_parse_env, sizeof(__pyx_k_error_calling_conf_parse_env), 0, 0, 1, 0},
60333 {&__pyx_kp_s_error_calling_conf_read_file, __pyx_k_error_calling_conf_read_file, sizeof(__pyx_k_error_calling_conf_read_file), 0, 0, 1, 0},
60334 {&__pyx_kp_s_error_calling_conf_set, __pyx_k_error_calling_conf_set, sizeof(__pyx_k_error_calling_conf_set), 0, 0, 1, 0},
60335 {&__pyx_kp_s_error_calling_inconsistent_pg_li, __pyx_k_error_calling_inconsistent_pg_li, sizeof(__pyx_k_error_calling_inconsistent_pg_li), 0, 0, 1, 0},
60336 {&__pyx_kp_s_error_calling_ping_monitor, __pyx_k_error_calling_ping_monitor, sizeof(__pyx_k_error_calling_ping_monitor), 0, 0, 1, 0},
60337 {&__pyx_kp_s_error_calling_rados_monitor_log, __pyx_k_error_calling_rados_monitor_log, sizeof(__pyx_k_error_calling_rados_monitor_log), 0, 0, 1, 0},
60338 {&__pyx_kp_s_error_calling_rados_snap_list_fo, __pyx_k_error_calling_rados_snap_list_fo, sizeof(__pyx_k_error_calling_rados_snap_list_fo), 0, 0, 1, 0},
60339 {&__pyx_kp_s_error_calling_service_daemon_upd, __pyx_k_error_calling_service_daemon_upd, sizeof(__pyx_k_error_calling_service_daemon_upd), 0, 0, 1, 0},
60340 {&__pyx_kp_s_error_calling_service_register, __pyx_k_error_calling_service_register, sizeof(__pyx_k_error_calling_service_register), 0, 0, 1, 0},
60341 {&__pyx_kp_s_error_checking_alignment, __pyx_k_error_checking_alignment, sizeof(__pyx_k_error_checking_alignment), 0, 0, 1, 0},
60342 {&__pyx_kp_s_error_connecting_to_the_cluster, __pyx_k_error_connecting_to_the_cluster, sizeof(__pyx_k_error_connecting_to_the_cluster), 0, 0, 1, 0},
60343 {&__pyx_kp_s_error_creating_pool_s, __pyx_k_error_creating_pool_s, sizeof(__pyx_k_error_creating_pool_s), 0, 0, 1, 0},
60344 {&__pyx_kp_s_error_deleting_pool_s, __pyx_k_error_deleting_pool_s, sizeof(__pyx_k_error_deleting_pool_s), 0, 0, 1, 0},
60345 {&__pyx_kp_s_error_enabling_application, __pyx_k_error_enabling_application, sizeof(__pyx_k_error_enabling_application), 0, 0, 1, 0},
60346 {&__pyx_kp_s_error_executing_s_s_on_s, __pyx_k_error_executing_s_s_on_s, sizeof(__pyx_k_error_executing_s_s_on_s), 0, 0, 1, 0},
60347 {&__pyx_kp_s_error_flushing, __pyx_k_error_flushing, sizeof(__pyx_k_error_flushing), 0, 0, 1, 0},
60348 {&__pyx_kp_s_error_getting_a_completion, __pyx_k_error_getting_a_completion, sizeof(__pyx_k_error_getting_a_completion), 0, 0, 1, 0},
60349 {&__pyx_kp_s_error_getting_cluster_fsid, __pyx_k_error_getting_cluster_fsid, sizeof(__pyx_k_error_getting_cluster_fsid), 0, 0, 1, 0},
60350 {&__pyx_kp_s_error_iterating_over_the_extende, __pyx_k_error_iterating_over_the_extende, sizeof(__pyx_k_error_iterating_over_the_extende), 0, 0, 1, 0},
60351 {&__pyx_kp_s_error_iterating_over_the_objects, __pyx_k_error_iterating_over_the_objects, sizeof(__pyx_k_error_iterating_over_the_objects), 0, 0, 1, 0},
60352 {&__pyx_kp_s_error_iterating_over_the_omap, __pyx_k_error_iterating_over_the_omap, sizeof(__pyx_k_error_iterating_over_the_omap), 0, 0, 1, 0},
60353 {&__pyx_kp_s_error_listing_application_metada, __pyx_k_error_listing_application_metada, sizeof(__pyx_k_error_listing_application_metada), 0, 0, 1, 0},
60354 {&__pyx_kp_s_error_listing_applications, __pyx_k_error_listing_applications, sizeof(__pyx_k_error_listing_applications), 0, 0, 1, 0},
60355 {&__pyx_kp_s_error_looking_up_pool_s, __pyx_k_error_looking_up_pool_s, sizeof(__pyx_k_error_looking_up_pool_s), 0, 0, 1, 0},
60356 {&__pyx_kp_s_error_opening_pool_id_s, __pyx_k_error_opening_pool_id_s, sizeof(__pyx_k_error_opening_pool_id_s), 0, 0, 1, 0},
60357 {&__pyx_kp_s_error_opening_pool_s, __pyx_k_error_opening_pool_s, sizeof(__pyx_k_error_opening_pool_s), 0, 0, 1, 0},
60358 {&__pyx_kp_s_error_querying_alignment, __pyx_k_error_querying_alignment, sizeof(__pyx_k_error_querying_alignment), 0, 0, 1, 0},
60359 {&__pyx_kp_s_error_reading_s, __pyx_k_error_reading_s, sizeof(__pyx_k_error_reading_s), 0, 0, 1, 0},
60360 {&__pyx_kp_s_error_removing_application_metad, __pyx_k_error_removing_application_metad, sizeof(__pyx_k_error_removing_application_metad), 0, 0, 1, 0},
60361 {&__pyx_kp_s_error_removing_s, __pyx_k_error_removing_s, sizeof(__pyx_k_error_removing_s), 0, 0, 1, 0},
60362 {&__pyx_kp_s_error_reverse_looking_up_pool_s, __pyx_k_error_reverse_looking_up_pool_s, sizeof(__pyx_k_error_reverse_looking_up_pool_s), 0, 0, 1, 0},
60363 {&__pyx_kp_s_error_setting_application_metada, __pyx_k_error_setting_application_metada, sizeof(__pyx_k_error_setting_application_metada), 0, 0, 1, 0},
60364 {&__pyx_kp_s_error_stating_s, __pyx_k_error_stating_s, sizeof(__pyx_k_error_stating_s), 0, 0, 1, 0},
60365 {&__pyx_kp_s_error_writing_object_s, __pyx_k_error_writing_object_s, sizeof(__pyx_k_error_writing_object_s), 0, 0, 1, 0},
60366 {&__pyx_n_s_exclusive, __pyx_k_exclusive, sizeof(__pyx_k_exclusive), 0, 0, 1, 1},
60367 {&__pyx_n_s_execute, __pyx_k_execute, sizeof(__pyx_k_execute), 0, 0, 1, 1},
60368 {&__pyx_n_s_exists, __pyx_k_exists, sizeof(__pyx_k_exists), 0, 0, 1, 1},
60369 {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
60370 {&__pyx_n_s_expire_seconds, __pyx_k_expire_seconds, sizeof(__pyx_k_expire_seconds), 0, 0, 1, 1},
60371 {&__pyx_n_s_extra, __pyx_k_extra, sizeof(__pyx_k_extra), 0, 0, 1, 1},
60372 {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
60373 {&__pyx_n_s_filter_prefix, __pyx_k_filter_prefix, sizeof(__pyx_k_filter_prefix), 0, 0, 1, 1},
60374 {&__pyx_n_s_flag, __pyx_k_flag, sizeof(__pyx_k_flag), 0, 0, 1, 1},
60375 {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
60376 {&__pyx_n_s_flatten_dict, __pyx_k_flatten_dict, sizeof(__pyx_k_flatten_dict), 0, 0, 1, 1},
60377 {&__pyx_n_s_flatten_dict_locals_genexpr, __pyx_k_flatten_dict_locals_genexpr, sizeof(__pyx_k_flatten_dict_locals_genexpr), 0, 0, 1, 1},
60378 {&__pyx_n_s_force, __pyx_k_force, sizeof(__pyx_k_force), 0, 0, 1, 1},
60379 {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
60380 {&__pyx_n_s_from_iterable, __pyx_k_from_iterable, sizeof(__pyx_k_from_iterable), 0, 0, 1, 1},
60381 {&__pyx_n_s_fromtimestamp, __pyx_k_fromtimestamp, sizeof(__pyx_k_fromtimestamp), 0, 0, 1, 1},
60382 {&__pyx_n_s_func, __pyx_k_func, sizeof(__pyx_k_func), 0, 0, 1, 1},
60383 {&__pyx_n_s_functools, __pyx_k_functools, sizeof(__pyx_k_functools), 0, 0, 1, 1},
60384 {&__pyx_n_s_genexpr, __pyx_k_genexpr, sizeof(__pyx_k_genexpr), 0, 0, 1, 1},
60385 {&__pyx_n_s_get_completion, __pyx_k_get_completion, sizeof(__pyx_k_get_completion), 0, 0, 1, 1},
60386 {&__pyx_n_s_get_inconsistent_pgs, __pyx_k_get_inconsistent_pgs, sizeof(__pyx_k_get_inconsistent_pgs), 0, 0, 1, 1},
60387 {&__pyx_n_s_get_locator_key, __pyx_k_get_locator_key, sizeof(__pyx_k_get_locator_key), 0, 0, 1, 1},
60388 {&__pyx_n_s_get_namespace, __pyx_k_get_namespace, sizeof(__pyx_k_get_namespace), 0, 0, 1, 1},
60389 {&__pyx_n_s_get_omap_keys, __pyx_k_get_omap_keys, sizeof(__pyx_k_get_omap_keys), 0, 0, 1, 1},
60390 {&__pyx_n_s_get_omap_vals, __pyx_k_get_omap_vals, sizeof(__pyx_k_get_omap_vals), 0, 0, 1, 1},
60391 {&__pyx_n_s_get_omap_vals_by_keys, __pyx_k_get_omap_vals_by_keys, sizeof(__pyx_k_get_omap_vals_by_keys), 0, 0, 1, 1},
60392 {&__pyx_n_s_get_pool_base_tier, __pyx_k_get_pool_base_tier, sizeof(__pyx_k_get_pool_base_tier), 0, 0, 1, 1},
60393 {&__pyx_kp_s_get_pool_base_tier_d, __pyx_k_get_pool_base_tier_d, sizeof(__pyx_k_get_pool_base_tier_d), 0, 0, 1, 0},
60394 {&__pyx_n_s_get_return_value, __pyx_k_get_return_value, sizeof(__pyx_k_get_return_value), 0, 0, 1, 1},
60395 {&__pyx_n_s_get_xattr, __pyx_k_get_xattr, sizeof(__pyx_k_get_xattr), 0, 0, 1, 1},
60396 {&__pyx_n_s_get_xattrs, __pyx_k_get_xattrs, sizeof(__pyx_k_get_xattrs), 0, 0, 1, 1},
60397 {&__pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_k_home_bhubbard_working_src_ceph, sizeof(__pyx_k_home_bhubbard_working_src_ceph), 0, 0, 1, 0},
60398 {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
60399 {&__pyx_n_s_inbuf, __pyx_k_inbuf, sizeof(__pyx_k_inbuf), 0, 0, 1, 1},
60400 {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1},
60401 {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
60402 {&__pyx_kp_s_invalid_monitor_level, __pyx_k_invalid_monitor_level, sizeof(__pyx_k_invalid_monitor_level), 0, 0, 1, 0},
60403 {&__pyx_n_s_ioctx, __pyx_k_ioctx, sizeof(__pyx_k_ioctx), 0, 0, 1, 1},
60404 {&__pyx_n_s_ioctx_name, __pyx_k_ioctx_name, sizeof(__pyx_k_ioctx_name), 0, 0, 1, 1},
60405 {&__pyx_n_s_is_type_of, __pyx_k_is_type_of, sizeof(__pyx_k_is_type_of), 0, 0, 1, 1},
60406 {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
60407 {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1},
60408 {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
60409 {&__pyx_n_s_kb, __pyx_k_kb, sizeof(__pyx_k_kb), 0, 0, 1, 1},
60410 {&__pyx_n_s_kb_avail, __pyx_k_kb_avail, sizeof(__pyx_k_kb_avail), 0, 0, 1, 1},
60411 {&__pyx_n_s_kb_used, __pyx_k_kb_used, sizeof(__pyx_k_kb_used), 0, 0, 1, 1},
60412 {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
60413 {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1},
60414 {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1},
60415 {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1},
60416 {&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1},
60417 {&__pyx_n_s_list_str, __pyx_k_list_str, sizeof(__pyx_k_list_str), 0, 0, 1, 1},
60418 {&__pyx_n_s_loc_key, __pyx_k_loc_key, sizeof(__pyx_k_loc_key), 0, 0, 1, 1},
60419 {&__pyx_n_s_localtime, __pyx_k_localtime, sizeof(__pyx_k_localtime), 0, 0, 1, 1},
60420 {&__pyx_n_s_locator_key, __pyx_k_locator_key, sizeof(__pyx_k_locator_key), 0, 0, 1, 1},
60421 {&__pyx_n_s_lock_exclusive, __pyx_k_lock_exclusive, sizeof(__pyx_k_lock_exclusive), 0, 0, 1, 1},
60422 {&__pyx_n_s_lock_shared, __pyx_k_lock_shared, sizeof(__pyx_k_lock_shared), 0, 0, 1, 1},
60423 {&__pyx_n_s_lookup_snap, __pyx_k_lookup_snap, sizeof(__pyx_k_lookup_snap), 0, 0, 1, 1},
60424 {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
60425 {&__pyx_n_s_major, __pyx_k_major, sizeof(__pyx_k_major), 0, 0, 1, 1},
60426 {&__pyx_kp_s_malloc_failed, __pyx_k_malloc_failed, sizeof(__pyx_k_malloc_failed), 0, 0, 1, 0},
60427 {&__pyx_n_s_max_return, __pyx_k_max_return, sizeof(__pyx_k_max_return), 0, 0, 1, 1},
60428 {&__pyx_n_s_message, __pyx_k_message, sizeof(__pyx_k_message), 0, 0, 1, 1},
60429 {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
60430 {&__pyx_n_s_metadata, __pyx_k_metadata, sizeof(__pyx_k_metadata), 0, 0, 1, 1},
60431 {&__pyx_n_s_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 0, 1, 1},
60432 {&__pyx_n_s_minor, __pyx_k_minor, sizeof(__pyx_k_minor), 0, 0, 1, 1},
60433 {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
60434 {&__pyx_n_s_mon_id, __pyx_k_mon_id, sizeof(__pyx_k_mon_id), 0, 0, 1, 1},
60435 {&__pyx_n_s_monitor_log, __pyx_k_monitor_log, sizeof(__pyx_k_monitor_log), 0, 0, 1, 1},
60436 {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1},
60437 {&__pyx_n_s_mtime, __pyx_k_mtime, sizeof(__pyx_k_mtime), 0, 0, 1, 1},
60438 {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
60439 {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
60440 {&__pyx_n_s_named_args, __pyx_k_named_args, sizeof(__pyx_k_named_args), 0, 0, 1, 1},
60441 {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
60442 {&__pyx_n_s_notify, __pyx_k_notify, sizeof(__pyx_k_notify), 0, 0, 1, 1},
60443 {&__pyx_n_s_nspace, __pyx_k_nspace, sizeof(__pyx_k_nspace), 0, 0, 1, 1},
60444 {&__pyx_n_s_num_bytes, __pyx_k_num_bytes, sizeof(__pyx_k_num_bytes), 0, 0, 1, 1},
60445 {&__pyx_n_s_num_kb, __pyx_k_num_kb, sizeof(__pyx_k_num_kb), 0, 0, 1, 1},
60446 {&__pyx_n_s_num_object_clones, __pyx_k_num_object_clones, sizeof(__pyx_k_num_object_clones), 0, 0, 1, 1},
60447 {&__pyx_n_s_num_object_copies, __pyx_k_num_object_copies, sizeof(__pyx_k_num_object_copies), 0, 0, 1, 1},
60448 {&__pyx_n_s_num_objects, __pyx_k_num_objects, sizeof(__pyx_k_num_objects), 0, 0, 1, 1},
60449 {&__pyx_n_s_num_objects_degraded, __pyx_k_num_objects_degraded, sizeof(__pyx_k_num_objects_degraded), 0, 0, 1, 1},
60450 {&__pyx_n_s_num_objects_missing_on_primary, __pyx_k_num_objects_missing_on_primary, sizeof(__pyx_k_num_objects_missing_on_primary), 0, 0, 1, 1},
60451 {&__pyx_n_s_num_objects_unfound, __pyx_k_num_objects_unfound, sizeof(__pyx_k_num_objects_unfound), 0, 0, 1, 1},
60452 {&__pyx_n_s_num_rd, __pyx_k_num_rd, sizeof(__pyx_k_num_rd), 0, 0, 1, 1},
60453 {&__pyx_n_s_num_rd_kb, __pyx_k_num_rd_kb, sizeof(__pyx_k_num_rd_kb), 0, 0, 1, 1},
60454 {&__pyx_n_s_num_wr, __pyx_k_num_wr, sizeof(__pyx_k_num_wr), 0, 0, 1, 1},
60455 {&__pyx_n_s_num_wr_kb, __pyx_k_num_wr_kb, sizeof(__pyx_k_num_wr_kb), 0, 0, 1, 1},
60456 {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
60457 {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
60458 {&__pyx_n_s_object_name, __pyx_k_object_name, sizeof(__pyx_k_object_name), 0, 0, 1, 1},
60459 {&__pyx_n_s_offset, __pyx_k_offset, sizeof(__pyx_k_offset), 0, 0, 1, 1},
60460 {&__pyx_n_s_oid, __pyx_k_oid, sizeof(__pyx_k_oid), 0, 0, 1, 1},
60461 {&__pyx_n_s_old_locator, __pyx_k_old_locator, sizeof(__pyx_k_old_locator), 0, 0, 1, 1},
60462 {&__pyx_n_s_old_nspace, __pyx_k_old_nspace, sizeof(__pyx_k_old_nspace), 0, 0, 1, 1},
60463 {&__pyx_n_s_oncomplete, __pyx_k_oncomplete, sizeof(__pyx_k_oncomplete), 0, 0, 1, 1},
60464 {&__pyx_n_s_oncomplete_2, __pyx_k_oncomplete_2, sizeof(__pyx_k_oncomplete_2), 0, 0, 1, 1},
60465 {&__pyx_n_s_onsafe, __pyx_k_onsafe, sizeof(__pyx_k_onsafe), 0, 0, 1, 1},
60466 {&__pyx_n_s_onsafe_2, __pyx_k_onsafe_2, sizeof(__pyx_k_onsafe_2), 0, 0, 1, 1},
60467 {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1},
60468 {&__pyx_n_s_open_ioctx, __pyx_k_open_ioctx, sizeof(__pyx_k_open_ioctx), 0, 0, 1, 1},
60469 {&__pyx_n_s_open_ioctx2, __pyx_k_open_ioctx2, sizeof(__pyx_k_open_ioctx2), 0, 0, 1, 1},
60470 {&__pyx_n_s_operate_aio_read_op, __pyx_k_operate_aio_read_op, sizeof(__pyx_k_operate_aio_read_op), 0, 0, 1, 1},
60471 {&__pyx_n_s_operate_aio_write_op, __pyx_k_operate_aio_write_op, sizeof(__pyx_k_operate_aio_write_op), 0, 0, 1, 1},
60472 {&__pyx_n_s_operate_read_op, __pyx_k_operate_read_op, sizeof(__pyx_k_operate_read_op), 0, 0, 1, 1},
60473 {&__pyx_n_s_operate_write_op, __pyx_k_operate_write_op, sizeof(__pyx_k_operate_write_op), 0, 0, 1, 1},
60474 {&__pyx_n_s_opt, __pyx_k_opt, sizeof(__pyx_k_opt), 0, 0, 1, 1},
60475 {&__pyx_n_s_option, __pyx_k_option, sizeof(__pyx_k_option), 0, 0, 1, 1},
60476 {&__pyx_kp_s_or, __pyx_k_or, sizeof(__pyx_k_or), 0, 0, 1, 0},
60477 {&__pyx_n_s_osdid, __pyx_k_osdid, sizeof(__pyx_k_osdid), 0, 0, 1, 1},
60478 {&__pyx_n_s_partial, __pyx_k_partial, sizeof(__pyx_k_partial), 0, 0, 1, 1},
60479 {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
60480 {&__pyx_n_s_pgid, __pyx_k_pgid, sizeof(__pyx_k_pgid), 0, 0, 1, 1},
60481 {&__pyx_n_s_pool_exists, __pyx_k_pool_exists, sizeof(__pyx_k_pool_exists), 0, 0, 1, 1},
60482 {&__pyx_n_s_pool_id, __pyx_k_pool_id, sizeof(__pyx_k_pool_id), 0, 0, 1, 1},
60483 {&__pyx_n_s_pool_lookup, __pyx_k_pool_lookup, sizeof(__pyx_k_pool_lookup), 0, 0, 1, 1},
60484 {&__pyx_n_s_pool_name, __pyx_k_pool_name, sizeof(__pyx_k_pool_name), 0, 0, 1, 1},
60485 {&__pyx_n_s_pool_reverse_lookup, __pyx_k_pool_reverse_lookup, sizeof(__pyx_k_pool_reverse_lookup), 0, 0, 1, 1},
60486 {&__pyx_n_s_pos_args, __pyx_k_pos_args, sizeof(__pyx_k_pos_args), 0, 0, 1, 1},
60487 {&__pyx_n_s_position, __pyx_k_position, sizeof(__pyx_k_position), 0, 0, 1, 1},
60488 {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
60489 {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
60490 {&__pyx_n_s_rados, __pyx_k_rados, sizeof(__pyx_k_rados), 0, 0, 1, 1},
60491 {&__pyx_kp_s_rados_Object_ioctx_s_key_s_nspac, __pyx_k_rados_Object_ioctx_s_key_s_nspac, sizeof(__pyx_k_rados_Object_ioctx_s_key_s_nspac), 0, 0, 1, 0},
60492 {&__pyx_kp_s_rados_Snap_ioctx_s_name_s_snap_i, __pyx_k_rados_Snap_ioctx_s_name_s_snap_i, sizeof(__pyx_k_rados_Snap_ioctx_s_name_s_snap_i), 0, 0, 1, 0},
60493 {&__pyx_n_s_rados_id, __pyx_k_rados_id, sizeof(__pyx_k_rados_id), 0, 0, 1, 1},
60494 {&__pyx_kp_s_rados_initialize_failed_with_err, __pyx_k_rados_initialize_failed_with_err, sizeof(__pyx_k_rados_initialize_failed_with_err), 0, 0, 1, 0},
60495 {&__pyx_kp_s_rados_ioctx_snap_get_stamp_error, __pyx_k_rados_ioctx_snap_get_stamp_error, sizeof(__pyx_k_rados_ioctx_snap_get_stamp_error), 0, 0, 1, 0},
60496 {&__pyx_kp_s_rados_snap_get_name_error, __pyx_k_rados_snap_get_name_error, sizeof(__pyx_k_rados_snap_get_name_error), 0, 0, 1, 0},
60497 {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
60498 {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1},
60499 {&__pyx_n_s_read_op, __pyx_k_read_op, sizeof(__pyx_k_read_op), 0, 0, 1, 1},
60500 {&__pyx_kp_s_read_operation_context_manager, __pyx_k_read_operation_context_manager, sizeof(__pyx_k_read_operation_context_manager), 0, 0, 1, 0},
60501 {&__pyx_kp_s_realloc_failed, __pyx_k_realloc_failed, sizeof(__pyx_k_realloc_failed), 0, 0, 1, 0},
60502 {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
60503 {&__pyx_n_s_release, __pyx_k_release, sizeof(__pyx_k_release), 0, 0, 1, 1},
60504 {&__pyx_n_s_remove, __pyx_k_remove, sizeof(__pyx_k_remove), 0, 0, 1, 1},
60505 {&__pyx_n_s_remove_object, __pyx_k_remove_object, sizeof(__pyx_k_remove_object), 0, 0, 1, 1},
60506 {&__pyx_n_s_remove_omap_keys, __pyx_k_remove_omap_keys, sizeof(__pyx_k_remove_omap_keys), 0, 0, 1, 1},
60507 {&__pyx_n_s_remove_self_managed_snap, __pyx_k_remove_self_managed_snap, sizeof(__pyx_k_remove_self_managed_snap), 0, 0, 1, 1},
60508 {&__pyx_n_s_remove_snap, __pyx_k_remove_snap, sizeof(__pyx_k_remove_snap), 0, 0, 1, 1},
60509 {&__pyx_n_s_removed, __pyx_k_removed, sizeof(__pyx_k_removed), 0, 0, 1, 1},
60510 {&__pyx_n_s_require_ioctx_open, __pyx_k_require_ioctx_open, sizeof(__pyx_k_require_ioctx_open), 0, 0, 1, 1},
60511 {&__pyx_n_s_require_object_exists, __pyx_k_require_object_exists, sizeof(__pyx_k_require_object_exists), 0, 0, 1, 1},
60512 {&__pyx_n_s_require_state, __pyx_k_require_state, sizeof(__pyx_k_require_state), 0, 0, 1, 1},
60513 {&__pyx_n_s_requires, __pyx_k_requires, sizeof(__pyx_k_requires), 0, 0, 1, 1},
60514 {&__pyx_n_s_requires_locals_check_type, __pyx_k_requires_locals_check_type, sizeof(__pyx_k_requires_locals_check_type), 0, 0, 1, 1},
60515 {&__pyx_n_s_requires_locals_check_type_local, __pyx_k_requires_locals_check_type_local, sizeof(__pyx_k_requires_locals_check_type_local), 0, 0, 1, 1},
60516 {&__pyx_n_s_requires_locals_is_type_of, __pyx_k_requires_locals_is_type_of, sizeof(__pyx_k_requires_locals_is_type_of), 0, 0, 1, 1},
60517 {&__pyx_n_s_requires_locals_wrapper, __pyx_k_requires_locals_wrapper, sizeof(__pyx_k_requires_locals_wrapper), 0, 0, 1, 1},
60518 {&__pyx_n_s_requires_locals_wrapper_locals_v, __pyx_k_requires_locals_wrapper_locals_v, sizeof(__pyx_k_requires_locals_wrapper_locals_v), 0, 0, 1, 1},
60519 {&__pyx_n_s_requires_locals_wrapper_locals_v_2, __pyx_k_requires_locals_wrapper_locals_v_2, sizeof(__pyx_k_requires_locals_wrapper_locals_v_2), 0, 0, 1, 1},
60520 {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1},
60521 {&__pyx_n_s_retfunc, __pyx_k_retfunc, sizeof(__pyx_k_retfunc), 0, 0, 1, 1},
60522 {&__pyx_n_s_return_value, __pyx_k_return_value, sizeof(__pyx_k_return_value), 0, 0, 1, 1},
60523 {&__pyx_n_s_retval, __pyx_k_retval, sizeof(__pyx_k_retval), 0, 0, 1, 1},
60524 {&__pyx_n_s_reverse, __pyx_k_reverse, sizeof(__pyx_k_reverse), 0, 0, 1, 1},
60525 {&__pyx_n_s_rm_xattr, __pyx_k_rm_xattr, sizeof(__pyx_k_rm_xattr), 0, 0, 1, 1},
60526 {&__pyx_n_s_rollback_self_managed_snap, __pyx_k_rollback_self_managed_snap, sizeof(__pyx_k_rollback_self_managed_snap), 0, 0, 1, 1},
60527 {&__pyx_n_s_rstrip, __pyx_k_rstrip, sizeof(__pyx_k_rstrip), 0, 0, 1, 1},
60528 {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
60529 {&__pyx_kp_s_s_must_be_a_string, __pyx_k_s_must_be_a_string, sizeof(__pyx_k_s_must_be_a_string), 0, 0, 1, 0},
60530 {&__pyx_kp_s_s_must_be_s, __pyx_k_s_must_be_s, sizeof(__pyx_k_s_must_be_s), 0, 0, 1, 0},
60531 {&__pyx_n_s_safe, __pyx_k_safe, sizeof(__pyx_k_safe), 0, 0, 1, 1},
60532 {&__pyx_n_s_sec, __pyx_k_sec, sizeof(__pyx_k_sec), 0, 0, 1, 1},
60533 {&__pyx_n_s_seek, __pyx_k_seek, sizeof(__pyx_k_seek), 0, 0, 1, 1},
60534 {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
60535 {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
60536 {&__pyx_n_s_service, __pyx_k_service, sizeof(__pyx_k_service), 0, 0, 1, 1},
60537 {&__pyx_n_s_service_daemon_register, __pyx_k_service_daemon_register, sizeof(__pyx_k_service_daemon_register), 0, 0, 1, 1},
60538 {&__pyx_n_s_service_daemon_update, __pyx_k_service_daemon_update, sizeof(__pyx_k_service_daemon_update), 0, 0, 1, 1},
60539 {&__pyx_n_s_set_flags, __pyx_k_set_flags, sizeof(__pyx_k_set_flags), 0, 0, 1, 1},
60540 {&__pyx_n_s_set_locator_key, __pyx_k_set_locator_key, sizeof(__pyx_k_set_locator_key), 0, 0, 1, 1},
60541 {&__pyx_n_s_set_namespace, __pyx_k_set_namespace, sizeof(__pyx_k_set_namespace), 0, 0, 1, 1},
60542 {&__pyx_n_s_set_object_locator, __pyx_k_set_object_locator, sizeof(__pyx_k_set_object_locator), 0, 0, 1, 1},
60543 {&__pyx_n_s_set_object_locator_locals_retfun, __pyx_k_set_object_locator_locals_retfun, sizeof(__pyx_k_set_object_locator_locals_retfun), 0, 0, 1, 1},
60544 {&__pyx_n_s_set_object_namespace, __pyx_k_set_object_namespace, sizeof(__pyx_k_set_object_namespace), 0, 0, 1, 1},
60545 {&__pyx_n_s_set_object_namespace_locals_retf, __pyx_k_set_object_namespace_locals_retf, sizeof(__pyx_k_set_object_namespace_locals_retf), 0, 0, 1, 1},
60546 {&__pyx_n_s_set_omap, __pyx_k_set_omap, sizeof(__pyx_k_set_omap), 0, 0, 1, 1},
60547 {&__pyx_n_s_set_read, __pyx_k_set_read, sizeof(__pyx_k_set_read), 0, 0, 1, 1},
60548 {&__pyx_n_s_set_xattr, __pyx_k_set_xattr, sizeof(__pyx_k_set_xattr), 0, 0, 1, 1},
60549 {&__pyx_n_s_setup, __pyx_k_setup, sizeof(__pyx_k_setup), 0, 0, 1, 1},
60550 {&__pyx_n_s_shutdown, __pyx_k_shutdown, sizeof(__pyx_k_shutdown), 0, 0, 1, 1},
60551 {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1},
60552 {&__pyx_n_s_snap_id, __pyx_k_snap_id, sizeof(__pyx_k_snap_id), 0, 0, 1, 1},
60553 {&__pyx_n_s_snap_name, __pyx_k_snap_name, sizeof(__pyx_k_snap_name), 0, 0, 1, 1},
60554 {&__pyx_n_s_snap_rollback, __pyx_k_snap_rollback, sizeof(__pyx_k_snap_rollback), 0, 0, 1, 1},
60555 {&__pyx_n_s_sorted, __pyx_k_sorted, sizeof(__pyx_k_sorted), 0, 0, 1, 1},
60556 {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
60557 {&__pyx_n_s_start_after, __pyx_k_start_after, sizeof(__pyx_k_start_after), 0, 0, 1, 1},
60558 {&__pyx_n_s_stat, __pyx_k_stat, sizeof(__pyx_k_stat), 0, 0, 1, 1},
60559 {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
60560 {&__pyx_n_s_status, __pyx_k_status, sizeof(__pyx_k_status), 0, 0, 1, 1},
60561 {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
60562 {&__pyx_n_s_str_type, __pyx_k_str_type, sizeof(__pyx_k_str_type), 0, 0, 1, 1},
60563 {&__pyx_n_s_string_to_write, __pyx_k_string_to_write, sizeof(__pyx_k_string_to_write), 0, 0, 1, 1},
60564 {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1},
60565 {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
60566 {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1},
60567 {&__pyx_n_s_tag, __pyx_k_tag, sizeof(__pyx_k_tag), 0, 0, 1, 1},
60568 {&__pyx_n_s_target, __pyx_k_target, sizeof(__pyx_k_target), 0, 0, 1, 1},
60569 {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
60570 {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1},
60571 {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
60572 {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1},
60573 {&__pyx_n_s_timeout, __pyx_k_timeout, sizeof(__pyx_k_timeout), 0, 0, 1, 1},
60574 {&__pyx_n_s_timeout_ms, __pyx_k_timeout_ms, sizeof(__pyx_k_timeout_ms), 0, 0, 1, 1},
60575 {&__pyx_n_s_to_append, __pyx_k_to_append, sizeof(__pyx_k_to_append), 0, 0, 1, 1},
60576 {&__pyx_n_s_to_write, __pyx_k_to_write, sizeof(__pyx_k_to_write), 0, 0, 1, 1},
60577 {&__pyx_n_s_traceback, __pyx_k_traceback, sizeof(__pyx_k_traceback), 0, 0, 1, 1},
60578 {&__pyx_n_s_track_completion, __pyx_k_track_completion, sizeof(__pyx_k_track_completion), 0, 0, 1, 1},
60579 {&__pyx_n_s_trunc, __pyx_k_trunc, sizeof(__pyx_k_trunc), 0, 0, 1, 1},
60580 {&__pyx_n_s_truncate, __pyx_k_truncate, sizeof(__pyx_k_truncate), 0, 0, 1, 1},
60581 {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
60582 {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1},
60583 {&__pyx_n_s_type_names, __pyx_k_type_names, sizeof(__pyx_k_type_names), 0, 0, 1, 1},
60584 {&__pyx_n_s_types, __pyx_k_types, sizeof(__pyx_k_types), 0, 0, 1, 1},
60585 {&__pyx_n_s_unlock, __pyx_k_unlock, sizeof(__pyx_k_unlock), 0, 0, 1, 1},
60586 {&__pyx_kp_s_utf_8, __pyx_k_utf_8, sizeof(__pyx_k_utf_8), 0, 0, 1, 0},
60587 {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1},
60588 {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1},
60589 {&__pyx_n_s_validate_func, __pyx_k_validate_func, sizeof(__pyx_k_validate_func), 0, 0, 1, 1},
60590 {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
60591 {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
60592 {&__pyx_n_s_var, __pyx_k_var, sizeof(__pyx_k_var), 0, 0, 1, 1},
60593 {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1},
60594 {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1},
60595 {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1},
60596 {&__pyx_n_s_warning, __pyx_k_warning, sizeof(__pyx_k_warning), 0, 0, 1, 1},
60597 {&__pyx_n_s_wrapper, __pyx_k_wrapper, sizeof(__pyx_k_wrapper), 0, 0, 1, 1},
60598 {&__pyx_n_s_wraps, __pyx_k_wraps, sizeof(__pyx_k_wraps), 0, 0, 1, 1},
60599 {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1},
60600 {&__pyx_n_s_write_full, __pyx_k_write_full, sizeof(__pyx_k_write_full), 0, 0, 1, 1},
60601 {&__pyx_n_s_write_op, __pyx_k_write_op, sizeof(__pyx_k_write_op), 0, 0, 1, 1},
60602 {&__pyx_kp_s_write_operation_context_manager, __pyx_k_write_operation_context_manager, sizeof(__pyx_k_write_operation_context_manager), 0, 0, 1, 0},
60603 {&__pyx_n_s_xattr_name, __pyx_k_xattr_name, sizeof(__pyx_k_xattr_name), 0, 0, 1, 1},
60604 {&__pyx_n_s_xattr_value, __pyx_k_xattr_value, sizeof(__pyx_k_xattr_value), 0, 0, 1, 1},
60605 {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1},
60606 {&__pyx_n_s_zero, __pyx_k_zero, sizeof(__pyx_k_zero), 0, 0, 1, 1},
60607 {&__pyx_n_s_zip, __pyx_k_zip, sizeof(__pyx_k_zip), 0, 0, 1, 1},
60608 {0, 0, 0, 0, 0, 0, 0}
60609};
60610static int __Pyx_InitCachedBuiltins(void) {
60611 __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__60611; goto __pyx_L1_error;}
60612 __pyx_builtin_Exception = __Pyx_GetBuiltinName(__pyx_n_s_Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__60612; goto __pyx_L1_error;}
60613 __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__60613; goto __pyx_L1_error;}
60614 __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__60614; goto __pyx_L1_error;}
60615 __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 547; __pyx_clineno = __LINE__60615; goto __pyx_L1_error;}
60616 __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__60616; goto __pyx_L1_error;}
60617 __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__60617; goto __pyx_L1_error;}
60618 #if PY_MAJOR_VERSION2 >= 3
60619 __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__60619; goto __pyx_L1_error;}
60620 #else
60621 __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__60621; goto __pyx_L1_error;}
60622 #endif
60623 __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1635; __pyx_clineno = __LINE__60623; goto __pyx_L1_error;}
60624 __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3335; __pyx_clineno = __LINE__60624; goto __pyx_L1_error;}
60625 __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3344; __pyx_clineno = __LINE__60625; goto __pyx_L1_error;}
60626 return 0;
60627 __pyx_L1_error:;
60628 return -1;
60629}
60630
60631static int __Pyx_InitCachedConstants(void) {
60632 __Pyx_RefNannyDeclarations
60633 __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
60634
60635 /* "rados.pyx":558
60636 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
60637 * # @wraps(f)
60638 * def validate_func(*args, **kwargs): # <<<<<<<<<<<<<<
60639 * # ignore the `self` arg
60640 * pos_args = zip(args[1:], types)
60641 */
60642 __pyx_tuple_ = PyTuple_Pack(9, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_pos_args, __pyx_n_s_named_args, __pyx_n_s_arg_val, __pyx_n_s_arg_name, __pyx_n_s_arg_type, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple_)__builtin_expect(!!(!__pyx_tuple_), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__60642; goto __pyx_L1_error;}
60643 __Pyx_GOTREF(__pyx_tuple_);
60644 __Pyx_GIVEREF(__pyx_tuple_);
60645 __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(0, 0, 9, 0, CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_validate_func, 558, __pyx_empty_bytes)PyCode_New(0 +0, 9, 0, 0x0004|0x0008, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_validate_func
, 558, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__2)__builtin_expect(!!(!__pyx_codeobj__2), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__60645; goto __pyx_L1_error;}
60646
60647 /* "rados.pyx":535
60648 * # kwargs is an un-ordered dict, so use args instead
60649 * def requires(*types):
60650 * def is_type_of(v, t): # <<<<<<<<<<<<<<
60651 * if t is None:
60652 * return v is None
60653 */
60654 __pyx_tuple__3 = PyTuple_Pack(2, __pyx_n_s_v, __pyx_n_s_t); if (unlikely(!__pyx_tuple__3)__builtin_expect(!!(!__pyx_tuple__3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__60654; goto __pyx_L1_error;}
60655 __Pyx_GOTREF(__pyx_tuple__3);
60656 __Pyx_GIVEREF(__pyx_tuple__3);
60657 __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_is_type_of, 535, __pyx_empty_bytes)PyCode_New(2 +0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_is_type_of
, 535, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__4)__builtin_expect(!!(!__pyx_codeobj__4), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__60657; goto __pyx_L1_error;}
60658
60659 /* "rados.pyx":541
60660 * return isinstance(v, t)
60661 *
60662 * def check_type(val, arg_name, arg_type): # <<<<<<<<<<<<<<
60663 * if isinstance(arg_type, tuple):
60664 * if any(is_type_of(val, t) for t in arg_type):
60665 */
60666 __pyx_tuple__5 = PyTuple_Pack(7, __pyx_n_s_val, __pyx_n_s_arg_name, __pyx_n_s_arg_type, __pyx_n_s_type_names, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__5)__builtin_expect(!!(!__pyx_tuple__5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__60666; goto __pyx_L1_error;}
60667 __Pyx_GOTREF(__pyx_tuple__5);
60668 __Pyx_GIVEREF(__pyx_tuple__5);
60669 __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_check_type, 541, __pyx_empty_bytes)PyCode_New(3 +0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_check_type
, 541, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__6)__builtin_expect(!!(!__pyx_codeobj__6), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__60669; goto __pyx_L1_error;}
60670
60671 /* "rados.pyx":554
60672 * raise TypeError('%s must be %s' % (arg_name, arg_type.__name__))
60673 *
60674 * def wrapper(f): # <<<<<<<<<<<<<<
60675 * # FIXME(sileht): this stop with
60676 * # AttributeError: 'method_descriptor' object has no attribute '__module__'
60677 */
60678 __pyx_tuple__7 = PyTuple_Pack(3, __pyx_n_s_f, __pyx_n_s_validate_func, __pyx_n_s_validate_func); if (unlikely(!__pyx_tuple__7)__builtin_expect(!!(!__pyx_tuple__7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__60678; goto __pyx_L1_error;}
60679 __Pyx_GOTREF(__pyx_tuple__7);
60680 __Pyx_GIVEREF(__pyx_tuple__7);
60681 __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_wrapper, 554, __pyx_empty_bytes)PyCode_New(1 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_wrapper
, 554, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__8)__builtin_expect(!!(!__pyx_codeobj__8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__60681; goto __pyx_L1_error;}
60682
60683 /* "rados.pyx":622
60684 * cdef void *ret = realloc(ptr, size)
60685 * if ret == NULL:
60686 * raise MemoryError("realloc failed") # <<<<<<<<<<<<<<
60687 * return ret
60688 *
60689 */
60690 __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_realloc_failed); if (unlikely(!__pyx_tuple__11)__builtin_expect(!!(!__pyx_tuple__11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__60690; goto __pyx_L1_error;}
60691 __Pyx_GOTREF(__pyx_tuple__11);
60692 __Pyx_GIVEREF(__pyx_tuple__11);
60693
60694 /* "rados.pyx":629
60695 * cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
60696 * if ret == NULL:
60697 * raise MemoryError("malloc failed") # <<<<<<<<<<<<<<
60698 * for i in xrange(len(list_int)):
60699 * ret[i] = <size_t>list_int[i]
60700 */
60701 __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_malloc_failed); if (unlikely(!__pyx_tuple__12)__builtin_expect(!!(!__pyx_tuple__12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__60701; goto __pyx_L1_error;}
60702 __Pyx_GOTREF(__pyx_tuple__12);
60703 __Pyx_GIVEREF(__pyx_tuple__12);
60704
60705 /* "rados.pyx":638
60706 * cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
60707 * if ret == NULL:
60708 * raise MemoryError("malloc failed") # <<<<<<<<<<<<<<
60709 * for i in xrange(len(list_bytes)):
60710 * ret[i] = <char *>list_bytes[i]
60711 */
60712 __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_malloc_failed); if (unlikely(!__pyx_tuple__13)__builtin_expect(!!(!__pyx_tuple__13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__60712; goto __pyx_L1_error;}
60713 __Pyx_GOTREF(__pyx_tuple__13);
60714 __Pyx_GIVEREF(__pyx_tuple__13);
60715
60716 /* "rados.pyx":694
60717 *
60718 * if rados_id and name:
60719 * raise Error("Rados(): can't supply both rados_id and name") # <<<<<<<<<<<<<<
60720 * elif rados_id:
60721 * name = 'client.' + rados_id
60722 */
60723 __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Rados_can_t_supply_both_rados_id); if (unlikely(!__pyx_tuple__14)__builtin_expect(!!(!__pyx_tuple__14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__60723; goto __pyx_L1_error;}
60724 __Pyx_GOTREF(__pyx_tuple__14);
60725 __Pyx_GIVEREF(__pyx_tuple__14);
60726
60727 /* "rados.pyx":786
60728 * :type path: str
60729 * """
60730 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
60731 * path = cstr(path, 'path', opt=True)
60732 * cdef:
60733 */
60734 __pyx_tuple__15 = PyTuple_Pack(2, __pyx_n_s_configuring, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__15)__builtin_expect(!!(!__pyx_tuple__15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__60734; goto __pyx_L1_error;}
60735 __Pyx_GOTREF(__pyx_tuple__15);
60736 __Pyx_GIVEREF(__pyx_tuple__15);
60737
60738 /* "rados.pyx":800
60739 * args contain only those unknown to ceph
60740 * """
60741 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
60742 * if not args:
60743 * return
60744 */
60745 __pyx_tuple__16 = PyTuple_Pack(2, __pyx_n_s_configuring, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__16)__builtin_expect(!!(!__pyx_tuple__16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__60745; goto __pyx_L1_error;}
60746 __Pyx_GOTREF(__pyx_tuple__16);
60747 __Pyx_GIVEREF(__pyx_tuple__16);
60748
60749 /* "rados.pyx":834
60750 * CEPH_ARGS.
60751 * """
60752 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
60753 * if not var:
60754 * return
60755 */
60756 __pyx_tuple__17 = PyTuple_Pack(2, __pyx_n_s_configuring, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__17)__builtin_expect(!!(!__pyx_tuple__17), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__60756; goto __pyx_L1_error;}
60757 __Pyx_GOTREF(__pyx_tuple__17);
60758 __Pyx_GIVEREF(__pyx_tuple__17);
60759
60760 /* "rados.pyx":857
60761 * :raises: :class:`TypeError`
60762 * """
60763 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
60764 * option = cstr(option, 'option')
60765 * cdef:
60766 */
60767 __pyx_tuple__18 = PyTuple_Pack(2, __pyx_n_s_configuring, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__18)__builtin_expect(!!(!__pyx_tuple__18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__60767; goto __pyx_L1_error;}
60768 __Pyx_GOTREF(__pyx_tuple__18);
60769 __Pyx_GIVEREF(__pyx_tuple__18);
60770
60771 /* "rados.pyx":892
60772 * :raises: :class:`TypeError`, :class:`ObjectNotFound`
60773 * """
60774 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
60775 * option = cstr(option, 'option')
60776 * val = cstr(val, 'val')
60777 */
60778 __pyx_tuple__19 = PyTuple_Pack(2, __pyx_n_s_configuring, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__19)__builtin_expect(!!(!__pyx_tuple__19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__60778; goto __pyx_L1_error;}
60779 __Pyx_GOTREF(__pyx_tuple__19);
60780 __Pyx_GIVEREF(__pyx_tuple__19);
60781
60782 /* "rados.pyx":917
60783 * """
60784 *
60785 * self.require_state("configuring", "connected") # <<<<<<<<<<<<<<
60786 *
60787 * mon_id = cstr(mon_id, 'mon_id')
60788 */
60789 __pyx_tuple__20 = PyTuple_Pack(2, __pyx_n_s_configuring, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__20)__builtin_expect(!!(!__pyx_tuple__20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__60789; goto __pyx_L1_error;}
60790 __Pyx_GOTREF(__pyx_tuple__20);
60791 __Pyx_GIVEREF(__pyx_tuple__20);
60792
60793 /* "rados.pyx":940
60794 * Connect to the cluster. Use shutdown() to release resources.
60795 * """
60796 * self.require_state("configuring") # <<<<<<<<<<<<<<
60797 * # NOTE(sileht): timeout was supported by old python API,
60798 * # but this is not something available in C API, so ignore
60799 */
60800 __pyx_tuple__21 = PyTuple_Pack(1, __pyx_n_s_configuring); if (unlikely(!__pyx_tuple__21)__builtin_expect(!!(!__pyx_tuple__21), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__60800; goto __pyx_L1_error;}
60801 __Pyx_GOTREF(__pyx_tuple__21);
60802 __Pyx_GIVEREF(__pyx_tuple__21);
60803
60804 /* "rados.pyx":954
60805 * Get a global id for current instance
60806 * """
60807 * self.require_state("connected") # <<<<<<<<<<<<<<
60808 * with nogil:
60809 * ret = rados_get_instance_id(self.cluster)
60810 */
60811 __pyx_tuple__22 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__22)__builtin_expect(!!(!__pyx_tuple__22), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__60811; goto __pyx_L1_error;}
60812 __Pyx_GOTREF(__pyx_tuple__22);
60813 __Pyx_GIVEREF(__pyx_tuple__22);
60814
60815 /* "rados.pyx":1003
60816 * :returns: bool - whether the pool exists, false otherwise.
60817 * """
60818 * self.require_state("connected") # <<<<<<<<<<<<<<
60819 *
60820 * pool_name = cstr(pool_name, 'pool_name')
60821 */
60822 __pyx_tuple__23 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__23)__builtin_expect(!!(!__pyx_tuple__23), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__60822; goto __pyx_L1_error;}
60823 __Pyx_GOTREF(__pyx_tuple__23);
60824 __Pyx_GIVEREF(__pyx_tuple__23);
60825
60826 /* "rados.pyx":1029
60827 * :returns: int - pool ID, or None if it doesn't exist
60828 * """
60829 * self.require_state("connected") # <<<<<<<<<<<<<<
60830 * pool_name = cstr(pool_name, 'pool_name')
60831 * cdef:
60832 */
60833 __pyx_tuple__24 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__24)__builtin_expect(!!(!__pyx_tuple__24), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__60833; goto __pyx_L1_error;}
60834 __Pyx_GOTREF(__pyx_tuple__24);
60835 __Pyx_GIVEREF(__pyx_tuple__24);
60836
60837 /* "rados.pyx":1054
60838 * :returns: string - pool name, or None if it doesn't exist
60839 * """
60840 * self.require_state("connected") # <<<<<<<<<<<<<<
60841 * cdef:
60842 * int64_t _pool_id = pool_id
60843 */
60844 __pyx_tuple__25 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__25)__builtin_expect(!!(!__pyx_tuple__25), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__60844; goto __pyx_L1_error;}
60845 __Pyx_GOTREF(__pyx_tuple__25);
60846 __Pyx_GIVEREF(__pyx_tuple__25);
60847
60848 /* "rados.pyx":1093
60849 * :raises: :class:`TypeError`, :class:`Error`
60850 * """
60851 * self.require_state("connected") # <<<<<<<<<<<<<<
60852 *
60853 * pool_name = cstr(pool_name, 'pool_name')
60854 */
60855 __pyx_tuple__26 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__26)__builtin_expect(!!(!__pyx_tuple__26), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1093; __pyx_clineno = __LINE__60855; goto __pyx_L1_error;}
60856 __Pyx_GOTREF(__pyx_tuple__26);
60857 __Pyx_GIVEREF(__pyx_tuple__26);
60858
60859 /* "rados.pyx":1117
60860 * :returns: base pool, or pool_id if tiering is not configured for the pool
60861 * """
60862 * self.require_state("connected") # <<<<<<<<<<<<<<
60863 * cdef:
60864 * int64_t base_tier = 0
60865 */
60866 __pyx_tuple__27 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__27)__builtin_expect(!!(!__pyx_tuple__27), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__60866; goto __pyx_L1_error;}
60867 __Pyx_GOTREF(__pyx_tuple__27);
60868 __Pyx_GIVEREF(__pyx_tuple__27);
60869
60870 /* "rados.pyx":1141
60871 * :raises: :class:`TypeError`, :class:`Error`
60872 * """
60873 * self.require_state("connected") # <<<<<<<<<<<<<<
60874 *
60875 * pool_name = cstr(pool_name, 'pool_name')
60876 */
60877 __pyx_tuple__28 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__28)__builtin_expect(!!(!__pyx_tuple__28), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__60877; goto __pyx_L1_error;}
60878 __Pyx_GOTREF(__pyx_tuple__28);
60879 __Pyx_GIVEREF(__pyx_tuple__28);
60880
60881 /* "rados.pyx":1161
60882 * :returns: list - inconsistent placement groups
60883 * """
60884 * self.require_state("connected") # <<<<<<<<<<<<<<
60885 * cdef:
60886 * int64_t pool = pool_id
60887 */
60888 __pyx_tuple__29 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__29)__builtin_expect(!!(!__pyx_tuple__29), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__60888; goto __pyx_L1_error;}
60889 __Pyx_GOTREF(__pyx_tuple__29);
60890 __Pyx_GIVEREF(__pyx_tuple__29);
60891
60892 /* "rados.pyx":1179
60893 * else:
60894 * raise make_ex(ret, "error calling inconsistent_pg_list")
60895 * return [pg for pg in decode_cstr(pgs[:ret]).split('\0') if pg] # <<<<<<<<<<<<<<
60896 * finally:
60897 * free(pgs)
60898 */
60899 __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s__9); if (unlikely(!__pyx_tuple__30)__builtin_expect(!!(!__pyx_tuple__30), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__60899; goto __pyx_L1_error;}
60900 __Pyx_GOTREF(__pyx_tuple__30);
60901 __Pyx_GIVEREF(__pyx_tuple__30);
60902
60903 /* "rados.pyx":1189
60904 * :returns: list - of pool names.
60905 * """
60906 * self.require_state("connected") # <<<<<<<<<<<<<<
60907 * cdef:
60908 * size_t size = 512
60909 */
60910 __pyx_tuple__31 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__31)__builtin_expect(!!(!__pyx_tuple__31), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1189; __pyx_clineno = __LINE__60910; goto __pyx_L1_error;}
60911 __Pyx_GOTREF(__pyx_tuple__31);
60912 __Pyx_GIVEREF(__pyx_tuple__31);
60913
60914 /* "rados.pyx":1203
60915 * elif ret >= 0:
60916 * break
60917 * return [name for name in decode_cstr(c_names[:ret]).split('\0') # <<<<<<<<<<<<<<
60918 * if name]
60919 * finally:
60920 */
60921 __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s__9); if (unlikely(!__pyx_tuple__32)__builtin_expect(!!(!__pyx_tuple__32), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1203; __pyx_clineno = __LINE__60921; goto __pyx_L1_error;}
60922 __Pyx_GOTREF(__pyx_tuple__32);
60923 __Pyx_GIVEREF(__pyx_tuple__32);
60924
60925 /* "rados.pyx":1215
60926 * :returns: str - cluster fsid
60927 * """
60928 * self.require_state("connected") # <<<<<<<<<<<<<<
60929 * cdef:
60930 * char *ret_buf = NULL
60931 */
60932 __pyx_tuple__33 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__33)__builtin_expect(!!(!__pyx_tuple__33), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1215; __pyx_clineno = __LINE__60932; goto __pyx_L1_error;}
60933 __Pyx_GOTREF(__pyx_tuple__33);
60934 __Pyx_GIVEREF(__pyx_tuple__33);
60935
60936 /* "rados.pyx":1249
60937 * :returns: Ioctx - Rados Ioctx object
60938 * """
60939 * self.require_state("connected") # <<<<<<<<<<<<<<
60940 * ioctx_name = cstr(ioctx_name, 'ioctx_name')
60941 * cdef:
60942 */
60943 __pyx_tuple__34 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__34)__builtin_expect(!!(!__pyx_tuple__34), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__60943; goto __pyx_L1_error;}
60944 __Pyx_GOTREF(__pyx_tuple__34);
60945 __Pyx_GIVEREF(__pyx_tuple__34);
60946
60947 /* "rados.pyx":1276
60948 * :returns: Ioctx - Rados Ioctx object
60949 * """
60950 * self.require_state("connected") # <<<<<<<<<<<<<<
60951 * cdef:
60952 * rados_ioctx_t ioctx
60953 */
60954 __pyx_tuple__35 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__35)__builtin_expect(!!(!__pyx_tuple__35), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1276; __pyx_clineno = __LINE__60954; goto __pyx_L1_error;}
60955 __Pyx_GOTREF(__pyx_tuple__35);
60956 __Pyx_GIVEREF(__pyx_tuple__35);
60957
60958 /* "rados.pyx":1311
60959 * # timeout argument, but we keep it for backward compat with old python binding
60960 *
60961 * self.require_state("connected") # <<<<<<<<<<<<<<
60962 * cmd = cstr_list(cmd, 'c')
60963 *
60964 */
60965 __pyx_tuple__36 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__36)__builtin_expect(!!(!__pyx_tuple__36), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__60965; goto __pyx_L1_error;}
60966 __Pyx_GOTREF(__pyx_tuple__36);
60967 __Pyx_GIVEREF(__pyx_tuple__36);
60968
60969 /* "rados.pyx":1368
60970 * # NOTE(sileht): timeout is ignored because C API doesn't provide
60971 * # timeout argument, but we keep it for backward compat with old python binding
60972 * self.require_state("connected") # <<<<<<<<<<<<<<
60973 *
60974 * cmd = cstr_list(cmd, 'cmd')
60975 */
60976 __pyx_tuple__37 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__37)__builtin_expect(!!(!__pyx_tuple__37), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__60976; goto __pyx_L1_error;}
60977 __Pyx_GOTREF(__pyx_tuple__37);
60978 __Pyx_GIVEREF(__pyx_tuple__37);
60979
60980 /* "rados.pyx":1410
60981 * # NOTE(sileht): timeout is ignored because C API doesn't provide
60982 * # timeout argument, but we keep it for backward compat with old python binding
60983 * self.require_state("connected") # <<<<<<<<<<<<<<
60984 *
60985 * cmd = cstr_list(cmd, 'cmd')
60986 */
60987 __pyx_tuple__38 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__38)__builtin_expect(!!(!__pyx_tuple__38), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1410; __pyx_clineno = __LINE__60987; goto __pyx_L1_error;}
60988 __Pyx_GOTREF(__pyx_tuple__38);
60989 __Pyx_GIVEREF(__pyx_tuple__38);
60990
60991 /* "rados.pyx":1453
60992 * # NOTE(sileht): timeout is ignored because C API doesn't provide
60993 * # timeout argument, but we keep it for backward compat with old python binding
60994 * self.require_state("connected") # <<<<<<<<<<<<<<
60995 *
60996 * pgid = cstr(pgid, 'pgid')
60997 */
60998 __pyx_tuple__39 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__39)__builtin_expect(!!(!__pyx_tuple__39), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__60998; goto __pyx_L1_error;}
60999 __Pyx_GOTREF(__pyx_tuple__39);
61000 __Pyx_GIVEREF(__pyx_tuple__39);
61001
61002 /* "rados.pyx":1491
61003 *
61004 * def wait_for_latest_osdmap(self):
61005 * self.require_state("connected") # <<<<<<<<<<<<<<
61006 * with nogil:
61007 * ret = rados_wait_for_latest_osdmap(self.cluster)
61008 */
61009 __pyx_tuple__40 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__40)__builtin_expect(!!(!__pyx_tuple__40), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1491; __pyx_clineno = __LINE__61009; goto __pyx_L1_error;}
61010 __Pyx_GOTREF(__pyx_tuple__40);
61011 __Pyx_GIVEREF(__pyx_tuple__40);
61012
61013 /* "rados.pyx":1507
61014 * :raises: :class:`Error`
61015 * """
61016 * self.require_state("connected") # <<<<<<<<<<<<<<
61017 * client_address = cstr(client_address, 'client_address')
61018 * cdef:
61019 */
61020 __pyx_tuple__41 = PyTuple_Pack(1, __pyx_n_s_connected); if (unlikely(!__pyx_tuple__41)__builtin_expect(!!(!__pyx_tuple__41), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__61020; goto __pyx_L1_error;}
61021 __Pyx_GOTREF(__pyx_tuple__41);
61022 __Pyx_GIVEREF(__pyx_tuple__41);
61023
61024 /* "rados.pyx":1522
61025 * raise LogicError("invalid monitor level " + level)
61026 * if callback is not None and not callable(callback):
61027 * raise LogicError("callback must be a callable function or None") # <<<<<<<<<<<<<<
61028 *
61029 * level = cstr(level, 'level')
61030 */
61031 __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_callback_must_be_a_callable_func); if (unlikely(!__pyx_tuple__42)__builtin_expect(!!(!__pyx_tuple__42), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__61031; goto __pyx_L1_error;}
61032 __Pyx_GOTREF(__pyx_tuple__42);
61033 __Pyx_GIVEREF(__pyx_tuple__42);
61034
61035 /* "rados.pyx":1550
61036 * raise LogicError("invalid monitor level " + level)
61037 * if callback is not None and not callable(callback):
61038 * raise LogicError("callback must be a callable function or None") # <<<<<<<<<<<<<<
61039 *
61040 * level = cstr(level, 'level')
61041 */
61042 __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_callback_must_be_a_callable_func); if (unlikely(!__pyx_tuple__43)__builtin_expect(!!(!__pyx_tuple__43), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1550; __pyx_clineno = __LINE__61042; goto __pyx_L1_error;}
61043 __Pyx_GOTREF(__pyx_tuple__43);
61044 __Pyx_GIVEREF(__pyx_tuple__43);
61045
61046 /* "rados.pyx":1804
61047 * name_len = name_len * 2
61048 *
61049 * snap = Snap(self.ioctx, decode_cstr(name[:name_len]).rstrip('\0'), snap_id) # <<<<<<<<<<<<<<
61050 * self.cur_snap = self.cur_snap + 1
61051 * return snap
61052 */
61053 __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_s__9); if (unlikely(!__pyx_tuple__44)__builtin_expect(!!(!__pyx_tuple__44), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__61053; goto __pyx_L1_error;}
61054 __Pyx_GOTREF(__pyx_tuple__44);
61055 __Pyx_GIVEREF(__pyx_tuple__44);
61056
61057 /* "rados.pyx":1954
61058 * def _complete(self):
61059 * self.oncomplete(self)
61060 * with self.ioctx.lock: # <<<<<<<<<<<<<<
61061 * if self.oncomplete:
61062 * self.ioctx.complete_completions.remove(self)
61063 */
61064 __pyx_tuple__45 = PyTuple_Pack(3, Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct)); if (unlikely(!__pyx_tuple__45)__builtin_expect(!!(!__pyx_tuple__45), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1954; __pyx_clineno = __LINE__61064; goto __pyx_L1_error;}
61065 __Pyx_GOTREF(__pyx_tuple__45);
61066 __Pyx_GIVEREF(__pyx_tuple__45);
61067
61068 /* "rados.pyx":1960
61069 * def _safe(self):
61070 * self.onsafe(self)
61071 * with self.ioctx.lock: # <<<<<<<<<<<<<<
61072 * if self.onsafe:
61073 * self.ioctx.safe_completions.remove(self)
61074 */
61075 __pyx_tuple__46 = PyTuple_Pack(3, Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct)); if (unlikely(!__pyx_tuple__46)__builtin_expect(!!(!__pyx_tuple__46), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__61075; goto __pyx_L1_error;}
61076 __Pyx_GOTREF(__pyx_tuple__46);
61077 __Pyx_GIVEREF(__pyx_tuple__46);
61078
61079 /* "rados.pyx":1965
61080 *
61081 * def _cleanup(self):
61082 * with self.ioctx.lock: # <<<<<<<<<<<<<<
61083 * if self.oncomplete:
61084 * self.ioctx.complete_completions.remove(self)
61085 */
61086 __pyx_tuple__47 = PyTuple_Pack(3, Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct)); if (unlikely(!__pyx_tuple__47)__builtin_expect(!!(!__pyx_tuple__47), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1965; __pyx_clineno = __LINE__61086; goto __pyx_L1_error;}
61087 __Pyx_GOTREF(__pyx_tuple__47);
61088 __Pyx_GIVEREF(__pyx_tuple__47);
61089
61090 /* "rados.pyx":2198
61091 * def __track_completion(self, completion_obj):
61092 * if completion_obj.oncomplete:
61093 * with self.lock: # <<<<<<<<<<<<<<
61094 * self.complete_completions.append(completion_obj)
61095 * if completion_obj.onsafe:
61096 */
61097 __pyx_tuple__50 = PyTuple_Pack(3, Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct)); if (unlikely(!__pyx_tuple__50)__builtin_expect(!!(!__pyx_tuple__50), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__61097; goto __pyx_L1_error;}
61098 __Pyx_GOTREF(__pyx_tuple__50);
61099 __Pyx_GIVEREF(__pyx_tuple__50);
61100
61101 /* "rados.pyx":2201
61102 * self.complete_completions.append(completion_obj)
61103 * if completion_obj.onsafe:
61104 * with self.lock: # <<<<<<<<<<<<<<
61105 * self.safe_completions.append(completion_obj)
61106 *
61107 */
61108 __pyx_tuple__51 = PyTuple_Pack(3, Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct), Py_None(&_Py_NoneStruct)); if (unlikely(!__pyx_tuple__51)__builtin_expect(!!(!__pyx_tuple__51), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2201; __pyx_clineno = __LINE__61108; goto __pyx_L1_error;}
61109 __Pyx_GOTREF(__pyx_tuple__51);
61110 __Pyx_GIVEREF(__pyx_tuple__51);
61111
61112 /* "rados.pyx":2268
61113 * time_t pmtime
61114 *
61115 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
61116 * cdef Completion _completion_v = completion_v
61117 * return_value = _completion_v.get_return_value()
61118 */
61119 __pyx_tuple__52 = PyTuple_Pack(3, __pyx_n_s_completion_v, __pyx_n_s_completion_v_2, __pyx_n_s_return_value); if (unlikely(!__pyx_tuple__52)__builtin_expect(!!(!__pyx_tuple__52), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2268; __pyx_clineno = __LINE__61119; goto __pyx_L1_error;}
61120 __Pyx_GOTREF(__pyx_tuple__52);
61121 __Pyx_GIVEREF(__pyx_tuple__52);
61122 __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_oncomplete_2, 2268, __pyx_empty_bytes)PyCode_New(1 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_oncomplete_2
, 2268, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__53)__builtin_expect(!!(!__pyx_codeobj__53), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2268; __pyx_clineno = __LINE__61122; goto __pyx_L1_error;}
61123
61124 /* "rados.pyx":2465
61125 * size_t _length = length
61126 *
61127 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
61128 * cdef Completion _completion_v = completion_v
61129 * return_value = _completion_v.get_return_value()
61130 */
61131 __pyx_tuple__54 = PyTuple_Pack(3, __pyx_n_s_completion_v, __pyx_n_s_completion_v_2, __pyx_n_s_return_value); if (unlikely(!__pyx_tuple__54)__builtin_expect(!!(!__pyx_tuple__54), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2465; __pyx_clineno = __LINE__61131; goto __pyx_L1_error;}
61132 __Pyx_GOTREF(__pyx_tuple__54);
61133 __Pyx_GIVEREF(__pyx_tuple__54);
61134 __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_oncomplete_2, 2465, __pyx_empty_bytes)PyCode_New(1 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_oncomplete_2
, 2465, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__55)__builtin_expect(!!(!__pyx_codeobj__55), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2465; __pyx_clineno = __LINE__61134; goto __pyx_L1_error;}
61135
61136 /* "rados.pyx":2531
61137 * size_t _length = length
61138 *
61139 * def oncomplete_(completion_v): # <<<<<<<<<<<<<<
61140 * cdef Completion _completion_v = completion_v
61141 * return_value = _completion_v.get_return_value()
61142 */
61143 __pyx_tuple__56 = PyTuple_Pack(3, __pyx_n_s_completion_v, __pyx_n_s_completion_v_2, __pyx_n_s_return_value); if (unlikely(!__pyx_tuple__56)__builtin_expect(!!(!__pyx_tuple__56), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__61143; goto __pyx_L1_error;}
61144 __Pyx_GOTREF(__pyx_tuple__56);
61145 __Pyx_GIVEREF(__pyx_tuple__56);
61146 __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_oncomplete_2, 2531, __pyx_empty_bytes)PyCode_New(1 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_oncomplete_2
, 2531, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__57)__builtin_expect(!!(!__pyx_codeobj__57), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__61146; goto __pyx_L1_error;}
61147
61148 /* "rados.pyx":2538
61149 * return oncomplete(_completion_v, <object>_completion_v.buf if return_value >= 0 else None)
61150 *
61151 * def onsafe_(completion_v): # <<<<<<<<<<<<<<
61152 * cdef Completion _completion_v = completion_v
61153 * return_value = _completion_v.get_return_value()
61154 */
61155 __pyx_tuple__58 = PyTuple_Pack(3, __pyx_n_s_completion_v, __pyx_n_s_completion_v_2, __pyx_n_s_return_value); if (unlikely(!__pyx_tuple__58)__builtin_expect(!!(!__pyx_tuple__58), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__61155; goto __pyx_L1_error;}
61156 __Pyx_GOTREF(__pyx_tuple__58);
61157 __Pyx_GIVEREF(__pyx_tuple__58);
61158 __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_onsafe_2, 2538, __pyx_empty_bytes)PyCode_New(1 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_onsafe_2
, 2538, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__59)__builtin_expect(!!(!__pyx_codeobj__59), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__61158; goto __pyx_L1_error;}
61159
61160 /* "rados.pyx":3434
61161 *
61162 * if len(keys) != len(values):
61163 * raise Error("Rados(): keys and values must have the same number of items") # <<<<<<<<<<<<<<
61164 *
61165 * keys = cstr_list(keys, 'keys')
61166 */
61167 __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s_Rados_keys_and_values_must_have); if (unlikely(!__pyx_tuple__60)__builtin_expect(!!(!__pyx_tuple__60), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3434; __pyx_clineno = __LINE__61167; goto __pyx_L1_error;}
61168 __Pyx_GOTREF(__pyx_tuple__60);
61169 __Pyx_GIVEREF(__pyx_tuple__60);
61170
61171 /* "rados.pyx":3891
61172 * if ret == 0:
61173 * return [decode_cstr(app) for app in
61174 * apps[:length].split(b'\0') if app] # <<<<<<<<<<<<<<
61175 * elif ret == -errno.ENOENT:
61176 * return None
61177 */
61178 __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_b__9); if (unlikely(!__pyx_tuple__65)__builtin_expect(!!(!__pyx_tuple__65), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3891; __pyx_clineno = __LINE__61178; goto __pyx_L1_error;}
61179 __Pyx_GOTREF(__pyx_tuple__65);
61180 __Pyx_GIVEREF(__pyx_tuple__65);
61181
61182 /* "rados.pyx":3976
61183 * if ret == 0:
61184 * keys = [decode_cstr(key) for key in
61185 * c_keys[:key_length].split(b'\0')] # <<<<<<<<<<<<<<
61186 * vals = [decode_cstr(val) for val in
61187 * c_vals[:val_length].split(b'\0')]
61188 */
61189 __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_b__9); if (unlikely(!__pyx_tuple__66)__builtin_expect(!!(!__pyx_tuple__66), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3976; __pyx_clineno = __LINE__61189; goto __pyx_L1_error;}
61190 __Pyx_GOTREF(__pyx_tuple__66);
61191 __Pyx_GIVEREF(__pyx_tuple__66);
61192
61193 /* "rados.pyx":3978
61194 * c_keys[:key_length].split(b'\0')]
61195 * vals = [decode_cstr(val) for val in
61196 * c_vals[:val_length].split(b'\0')] # <<<<<<<<<<<<<<
61197 * return zip(keys, vals)[:-1]
61198 * elif ret == -errno.ERANGE:
61199 */
61200 __pyx_tuple__67 = PyTuple_Pack(1, __pyx_kp_b__9); if (unlikely(!__pyx_tuple__67)__builtin_expect(!!(!__pyx_tuple__67), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3978; __pyx_clineno = __LINE__61200; goto __pyx_L1_error;}
61201 __Pyx_GOTREF(__pyx_tuple__67);
61202 __Pyx_GIVEREF(__pyx_tuple__67);
61203
61204 /* "rados.pyx":3979
61205 * vals = [decode_cstr(val) for val in
61206 * c_vals[:val_length].split(b'\0')]
61207 * return zip(keys, vals)[:-1] # <<<<<<<<<<<<<<
61208 * elif ret == -errno.ERANGE:
61209 * pass
61210 */
61211 __pyx_slice__68 = PySlice_New(Py_None(&_Py_NoneStruct), __pyx_int_neg_1, Py_None(&_Py_NoneStruct)); if (unlikely(!__pyx_slice__68)__builtin_expect(!!(!__pyx_slice__68), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3979; __pyx_clineno = __LINE__61211; goto __pyx_L1_error;}
61212 __Pyx_GOTREF(__pyx_slice__68);
61213 __Pyx_GIVEREF(__pyx_slice__68);
61214
61215 /* "rados.pyx":4016
61216 *
61217 * def set_object_locator(func):
61218 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
61219 * if self.locator_key is not None:
61220 * old_locator = self.ioctx.get_locator_key()
61221 */
61222 __pyx_tuple__69 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_old_locator, __pyx_n_s_retval); if (unlikely(!__pyx_tuple__69)__builtin_expect(!!(!__pyx_tuple__69), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4016; __pyx_clineno = __LINE__61222; goto __pyx_L1_error;}
61223 __Pyx_GOTREF(__pyx_tuple__69);
61224 __Pyx_GIVEREF(__pyx_tuple__69);
61225 __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_retfunc, 4016, __pyx_empty_bytes)PyCode_New(1 +0, 5, 0, 0x0004|0x0008, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_retfunc
, 4016, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__70)__builtin_expect(!!(!__pyx_codeobj__70), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4016; __pyx_clineno = __LINE__61225; goto __pyx_L1_error;}
61226
61227 /* "rados.pyx":4031
61228 * def retfunc(self, *args, **kwargs):
61229 * if self.nspace is None:
61230 * raise LogicError("Namespace not set properly in context") # <<<<<<<<<<<<<<
61231 * old_nspace = self.ioctx.get_namespace()
61232 * self.ioctx.set_namespace(self.nspace)
61233 */
61234 __pyx_tuple__71 = PyTuple_Pack(1, __pyx_kp_s_Namespace_not_set_properly_in_co); if (unlikely(!__pyx_tuple__71)__builtin_expect(!!(!__pyx_tuple__71), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4031; __pyx_clineno = __LINE__61234; goto __pyx_L1_error;}
61235 __Pyx_GOTREF(__pyx_tuple__71);
61236 __Pyx_GIVEREF(__pyx_tuple__71);
61237
61238 /* "rados.pyx":4029
61239 *
61240 * def set_object_namespace(func):
61241 * def retfunc(self, *args, **kwargs): # <<<<<<<<<<<<<<
61242 * if self.nspace is None:
61243 * raise LogicError("Namespace not set properly in context")
61244 */
61245 __pyx_tuple__72 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_old_nspace, __pyx_n_s_retval); if (unlikely(!__pyx_tuple__72)__builtin_expect(!!(!__pyx_tuple__72), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4029; __pyx_clineno = __LINE__61245; goto __pyx_L1_error;}
61246 __Pyx_GOTREF(__pyx_tuple__72);
61247 __Pyx_GIVEREF(__pyx_tuple__72);
61248 __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_retfunc, 4029, __pyx_empty_bytes)PyCode_New(1 +0, 5, 0, 0x0004|0x0008, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_retfunc
, 4029, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__73)__builtin_expect(!!(!__pyx_codeobj__73), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4029; __pyx_clineno = __LINE__61248; goto __pyx_L1_error;}
61249
61250 /* "rados.pyx":340
61251 * class Error(Exception):
61252 * """ `Error` class, derived from `Exception` """
61253 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61254 * super(Exception, self).__init__(message)
61255 * self.errno = errno
61256 */
61257 __pyx_tuple__74 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__74)__builtin_expect(!!(!__pyx_tuple__74), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__61257; goto __pyx_L1_error;}
61258 __Pyx_GOTREF(__pyx_tuple__74);
61259 __Pyx_GIVEREF(__pyx_tuple__74);
61260 __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 340, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 340
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__75)__builtin_expect(!!(!__pyx_codeobj__75), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__61260; goto __pyx_L1_error;}
61261 __pyx_tuple__76 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__76)__builtin_expect(!!(!__pyx_tuple__76), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__61261; goto __pyx_L1_error;}
61262 __Pyx_GOTREF(__pyx_tuple__76);
61263 __Pyx_GIVEREF(__pyx_tuple__76);
61264
61265 /* "rados.pyx":344
61266 * self.errno = errno
61267 *
61268 * def __str__(self): # <<<<<<<<<<<<<<
61269 * msg = super(Exception, self).__str__()
61270 * if self.errno is None:
61271 */
61272 __pyx_tuple__77 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__77)__builtin_expect(!!(!__pyx_tuple__77), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__61272; goto __pyx_L1_error;}
61273 __Pyx_GOTREF(__pyx_tuple__77);
61274 __Pyx_GIVEREF(__pyx_tuple__77);
61275 __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_str, 344, __pyx_empty_bytes)PyCode_New(1 +0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_str, 344
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__78)__builtin_expect(!!(!__pyx_codeobj__78), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__61275; goto __pyx_L1_error;}
61276
61277 /* "rados.pyx":350
61278 * return '[errno {0}] {1}'.format(self.errno, msg)
61279 *
61280 * def __reduce__(self): # <<<<<<<<<<<<<<
61281 * return (self.__class__, (self.message, self.errno))
61282 *
61283 */
61284 __pyx_tuple__79 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__79)__builtin_expect(!!(!__pyx_tuple__79), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__61284; goto __pyx_L1_error;}
61285 __Pyx_GOTREF(__pyx_tuple__79);
61286 __Pyx_GIVEREF(__pyx_tuple__79);
61287 __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_reduce, 350, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_reduce
, 350, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__80)__builtin_expect(!!(!__pyx_codeobj__80), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__61287; goto __pyx_L1_error;}
61288
61289 /* "rados.pyx":354
61290 *
61291 * class InvalidArgumentError(Error):
61292 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61293 * super(InvalidArgumentError, self).__init__(
61294 * "RADOS invalid argument (%s)" % message, errno)
61295 */
61296 __pyx_tuple__81 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__81)__builtin_expect(!!(!__pyx_tuple__81), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__61296; goto __pyx_L1_error;}
61297 __Pyx_GOTREF(__pyx_tuple__81);
61298 __Pyx_GIVEREF(__pyx_tuple__81);
61299 __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 354, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 354
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__82)__builtin_expect(!!(!__pyx_codeobj__82), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__61299; goto __pyx_L1_error;}
61300 __pyx_tuple__83 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__83)__builtin_expect(!!(!__pyx_tuple__83), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__61300; goto __pyx_L1_error;}
61301 __Pyx_GOTREF(__pyx_tuple__83);
61302 __Pyx_GIVEREF(__pyx_tuple__83);
61303
61304 /* "rados.pyx":365
61305 * class InterruptedOrTimeoutError(OSError):
61306 * """ `InterruptedOrTimeoutError` class, derived from `OSError` """
61307 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61308 * super(InterruptedOrTimeoutError, self).__init__(
61309 * "RADOS interrupted or timeout (%s)" % message, errno)
61310 */
61311 __pyx_tuple__84 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__84)__builtin_expect(!!(!__pyx_tuple__84), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__61311; goto __pyx_L1_error;}
61312 __Pyx_GOTREF(__pyx_tuple__84);
61313 __Pyx_GIVEREF(__pyx_tuple__84);
61314 __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 365, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 365
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__85)__builtin_expect(!!(!__pyx_codeobj__85), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__61314; goto __pyx_L1_error;}
61315 __pyx_tuple__86 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__86)__builtin_expect(!!(!__pyx_tuple__86), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__61315; goto __pyx_L1_error;}
61316 __Pyx_GOTREF(__pyx_tuple__86);
61317 __Pyx_GIVEREF(__pyx_tuple__86);
61318
61319 /* "rados.pyx":372
61320 * class PermissionError(OSError):
61321 * """ `PermissionError` class, derived from `OSError` """
61322 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61323 * super(PermissionError, self).__init__(
61324 * "RADOS permission error (%s)" % message, errno)
61325 */
61326 __pyx_tuple__87 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__87)__builtin_expect(!!(!__pyx_tuple__87), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__61326; goto __pyx_L1_error;}
61327 __Pyx_GOTREF(__pyx_tuple__87);
61328 __Pyx_GIVEREF(__pyx_tuple__87);
61329 __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 372, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 372
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__88)__builtin_expect(!!(!__pyx_codeobj__88), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__61329; goto __pyx_L1_error;}
61330 __pyx_tuple__89 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__89)__builtin_expect(!!(!__pyx_tuple__89), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__61330; goto __pyx_L1_error;}
61331 __Pyx_GOTREF(__pyx_tuple__89);
61332 __Pyx_GIVEREF(__pyx_tuple__89);
61333
61334 /* "rados.pyx":379
61335 * class PermissionDeniedError(OSError):
61336 * """ deal with EACCES related. """
61337 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61338 * super(PermissionDeniedError, self).__init__(
61339 * "RADOS permission denied (%s)" % message, errno)
61340 */
61341 __pyx_tuple__90 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__90)__builtin_expect(!!(!__pyx_tuple__90), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__61341; goto __pyx_L1_error;}
61342 __Pyx_GOTREF(__pyx_tuple__90);
61343 __Pyx_GIVEREF(__pyx_tuple__90);
61344 __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 379, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 379
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__91)__builtin_expect(!!(!__pyx_codeobj__91), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__61344; goto __pyx_L1_error;}
61345 __pyx_tuple__92 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__92)__builtin_expect(!!(!__pyx_tuple__92), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__61345; goto __pyx_L1_error;}
61346 __Pyx_GOTREF(__pyx_tuple__92);
61347 __Pyx_GIVEREF(__pyx_tuple__92);
61348
61349 /* "rados.pyx":386
61350 * class ObjectNotFound(OSError):
61351 * """ `ObjectNotFound` class, derived from `OSError` """
61352 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61353 * super(ObjectNotFound, self).__init__(
61354 * "RADOS object not found (%s)" % message, errno)
61355 */
61356 __pyx_tuple__93 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__93)__builtin_expect(!!(!__pyx_tuple__93), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__61356; goto __pyx_L1_error;}
61357 __Pyx_GOTREF(__pyx_tuple__93);
61358 __Pyx_GIVEREF(__pyx_tuple__93);
61359 __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 386, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 386
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__94)__builtin_expect(!!(!__pyx_codeobj__94), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__61359; goto __pyx_L1_error;}
61360 __pyx_tuple__95 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__95)__builtin_expect(!!(!__pyx_tuple__95), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__61360; goto __pyx_L1_error;}
61361 __Pyx_GOTREF(__pyx_tuple__95);
61362 __Pyx_GIVEREF(__pyx_tuple__95);
61363
61364 /* "rados.pyx":393
61365 * class NoData(OSError):
61366 * """ `NoData` class, derived from `OSError` """
61367 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61368 * super(NoData, self).__init__(
61369 * "RADOS no data (%s)" % message, errno)
61370 */
61371 __pyx_tuple__96 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__96)__builtin_expect(!!(!__pyx_tuple__96), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__61371; goto __pyx_L1_error;}
61372 __Pyx_GOTREF(__pyx_tuple__96);
61373 __Pyx_GIVEREF(__pyx_tuple__96);
61374 __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 393, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 393
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__97)__builtin_expect(!!(!__pyx_codeobj__97), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__61374; goto __pyx_L1_error;}
61375 __pyx_tuple__98 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__98)__builtin_expect(!!(!__pyx_tuple__98), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__61375; goto __pyx_L1_error;}
61376 __Pyx_GOTREF(__pyx_tuple__98);
61377 __Pyx_GIVEREF(__pyx_tuple__98);
61378
61379 /* "rados.pyx":400
61380 * class ObjectExists(OSError):
61381 * """ `ObjectExists` class, derived from `OSError` """
61382 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61383 * super(ObjectExists, self).__init__(
61384 * "RADOS object exists (%s)" % message, errno)
61385 */
61386 __pyx_tuple__99 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__99)__builtin_expect(!!(!__pyx_tuple__99), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__61386; goto __pyx_L1_error;}
61387 __Pyx_GOTREF(__pyx_tuple__99);
61388 __Pyx_GIVEREF(__pyx_tuple__99);
61389 __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 400, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 400
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__100)__builtin_expect(!!(!__pyx_codeobj__100), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__61389; goto __pyx_L1_error;}
61390 __pyx_tuple__101 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__101)__builtin_expect(!!(!__pyx_tuple__101), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__61390; goto __pyx_L1_error;}
61391 __Pyx_GOTREF(__pyx_tuple__101);
61392 __Pyx_GIVEREF(__pyx_tuple__101);
61393
61394 /* "rados.pyx":407
61395 * class ObjectBusy(OSError):
61396 * """ `ObjectBusy` class, derived from `IOError` """
61397 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61398 * super(ObjectBusy, self).__init__(
61399 * "RADOS object busy (%s)" % message, errno)
61400 */
61401 __pyx_tuple__102 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__102)__builtin_expect(!!(!__pyx_tuple__102), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__61401; goto __pyx_L1_error;}
61402 __Pyx_GOTREF(__pyx_tuple__102);
61403 __Pyx_GIVEREF(__pyx_tuple__102);
61404 __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 407, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__102, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 407
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__103)__builtin_expect(!!(!__pyx_codeobj__103), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__61404; goto __pyx_L1_error;}
61405 __pyx_tuple__104 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__104)__builtin_expect(!!(!__pyx_tuple__104), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__61405; goto __pyx_L1_error;}
61406 __Pyx_GOTREF(__pyx_tuple__104);
61407 __Pyx_GIVEREF(__pyx_tuple__104);
61408
61409 /* "rados.pyx":414
61410 * class IOError(OSError):
61411 * """ `ObjectBusy` class, derived from `OSError` """
61412 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61413 * super(IOError, self).__init__(
61414 * "RADOS I/O error (%s)" % message, errno)
61415 */
61416 __pyx_tuple__105 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__105)__builtin_expect(!!(!__pyx_tuple__105), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__61416; goto __pyx_L1_error;}
61417 __Pyx_GOTREF(__pyx_tuple__105);
61418 __Pyx_GIVEREF(__pyx_tuple__105);
61419 __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 414, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 414
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__106)__builtin_expect(!!(!__pyx_codeobj__106), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__61419; goto __pyx_L1_error;}
61420 __pyx_tuple__107 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__107)__builtin_expect(!!(!__pyx_tuple__107), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__61420; goto __pyx_L1_error;}
61421 __Pyx_GOTREF(__pyx_tuple__107);
61422 __Pyx_GIVEREF(__pyx_tuple__107);
61423
61424 /* "rados.pyx":421
61425 * class NoSpace(OSError):
61426 * """ `NoSpace` class, derived from `OSError` """
61427 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61428 * super(NoSpace, self).__init__(
61429 * "RADOS no space (%s)" % message, errno)
61430 */
61431 __pyx_tuple__108 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__108)__builtin_expect(!!(!__pyx_tuple__108), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__61431; goto __pyx_L1_error;}
61432 __Pyx_GOTREF(__pyx_tuple__108);
61433 __Pyx_GIVEREF(__pyx_tuple__108);
61434 __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 421, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 421
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__109)__builtin_expect(!!(!__pyx_codeobj__109), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__61434; goto __pyx_L1_error;}
61435 __pyx_tuple__110 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__110)__builtin_expect(!!(!__pyx_tuple__110), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__61435; goto __pyx_L1_error;}
61436 __Pyx_GOTREF(__pyx_tuple__110);
61437 __Pyx_GIVEREF(__pyx_tuple__110);
61438
61439 /* "rados.pyx":428
61440 * class RadosStateError(Error):
61441 * """ `RadosStateError` class, derived from `Error` """
61442 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61443 * super(RadosStateError, self).__init__(
61444 * "RADOS rados state (%s)" % message, errno)
61445 */
61446 __pyx_tuple__111 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__111)__builtin_expect(!!(!__pyx_tuple__111), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__61446; goto __pyx_L1_error;}
61447 __Pyx_GOTREF(__pyx_tuple__111);
61448 __Pyx_GIVEREF(__pyx_tuple__111);
61449 __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 428, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 428
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__112)__builtin_expect(!!(!__pyx_codeobj__112), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__61449; goto __pyx_L1_error;}
61450 __pyx_tuple__113 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__113)__builtin_expect(!!(!__pyx_tuple__113), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__61450; goto __pyx_L1_error;}
61451 __Pyx_GOTREF(__pyx_tuple__113);
61452 __Pyx_GIVEREF(__pyx_tuple__113);
61453
61454 /* "rados.pyx":435
61455 * class IoctxStateError(Error):
61456 * """ `IoctxStateError` class, derived from `Error` """
61457 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61458 * super(IoctxStateError, self).__init__(
61459 * "RADOS Ioctx state error (%s)" % message, errno)
61460 */
61461 __pyx_tuple__114 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__114)__builtin_expect(!!(!__pyx_tuple__114), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__61461; goto __pyx_L1_error;}
61462 __Pyx_GOTREF(__pyx_tuple__114);
61463 __Pyx_GIVEREF(__pyx_tuple__114);
61464 __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 435, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__114, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 435
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__115)__builtin_expect(!!(!__pyx_codeobj__115), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__61464; goto __pyx_L1_error;}
61465 __pyx_tuple__116 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__116)__builtin_expect(!!(!__pyx_tuple__116), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__61465; goto __pyx_L1_error;}
61466 __Pyx_GOTREF(__pyx_tuple__116);
61467 __Pyx_GIVEREF(__pyx_tuple__116);
61468
61469 /* "rados.pyx":442
61470 * class ObjectStateError(Error):
61471 * """ `ObjectStateError` class, derived from `Error` """
61472 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61473 * super(ObjectStateError, self).__init__(
61474 * "RADOS object state error (%s)" % message, errno)
61475 */
61476 __pyx_tuple__117 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__117)__builtin_expect(!!(!__pyx_tuple__117), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__61476; goto __pyx_L1_error;}
61477 __Pyx_GOTREF(__pyx_tuple__117);
61478 __Pyx_GIVEREF(__pyx_tuple__117);
61479 __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 442, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 442
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__118)__builtin_expect(!!(!__pyx_codeobj__118), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__61479; goto __pyx_L1_error;}
61480 __pyx_tuple__119 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__119)__builtin_expect(!!(!__pyx_tuple__119), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__61480; goto __pyx_L1_error;}
61481 __Pyx_GOTREF(__pyx_tuple__119);
61482 __Pyx_GIVEREF(__pyx_tuple__119);
61483
61484 /* "rados.pyx":449
61485 * class LogicError(Error):
61486 * """ `` class, derived from `Error` """
61487 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61488 * super(LogicError, self).__init__(
61489 * "RADOS logic error (%s)" % message, errno)
61490 */
61491 __pyx_tuple__120 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__120)__builtin_expect(!!(!__pyx_tuple__120), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__61491; goto __pyx_L1_error;}
61492 __Pyx_GOTREF(__pyx_tuple__120);
61493 __Pyx_GIVEREF(__pyx_tuple__120);
61494 __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__120, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 449, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__120, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 449
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__121)__builtin_expect(!!(!__pyx_codeobj__121), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__61494; goto __pyx_L1_error;}
61495 __pyx_tuple__122 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__122)__builtin_expect(!!(!__pyx_tuple__122), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__61495; goto __pyx_L1_error;}
61496 __Pyx_GOTREF(__pyx_tuple__122);
61497 __Pyx_GIVEREF(__pyx_tuple__122);
61498
61499 /* "rados.pyx":456
61500 * class TimedOut(OSError):
61501 * """ `TimedOut` class, derived from `OSError` """
61502 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61503 * super(TimedOut, self).__init__(
61504 * "RADOS timed out (%s)" % message, errno)
61505 */
61506 __pyx_tuple__123 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__123)__builtin_expect(!!(!__pyx_tuple__123), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__61506; goto __pyx_L1_error;}
61507 __Pyx_GOTREF(__pyx_tuple__123);
61508 __Pyx_GIVEREF(__pyx_tuple__123);
61509 __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 456, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 456
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__124)__builtin_expect(!!(!__pyx_codeobj__124), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__61509; goto __pyx_L1_error;}
61510 __pyx_tuple__125 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__125)__builtin_expect(!!(!__pyx_tuple__125), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__61510; goto __pyx_L1_error;}
61511 __Pyx_GOTREF(__pyx_tuple__125);
61512 __Pyx_GIVEREF(__pyx_tuple__125);
61513
61514 /* "rados.pyx":463
61515 * class InProgress(Error):
61516 * """ `InProgress` class, derived from `Error` """
61517 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61518 * super(InProgress, self).__init__(
61519 * "RADOS in progress error (%s)" % message, errno)
61520 */
61521 __pyx_tuple__126 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__126)__builtin_expect(!!(!__pyx_tuple__126), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__61521; goto __pyx_L1_error;}
61522 __Pyx_GOTREF(__pyx_tuple__126);
61523 __Pyx_GIVEREF(__pyx_tuple__126);
61524 __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__126, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 463, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__126, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 463
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__127)__builtin_expect(!!(!__pyx_codeobj__127), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__61524; goto __pyx_L1_error;}
61525 __pyx_tuple__128 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__128)__builtin_expect(!!(!__pyx_tuple__128), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__61525; goto __pyx_L1_error;}
61526 __Pyx_GOTREF(__pyx_tuple__128);
61527 __Pyx_GIVEREF(__pyx_tuple__128);
61528
61529 /* "rados.pyx":470
61530 * class IsConnected(Error):
61531 * """ `IsConnected` class, derived from `Error` """
61532 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
61533 * super(IsConnected, self).__init__(
61534 * "RADOS is connected error (%s)" % message, errno)
61535 */
61536 __pyx_tuple__129 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_message, __pyx_n_s_errno); if (unlikely(!__pyx_tuple__129)__builtin_expect(!!(!__pyx_tuple__129), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__61536; goto __pyx_L1_error;}
61537 __Pyx_GOTREF(__pyx_tuple__129);
61538 __Pyx_GIVEREF(__pyx_tuple__129);
61539 __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 470, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 470
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__130)__builtin_expect(!!(!__pyx_codeobj__130), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__61539; goto __pyx_L1_error;}
61540 __pyx_tuple__131 = PyTuple_Pack(1, ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__131)__builtin_expect(!!(!__pyx_tuple__131), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__61540; goto __pyx_L1_error;}
61541 __Pyx_GOTREF(__pyx_tuple__131);
61542 __Pyx_GIVEREF(__pyx_tuple__131);
61543
61544 /* "rados.pyx":528
61545 * # helper to specify an optional argument, where in addition to `cls`, `None`
61546 * # is also acceptable
61547 * def opt(cls): # <<<<<<<<<<<<<<
61548 * return (cls, None)
61549 *
61550 */
61551 __pyx_tuple__132 = PyTuple_Pack(1, __pyx_n_s_cls); if (unlikely(!__pyx_tuple__132)__builtin_expect(!!(!__pyx_tuple__132), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__61551; goto __pyx_L1_error;}
61552 __Pyx_GOTREF(__pyx_tuple__132);
61553 __Pyx_GIVEREF(__pyx_tuple__132);
61554 __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__132, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_opt, 528, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__132, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_opt, 528
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__133)__builtin_expect(!!(!__pyx_codeobj__133), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__61554; goto __pyx_L1_error;}
61555
61556 /* "rados.pyx":534
61557 * # validate argument types of an instance method
61558 * # kwargs is an un-ordered dict, so use args instead
61559 * def requires(*types): # <<<<<<<<<<<<<<
61560 * def is_type_of(v, t):
61561 * if t is None:
61562 */
61563 __pyx_tuple__134 = PyTuple_Pack(7, __pyx_n_s_types, __pyx_n_s_is_type_of, __pyx_n_s_is_type_of, __pyx_n_s_check_type, __pyx_n_s_check_type, __pyx_n_s_wrapper, __pyx_n_s_wrapper); if (unlikely(!__pyx_tuple__134)__builtin_expect(!!(!__pyx_tuple__134), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__61563; goto __pyx_L1_error;}
61564 __Pyx_GOTREF(__pyx_tuple__134);
61565 __Pyx_GIVEREF(__pyx_tuple__134);
61566 __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(0, 0, 7, 0, CO_VARARGS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__134, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_requires, 534, __pyx_empty_bytes)PyCode_New(0 +0, 7, 0, 0x0004, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__134, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_requires
, 534, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__135)__builtin_expect(!!(!__pyx_codeobj__135), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__61566; goto __pyx_L1_error;}
61567
61568 /* "rados.pyx":570
61569 *
61570 *
61571 * def cstr(val, name, encoding="utf-8", opt=False): # <<<<<<<<<<<<<<
61572 * """
61573 * Create a byte string from a Python string
61574 */
61575 __pyx_tuple__136 = PyTuple_Pack(4, __pyx_n_s_val, __pyx_n_s_name_2, __pyx_n_s_encoding, __pyx_n_s_opt); if (unlikely(!__pyx_tuple__136)__builtin_expect(!!(!__pyx_tuple__136), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__61575; goto __pyx_L1_error;}
61576 __Pyx_GOTREF(__pyx_tuple__136);
61577 __Pyx_GIVEREF(__pyx_tuple__136);
61578 __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_cstr, 570, __pyx_empty_bytes)PyCode_New(4 +0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_cstr, 570
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__137)__builtin_expect(!!(!__pyx_codeobj__137), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__61578; goto __pyx_L1_error;}
61579
61580 /* "rados.pyx":591
61581 *
61582 *
61583 * def cstr_list(list_str, name, encoding="utf-8"): # <<<<<<<<<<<<<<
61584 * return [cstr(s, name) for s in list_str]
61585 *
61586 */
61587 __pyx_tuple__138 = PyTuple_Pack(4, __pyx_n_s_list_str, __pyx_n_s_name_2, __pyx_n_s_encoding, __pyx_n_s_s); if (unlikely(!__pyx_tuple__138)__builtin_expect(!!(!__pyx_tuple__138), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__61587; goto __pyx_L1_error;}
61588 __Pyx_GOTREF(__pyx_tuple__138);
61589 __Pyx_GIVEREF(__pyx_tuple__138);
61590 __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_cstr_list, 591, __pyx_empty_bytes)PyCode_New(3 +0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_cstr_list
, 591, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__139)__builtin_expect(!!(!__pyx_codeobj__139), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__61590; goto __pyx_L1_error;}
61591
61592 /* "rados.pyx":595
61593 *
61594 *
61595 * def decode_cstr(val, encoding="utf-8"): # <<<<<<<<<<<<<<
61596 * """
61597 * Decode a byte string into a Python string.
61598 */
61599 __pyx_tuple__140 = PyTuple_Pack(2, __pyx_n_s_val, __pyx_n_s_encoding); if (unlikely(!__pyx_tuple__140)__builtin_expect(!!(!__pyx_tuple__140), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__61599; goto __pyx_L1_error;}
61600 __Pyx_GOTREF(__pyx_tuple__140);
61601 __Pyx_GIVEREF(__pyx_tuple__140);
61602 __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_decode_cstr, 595, __pyx_empty_bytes)PyCode_New(2 +0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_decode_cstr
, 595, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__141)__builtin_expect(!!(!__pyx_codeobj__141), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__61602; goto __pyx_L1_error;}
61603
61604 /* "rados.pyx":608
61605 *
61606 *
61607 * def flatten_dict(d, name): # <<<<<<<<<<<<<<
61608 * items = chain.from_iterable(d.items())
61609 * return cstr(''.join(i + '\0' for i in items), name)
61610 */
61611 __pyx_tuple__142 = PyTuple_Pack(5, __pyx_n_s_d, __pyx_n_s_name_2, __pyx_n_s_items, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__142)__builtin_expect(!!(!__pyx_tuple__142), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__61611; goto __pyx_L1_error;}
61612 __Pyx_GOTREF(__pyx_tuple__142);
61613 __Pyx_GIVEREF(__pyx_tuple__142);
61614 __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__142, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_flatten_dict, 608, __pyx_empty_bytes)PyCode_New(2 +0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__142, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_flatten_dict
, 608, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__143)__builtin_expect(!!(!__pyx_codeobj__143), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__61614; goto __pyx_L1_error;}
61615
61616 /* "rados.pyx":664
61617 * class Version(object):
61618 * """ Version information """
61619 * def __init__(self, major, minor, extra): # <<<<<<<<<<<<<<
61620 * self.major = major
61621 * self.minor = minor
61622 */
61623 __pyx_tuple__144 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_major, __pyx_n_s_minor, __pyx_n_s_extra); if (unlikely(!__pyx_tuple__144)__builtin_expect(!!(!__pyx_tuple__144), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__61623; goto __pyx_L1_error;}
61624 __Pyx_GOTREF(__pyx_tuple__144);
61625 __Pyx_GIVEREF(__pyx_tuple__144);
61626 __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__144, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 664, __pyx_empty_bytes)PyCode_New(4 +0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__144, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 664
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__145)__builtin_expect(!!(!__pyx_codeobj__145), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__61626; goto __pyx_L1_error;}
61627
61628 /* "rados.pyx":669
61629 * self.extra = extra
61630 *
61631 * def __str__(self): # <<<<<<<<<<<<<<
61632 * return "%d.%d.%d" % (self.major, self.minor, self.extra)
61633 *
61634 */
61635 __pyx_tuple__146 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__146)__builtin_expect(!!(!__pyx_tuple__146), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__61635; goto __pyx_L1_error;}
61636 __Pyx_GOTREF(__pyx_tuple__146);
61637 __Pyx_GIVEREF(__pyx_tuple__146);
61638 __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__146, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_str, 669, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__146, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_str, 669
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__147)__builtin_expect(!!(!__pyx_codeobj__147), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__61638; goto __pyx_L1_error;}
61639
61640 /* "rados.pyx":1973
61641 *
61642 * class OpCtx(object):
61643 * def __enter__(self): # <<<<<<<<<<<<<<
61644 * return self.create()
61645 *
61646 */
61647 __pyx_tuple__148 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__148)__builtin_expect(!!(!__pyx_tuple__148), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__61647; goto __pyx_L1_error;}
61648 __Pyx_GOTREF(__pyx_tuple__148);
61649 __Pyx_GIVEREF(__pyx_tuple__148);
61650 __pyx_codeobj__149 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__148, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_enter, 1973, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__148, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_enter,
1973, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__149)__builtin_expect(!!(!__pyx_codeobj__149), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__61650; goto __pyx_L1_error;}
61651
61652 /* "rados.pyx":1976
61653 * return self.create()
61654 *
61655 * def __exit__(self, type, msg, traceback): # <<<<<<<<<<<<<<
61656 * self.release()
61657 *
61658 */
61659 __pyx_tuple__150 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_type_2, __pyx_n_s_msg, __pyx_n_s_traceback); if (unlikely(!__pyx_tuple__150)__builtin_expect(!!(!__pyx_tuple__150), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__61659; goto __pyx_L1_error;}
61660 __Pyx_GOTREF(__pyx_tuple__150);
61661 __Pyx_GIVEREF(__pyx_tuple__150);
61662 __pyx_codeobj__151 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_exit, 1976, __pyx_empty_bytes)PyCode_New(4 +0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__150, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_exit, 1976
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__151)__builtin_expect(!!(!__pyx_codeobj__151), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__61662; goto __pyx_L1_error;}
61663
61664 /* "rados.pyx":4015
61665 *
61666 *
61667 * def set_object_locator(func): # <<<<<<<<<<<<<<
61668 * def retfunc(self, *args, **kwargs):
61669 * if self.locator_key is not None:
61670 */
61671 __pyx_tuple__152 = PyTuple_Pack(3, __pyx_n_s_func, __pyx_n_s_retfunc, __pyx_n_s_retfunc); if (unlikely(!__pyx_tuple__152)__builtin_expect(!!(!__pyx_tuple__152), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4015; __pyx_clineno = __LINE__61671; goto __pyx_L1_error;}
61672 __Pyx_GOTREF(__pyx_tuple__152);
61673 __Pyx_GIVEREF(__pyx_tuple__152);
61674 __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__152, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_set_object_locator, 4015, __pyx_empty_bytes)PyCode_New(1 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__152, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_set_object_locator
, 4015, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__153)__builtin_expect(!!(!__pyx_codeobj__153), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4015; __pyx_clineno = __LINE__61674; goto __pyx_L1_error;}
61675
61676 /* "rados.pyx":4028
61677 *
61678 *
61679 * def set_object_namespace(func): # <<<<<<<<<<<<<<
61680 * def retfunc(self, *args, **kwargs):
61681 * if self.nspace is None:
61682 */
61683 __pyx_tuple__154 = PyTuple_Pack(3, __pyx_n_s_func, __pyx_n_s_retfunc, __pyx_n_s_retfunc); if (unlikely(!__pyx_tuple__154)__builtin_expect(!!(!__pyx_tuple__154), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4028; __pyx_clineno = __LINE__61683; goto __pyx_L1_error;}
61684 __Pyx_GOTREF(__pyx_tuple__154);
61685 __Pyx_GIVEREF(__pyx_tuple__154);
61686 __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_set_object_namespace, 4028, __pyx_empty_bytes)PyCode_New(1 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_set_object_namespace
, 4028, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__155)__builtin_expect(!!(!__pyx_codeobj__155), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4028; __pyx_clineno = __LINE__61686; goto __pyx_L1_error;}
61687
61688 /* "rados.pyx":4042
61689 * class Object(object):
61690 * """Rados object wrapper, makes the object look like a file"""
61691 * def __init__(self, ioctx, key, locator_key=None, nspace=None): # <<<<<<<<<<<<<<
61692 * self.key = key
61693 * self.ioctx = ioctx
61694 */
61695 __pyx_tuple__156 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_ioctx, __pyx_n_s_key, __pyx_n_s_locator_key, __pyx_n_s_nspace); if (unlikely(!__pyx_tuple__156)__builtin_expect(!!(!__pyx_tuple__156), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__61695; goto __pyx_L1_error;}
61696 __Pyx_GOTREF(__pyx_tuple__156);
61697 __Pyx_GIVEREF(__pyx_tuple__156);
61698 __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__156, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 4042, __pyx_empty_bytes)PyCode_New(5 +0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__156, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 4042
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__157)__builtin_expect(!!(!__pyx_codeobj__157), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__61698; goto __pyx_L1_error;}
61699 __pyx_tuple__158 = PyTuple_Pack(2, ((PyObject *)Py_None(&_Py_NoneStruct)), ((PyObject *)Py_None(&_Py_NoneStruct))); if (unlikely(!__pyx_tuple__158)__builtin_expect(!!(!__pyx_tuple__158), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__61699; goto __pyx_L1_error;}
61700 __Pyx_GOTREF(__pyx_tuple__158);
61701 __Pyx_GIVEREF(__pyx_tuple__158);
61702
61703 /* "rados.pyx":4050
61704 * self.nspace = "" if nspace is None else nspace
61705 *
61706 * def __str__(self): # <<<<<<<<<<<<<<
61707 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \
61708 * (str(self.ioctx), self.key, "--default--"
61709 */
61710 __pyx_tuple__159 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__159)__builtin_expect(!!(!__pyx_tuple__159), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4050; __pyx_clineno = __LINE__61710; goto __pyx_L1_error;}
61711 __Pyx_GOTREF(__pyx_tuple__159);
61712 __Pyx_GIVEREF(__pyx_tuple__159);
61713 __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_str, 4050, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_str, 4050
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__160)__builtin_expect(!!(!__pyx_codeobj__160), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4050; __pyx_clineno = __LINE__61713; goto __pyx_L1_error;}
61714
61715 /* "rados.pyx":4055
61716 * if self.nspace is "" else self.nspace, self.locator_key)
61717 *
61718 * def require_object_exists(self): # <<<<<<<<<<<<<<
61719 * if self.state != "exists":
61720 * raise ObjectStateError("The object is %s" % self.state)
61721 */
61722 __pyx_tuple__161 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__161)__builtin_expect(!!(!__pyx_tuple__161), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4055; __pyx_clineno = __LINE__61722; goto __pyx_L1_error;}
61723 __Pyx_GOTREF(__pyx_tuple__161);
61724 __Pyx_GIVEREF(__pyx_tuple__161);
61725 __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_require_object_exists, 4055, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_require_object_exists
, 4055, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__162)__builtin_expect(!!(!__pyx_codeobj__162), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4055; __pyx_clineno = __LINE__61725; goto __pyx_L1_error;}
61726
61727 /* "rados.pyx":4061
61728 * @set_object_locator
61729 * @set_object_namespace
61730 * def read(self, length=1024 * 1024): # <<<<<<<<<<<<<<
61731 * self.require_object_exists()
61732 * ret = self.ioctx.read(self.key, length, self.offset)
61733 */
61734 __pyx_tuple__163 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_length, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__163)__builtin_expect(!!(!__pyx_tuple__163), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4061; __pyx_clineno = __LINE__61734; goto __pyx_L1_error;}
61735 __Pyx_GOTREF(__pyx_tuple__163);
61736 __Pyx_GIVEREF(__pyx_tuple__163);
61737 __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_read, 4061, __pyx_empty_bytes)PyCode_New(2 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_read, 4061
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__164)__builtin_expect(!!(!__pyx_codeobj__164), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4061; __pyx_clineno = __LINE__61737; goto __pyx_L1_error;}
61738 __pyx_tuple__165 = PyTuple_Pack(1, ((PyObject *)__pyx_int_1048576)); if (unlikely(!__pyx_tuple__165)__builtin_expect(!!(!__pyx_tuple__165), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4061; __pyx_clineno = __LINE__61738; goto __pyx_L1_error;}
61739 __Pyx_GOTREF(__pyx_tuple__165);
61740 __Pyx_GIVEREF(__pyx_tuple__165);
61741
61742 /* "rados.pyx":4069
61743 * @set_object_locator
61744 * @set_object_namespace
61745 * def write(self, string_to_write): # <<<<<<<<<<<<<<
61746 * self.require_object_exists()
61747 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
61748 */
61749 __pyx_tuple__166 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_string_to_write, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__166)__builtin_expect(!!(!__pyx_tuple__166), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4069; __pyx_clineno = __LINE__61749; goto __pyx_L1_error;}
61750 __Pyx_GOTREF(__pyx_tuple__166);
61751 __Pyx_GIVEREF(__pyx_tuple__166);
61752 __pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_write, 4069, __pyx_empty_bytes)PyCode_New(2 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_write,
4069, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__167)__builtin_expect(!!(!__pyx_codeobj__167), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4069; __pyx_clineno = __LINE__61752; goto __pyx_L1_error;}
61753
61754 /* "rados.pyx":4078
61755 * @set_object_locator
61756 * @set_object_namespace
61757 * def remove(self): # <<<<<<<<<<<<<<
61758 * self.require_object_exists()
61759 * self.ioctx.remove_object(self.key)
61760 */
61761 __pyx_tuple__168 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__168)__builtin_expect(!!(!__pyx_tuple__168), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4078; __pyx_clineno = __LINE__61761; goto __pyx_L1_error;}
61762 __Pyx_GOTREF(__pyx_tuple__168);
61763 __Pyx_GIVEREF(__pyx_tuple__168);
61764 __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__168, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_remove, 4078, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__168, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_remove
, 4078, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__169)__builtin_expect(!!(!__pyx_codeobj__169), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4078; __pyx_clineno = __LINE__61764; goto __pyx_L1_error;}
61765
61766 /* "rados.pyx":4085
61767 * @set_object_locator
61768 * @set_object_namespace
61769 * def stat(self): # <<<<<<<<<<<<<<
61770 * self.require_object_exists()
61771 * return self.ioctx.stat(self.key)
61772 */
61773 __pyx_tuple__170 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__170)__builtin_expect(!!(!__pyx_tuple__170), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4085; __pyx_clineno = __LINE__61773; goto __pyx_L1_error;}
61774 __Pyx_GOTREF(__pyx_tuple__170);
61775 __Pyx_GIVEREF(__pyx_tuple__170);
61776 __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_stat, 4085, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_stat, 4085
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__171)__builtin_expect(!!(!__pyx_codeobj__171), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4085; __pyx_clineno = __LINE__61776; goto __pyx_L1_error;}
61777
61778 /* "rados.pyx":4089
61779 * return self.ioctx.stat(self.key)
61780 *
61781 * def seek(self, position): # <<<<<<<<<<<<<<
61782 * self.require_object_exists()
61783 * self.offset = position
61784 */
61785 __pyx_tuple__172 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_position); if (unlikely(!__pyx_tuple__172)__builtin_expect(!!(!__pyx_tuple__172), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4089; __pyx_clineno = __LINE__61785; goto __pyx_L1_error;}
61786 __Pyx_GOTREF(__pyx_tuple__172);
61787 __Pyx_GIVEREF(__pyx_tuple__172);
61788 __pyx_codeobj__173 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__172, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_seek, 4089, __pyx_empty_bytes)PyCode_New(2 +0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__172, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_seek, 4089
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__173)__builtin_expect(!!(!__pyx_codeobj__173), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4089; __pyx_clineno = __LINE__61788; goto __pyx_L1_error;}
61789
61790 /* "rados.pyx":4095
61791 * @set_object_locator
61792 * @set_object_namespace
61793 * def get_xattr(self, xattr_name): # <<<<<<<<<<<<<<
61794 * self.require_object_exists()
61795 * return self.ioctx.get_xattr(self.key, xattr_name)
61796 */
61797 __pyx_tuple__174 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_xattr_name); if (unlikely(!__pyx_tuple__174)__builtin_expect(!!(!__pyx_tuple__174), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4095; __pyx_clineno = __LINE__61797; goto __pyx_L1_error;}
61798 __Pyx_GOTREF(__pyx_tuple__174);
61799 __Pyx_GIVEREF(__pyx_tuple__174);
61800 __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_get_xattr, 4095, __pyx_empty_bytes)PyCode_New(2 +0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_get_xattr
, 4095, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__175)__builtin_expect(!!(!__pyx_codeobj__175), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4095; __pyx_clineno = __LINE__61800; goto __pyx_L1_error;}
61801
61802 /* "rados.pyx":4101
61803 * @set_object_locator
61804 * @set_object_namespace
61805 * def get_xattrs(self): # <<<<<<<<<<<<<<
61806 * self.require_object_exists()
61807 * return self.ioctx.get_xattrs(self.key)
61808 */
61809 __pyx_tuple__176 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__176)__builtin_expect(!!(!__pyx_tuple__176), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4101; __pyx_clineno = __LINE__61809; goto __pyx_L1_error;}
61810 __Pyx_GOTREF(__pyx_tuple__176);
61811 __Pyx_GIVEREF(__pyx_tuple__176);
61812 __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_get_xattrs, 4101, __pyx_empty_bytes)PyCode_New(1 +0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_get_xattrs
, 4101, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__177)__builtin_expect(!!(!__pyx_codeobj__177), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4101; __pyx_clineno = __LINE__61812; goto __pyx_L1_error;}
61813
61814 /* "rados.pyx":4107
61815 * @set_object_locator
61816 * @set_object_namespace
61817 * def set_xattr(self, xattr_name, xattr_value): # <<<<<<<<<<<<<<
61818 * self.require_object_exists()
61819 * return self.ioctx.set_xattr(self.key, xattr_name, xattr_value)
61820 */
61821 __pyx_tuple__178 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_xattr_name, __pyx_n_s_xattr_value); if (unlikely(!__pyx_tuple__178)__builtin_expect(!!(!__pyx_tuple__178), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__61821; goto __pyx_L1_error;}
61822 __Pyx_GOTREF(__pyx_tuple__178);
61823 __Pyx_GIVEREF(__pyx_tuple__178);
61824 __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_set_xattr, 4107, __pyx_empty_bytes)PyCode_New(3 +0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_set_xattr
, 4107, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__179)__builtin_expect(!!(!__pyx_codeobj__179), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__61824; goto __pyx_L1_error;}
61825
61826 /* "rados.pyx":4113
61827 * @set_object_locator
61828 * @set_object_namespace
61829 * def rm_xattr(self, xattr_name): # <<<<<<<<<<<<<<
61830 * self.require_object_exists()
61831 * return self.ioctx.rm_xattr(self.key, xattr_name)
61832 */
61833 __pyx_tuple__180 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_xattr_name); if (unlikely(!__pyx_tuple__180)__builtin_expect(!!(!__pyx_tuple__180), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4113; __pyx_clineno = __LINE__61833; goto __pyx_L1_error;}
61834 __Pyx_GOTREF(__pyx_tuple__180);
61835 __Pyx_GIVEREF(__pyx_tuple__180);
61836 __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_rm_xattr, 4113, __pyx_empty_bytes)PyCode_New(2 +0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_rm_xattr
, 4113, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__181)__builtin_expect(!!(!__pyx_codeobj__181), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4113; __pyx_clineno = __LINE__61836; goto __pyx_L1_error;}
61837
61838 /* "rados.pyx":4146
61839 * callback's return value is ignored
61840 * """
61841 * def __init__(self, cluster, level, callback, arg): # <<<<<<<<<<<<<<
61842 * self.level = level
61843 * self.callback = callback
61844 */
61845 __pyx_tuple__182 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_cluster, __pyx_n_s_level, __pyx_n_s_callback, __pyx_n_s_arg); if (unlikely(!__pyx_tuple__182)__builtin_expect(!!(!__pyx_tuple__182), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__61845; goto __pyx_L1_error;}
61846 __Pyx_GOTREF(__pyx_tuple__182);
61847 __Pyx_GIVEREF(__pyx_tuple__182);
61848 __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 4146, __pyx_empty_bytes)PyCode_New(5 +0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple
, __pyx_kp_s_home_bhubbard_working_src_ceph, __pyx_n_s_init, 4146
, __pyx_empty_bytes)
; if (unlikely(!__pyx_codeobj__183)__builtin_expect(!!(!__pyx_codeobj__183), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__61848; goto __pyx_L1_error;}
61849 __Pyx_RefNannyFinishContext();
61850 return 0;
61851 __pyx_L1_error:;
61852 __Pyx_RefNannyFinishContext();
61853 return -1;
61854}
61855
61856static int __Pyx_InitGlobals(void) {
61857 if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61857; goto __pyx_L1_error;};
61858 __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)__builtin_expect(!!(!__pyx_int_0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61858; goto __pyx_L1_error;}
61859 __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)__builtin_expect(!!(!__pyx_int_3), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61859; goto __pyx_L1_error;}
61860 __pyx_int_5000 = PyInt_FromLong(5000); if (unlikely(!__pyx_int_5000)__builtin_expect(!!(!__pyx_int_5000), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61860; goto __pyx_L1_error;}
61861 __pyx_int_8192 = PyInt_FromLong(8192); if (unlikely(!__pyx_int_8192)__builtin_expect(!!(!__pyx_int_8192), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61861; goto __pyx_L1_error;}
61862 __pyx_int_1048576 = PyInt_FromLong(1048576L); if (unlikely(!__pyx_int_1048576)__builtin_expect(!!(!__pyx_int_1048576), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61862; goto __pyx_L1_error;}
61863 __pyx_int_4294967296 = PyInt_FromString((char *)"4294967296", 0, 0); if (unlikely(!__pyx_int_4294967296)__builtin_expect(!!(!__pyx_int_4294967296), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61863; goto __pyx_L1_error;}
61864 __pyx_int_18446744073709551615 = PyInt_FromString((char *)"18446744073709551615", 0, 0); if (unlikely(!__pyx_int_18446744073709551615)__builtin_expect(!!(!__pyx_int_18446744073709551615), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61864; goto __pyx_L1_error;}
61865 __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)__builtin_expect(!!(!__pyx_int_neg_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61865; goto __pyx_L1_error;}
61866 return 0;
61867 __pyx_L1_error:;
61868 return -1;
61869}
61870
61871#if PY_MAJOR_VERSION2 < 3
61872PyMODINIT_FUNCvoid initrados(void); /*proto*/
61873PyMODINIT_FUNCvoid initrados(void)
61874#else
61875PyMODINIT_FUNCvoid PyInit_rados(void); /*proto*/
61876PyMODINIT_FUNCvoid PyInit_rados(void)
61877#endif
61878{
61879 PyObject *__pyx_t_1 = NULL((void*)0);
61880 PyObject *__pyx_t_2 = NULL((void*)0);
61881 PyObject *__pyx_t_3 = NULL((void*)0);
61882 PyObject *__pyx_t_4 = NULL((void*)0);
61883 PyObject *__pyx_t_5 = NULL((void*)0);
61884 int __pyx_t_6;
61885 PyObject *__pyx_t_7 = NULL((void*)0);
61886 PyObject *__pyx_t_8 = NULL((void*)0);
61887 PyObject *__pyx_t_9 = NULL((void*)0);
61888 int __pyx_t_10;
61889 PyObject *__pyx_t_11 = NULL((void*)0);
61890 PyObject *__pyx_t_12 = NULL((void*)0);
61891 PyObject *__pyx_t_13 = NULL((void*)0);
61892 PyObject *__pyx_t_14 = NULL((void*)0);
61893 PyObject *__pyx_t_15 = NULL((void*)0);
61894 PyObject *__pyx_t_16 = NULL((void*)0);
61895 Py_ssize_t __pyx_t_17;
61896 PyObject *__pyx_t_18 = NULL((void*)0);
61897 PyObject *__pyx_t_19 = NULL((void*)0);
61898 PyObject *__pyx_t_20 = NULL((void*)0);
61899 int __pyx_lineno = 0;
61900 const char *__pyx_filename = NULL((void*)0);
61901 int __pyx_clineno = 0;
61902 __Pyx_RefNannyDeclarations
61903 #if CYTHON_REFNANNY0
61904 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
61905 if (!__Pyx_RefNanny) {
61906 PyErr_Clear();
61907 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
61908 if (!__Pyx_RefNanny)
61909 Py_FatalError("failed to import 'refnanny' module");
61910 }
61911 #endif
61912 __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_rados(void)", 0);
61913 if (__Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61913; goto __pyx_L1_error;}
61914 __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)__builtin_expect(!!(!__pyx_empty_tuple), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61914; goto __pyx_L1_error;}
61915 __pyx_empty_bytes = PyBytes_FromStringAndSizePyString_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)__builtin_expect(!!(!__pyx_empty_bytes), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61915; goto __pyx_L1_error;}
61916 #ifdef __Pyx_CyFunction_USED1
61917 if (__pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61917; goto __pyx_L1_error;}
61918 #endif
61919 #ifdef __Pyx_FusedFunction_USED
61920 if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61920; goto __pyx_L1_error;}
61921 #endif
61922 #ifdef __Pyx_Coroutine_USED
61923 if (__pyx_Coroutine_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61923; goto __pyx_L1_error;}
61924 #endif
61925 #ifdef __Pyx_Generator_USED
61926 if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61926; goto __pyx_L1_error;}
61927 #endif
61928 #ifdef __Pyx_StopAsyncIteration_USED
61929 if (__pyx_StopAsyncIteration_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61929; goto __pyx_L1_error;}
61930 #endif
61931 /*--- Library function declarations ---*/
61932 /*--- Threads initialization code ---*/
61933 #if defined(__PYX_FORCE_INIT_THREADS0) && __PYX_FORCE_INIT_THREADS0
61934 #ifdef WITH_THREAD1 /* Python build with threading support? */
61935 PyEval_InitThreads();
61936 #endif
61937 #endif
61938 /*--- Module creation code ---*/
61939 #if PY_MAJOR_VERSION2 < 3
61940 __pyx_m = Py_InitModule4Py_InitModule4_64("rados", __pyx_methods, __pyx_k_This_module_is_a_thin_wrapper_a, 0, PYTHON_API_VERSION1013); Py_XINCREF(__pyx_m)do { if ((__pyx_m) == ((void*)0)) ; else ( ((PyObject*)(__pyx_m
))->ob_refcnt++); } while (0)
;
61941 #else
61942 __pyx_m = PyModule_Create(&__pyx_moduledef);
61943 #endif
61944 if (unlikely(!__pyx_m)__builtin_expect(!!(!__pyx_m), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61944; goto __pyx_L1_error;}
61945 __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)__builtin_expect(!!(!__pyx_d), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61945; goto __pyx_L1_error;}
61946 Py_INCREF(__pyx_d)( ((PyObject*)(__pyx_d))->ob_refcnt++);
61947 __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME"__builtin__"); if (unlikely(!__pyx_b)__builtin_expect(!!(!__pyx_b), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61947; goto __pyx_L1_error;}
61948 #if CYTHON_COMPILING_IN_PYPY0
61949 Py_INCREF(__pyx_b)( ((PyObject*)(__pyx_b))->ob_refcnt++);
61950 #endif
61951 if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61951; goto __pyx_L1_error;};
61952 /*--- Initialize various global constants etc. ---*/
61953 if (__Pyx_InitGlobals() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61953; goto __pyx_L1_error;}
61954 #if PY_MAJOR_VERSION2 < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII0 || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT0)
61955 if (__Pyx_init_sys_getdefaultencoding_params() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61955; goto __pyx_L1_error;}
61956 #endif
61957 if (__pyx_module_is_main_rados) {
61958 if (PyObject_SetAttrString(__pyx_m, "__name__", __pyx_n_s_main) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61958; goto __pyx_L1_error;}
61959 }
61960 #if PY_MAJOR_VERSION2 >= 3
61961 {
61962 PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)__builtin_expect(!!(!modules), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61962; goto __pyx_L1_error;}
61963 if (!PyDict_GetItemString(modules, "rados")) {
61964 if (unlikely(PyDict_SetItemString(modules, "rados", __pyx_m) < 0)__builtin_expect(!!(PyDict_SetItemString(modules, "rados", __pyx_m
) < 0), 0)
) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61964; goto __pyx_L1_error;}
61965 }
61966 }
61967 #endif
61968 /*--- Builtin init code ---*/
61969 if (__Pyx_InitCachedBuiltins() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61969; goto __pyx_L1_error;}
61970 /*--- Constants init code ---*/
61971 if (__Pyx_InitCachedConstants() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__61971; goto __pyx_L1_error;}
61972 /*--- Global init code ---*/
61973 __pyx_v_5rados_errno_to_exception = Py_None(&_Py_NoneStruct); Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
61974 /*--- Variable export code ---*/
61975 /*--- Function export code ---*/
61976 /*--- Type init code ---*/
61977 if (PyType_Ready(&__pyx_type_5rados_Rados) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__61977; goto __pyx_L1_error;}
61978 __pyx_type_5rados_Rados.tp_print = 0;
61979 if (PyObject_SetAttrString(__pyx_m, "Rados", (PyObject *)&__pyx_type_5rados_Rados) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__61979; goto __pyx_L1_error;}
61980 __pyx_ptype_5rados_Rados = &__pyx_type_5rados_Rados;
61981 if (PyType_Ready(&__pyx_type_5rados_Ioctx) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2172; __pyx_clineno = __LINE__61981; goto __pyx_L1_error;}
61982 __pyx_type_5rados_Ioctx.tp_print = 0;
61983 if (PyObject_SetAttrString(__pyx_m, "Ioctx", (PyObject *)&__pyx_type_5rados_Ioctx) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2172; __pyx_clineno = __LINE__61983; goto __pyx_L1_error;}
61984 __pyx_ptype_5rados_Ioctx = &__pyx_type_5rados_Ioctx;
61985 if (PyType_Ready(&__pyx_type_5rados_OmapIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1607; __pyx_clineno = __LINE__61985; goto __pyx_L1_error;}
61986 __pyx_type_5rados_OmapIterator.tp_print = 0;
61987 #if CYTHON_COMPILING_IN_CPYTHON1
61988 {
61989 PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_5rados_OmapIterator, "__next__"); if (unlikely(!wrapper)__builtin_expect(!!(!wrapper), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1607; __pyx_clineno = __LINE__61989; goto __pyx_L1_error;}
61990 if (Py_TYPE(wrapper)(((PyObject*)(wrapper))->ob_type) == &PyWrapperDescr_Type) {
61991 __pyx_wrapperbase_5rados_12OmapIterator_4__next__ = *((PyWrapperDescrObject *)wrapper)->d_base;
61992 __pyx_wrapperbase_5rados_12OmapIterator_4__next__.doc = __pyx_doc_5rados_12OmapIterator_4__next__;
61993 ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_5rados_12OmapIterator_4__next__;
61994 }
61995 }
61996 #endif
61997 if (PyObject_SetAttrString(__pyx_m, "OmapIterator", (PyObject *)&__pyx_type_5rados_OmapIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1607; __pyx_clineno = __LINE__61997; goto __pyx_L1_error;}
61998 __pyx_ptype_5rados_OmapIterator = &__pyx_type_5rados_OmapIterator;
61999 if (PyType_Ready(&__pyx_type_5rados_ObjectIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__61999; goto __pyx_L1_error;}
62000 __pyx_type_5rados_ObjectIterator.tp_print = 0;
62001 #if CYTHON_COMPILING_IN_CPYTHON1
62002 {
62003 PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_5rados_ObjectIterator, "__next__"); if (unlikely(!wrapper)__builtin_expect(!!(!wrapper), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__62003; goto __pyx_L1_error;}
62004 if (Py_TYPE(wrapper)(((PyObject*)(wrapper))->ob_type) == &PyWrapperDescr_Type) {
62005 __pyx_wrapperbase_5rados_14ObjectIterator_4__next__ = *((PyWrapperDescrObject *)wrapper)->d_base;
62006 __pyx_wrapperbase_5rados_14ObjectIterator_4__next__.doc = __pyx_doc_5rados_14ObjectIterator_4__next__;
62007 ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_5rados_14ObjectIterator_4__next__;
62008 }
62009 }
62010 #endif
62011 if (PyObject_SetAttrString(__pyx_m, "ObjectIterator", (PyObject *)&__pyx_type_5rados_ObjectIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__62011; goto __pyx_L1_error;}
62012 __pyx_ptype_5rados_ObjectIterator = &__pyx_type_5rados_ObjectIterator;
62013 if (PyType_Ready(&__pyx_type_5rados_XattrIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1694; __pyx_clineno = __LINE__62013; goto __pyx_L1_error;}
62014 __pyx_type_5rados_XattrIterator.tp_print = 0;
62015 #if CYTHON_COMPILING_IN_CPYTHON1
62016 {
62017 PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_5rados_XattrIterator, "__next__"); if (unlikely(!wrapper)__builtin_expect(!!(!wrapper), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1694; __pyx_clineno = __LINE__62017; goto __pyx_L1_error;}
62018 if (Py_TYPE(wrapper)(((PyObject*)(wrapper))->ob_type) == &PyWrapperDescr_Type) {
62019 __pyx_wrapperbase_5rados_13XattrIterator_4__next__ = *((PyWrapperDescrObject *)wrapper)->d_base;
62020 __pyx_wrapperbase_5rados_13XattrIterator_4__next__.doc = __pyx_doc_5rados_13XattrIterator_4__next__;
62021 ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_5rados_13XattrIterator_4__next__;
62022 }
62023 }
62024 #endif
62025 if (PyObject_SetAttrString(__pyx_m, "XattrIterator", (PyObject *)&__pyx_type_5rados_XattrIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1694; __pyx_clineno = __LINE__62025; goto __pyx_L1_error;}
62026 __pyx_ptype_5rados_XattrIterator = &__pyx_type_5rados_XattrIterator;
62027 if (PyType_Ready(&__pyx_type_5rados_SnapIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__62027; goto __pyx_L1_error;}
62028 __pyx_type_5rados_SnapIterator.tp_print = 0;
62029 #if CYTHON_COMPILING_IN_CPYTHON1
62030 {
62031 PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_5rados_SnapIterator, "__next__"); if (unlikely(!wrapper)__builtin_expect(!!(!wrapper), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__62031; goto __pyx_L1_error;}
62032 if (Py_TYPE(wrapper)(((PyObject*)(wrapper))->ob_type) == &PyWrapperDescr_Type) {
62033 __pyx_wrapperbase_5rados_12SnapIterator_4__next__ = *((PyWrapperDescrObject *)wrapper)->d_base;
62034 __pyx_wrapperbase_5rados_12SnapIterator_4__next__.doc = __pyx_doc_5rados_12SnapIterator_4__next__;
62035 ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_5rados_12SnapIterator_4__next__;
62036 }
62037 }
62038 #endif
62039 if (PyObject_SetAttrString(__pyx_m, "SnapIterator", (PyObject *)&__pyx_type_5rados_SnapIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1744; __pyx_clineno = __LINE__62039; goto __pyx_L1_error;}
62040 __pyx_ptype_5rados_SnapIterator = &__pyx_type_5rados_SnapIterator;
62041 if (PyType_Ready(&__pyx_type_5rados_Snap) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__62041; goto __pyx_L1_error;}
62042 __pyx_type_5rados_Snap.tp_print = 0;
62043 if (PyObject_SetAttrString(__pyx_m, "Snap", (PyObject *)&__pyx_type_5rados_Snap) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__62043; goto __pyx_L1_error;}
62044 __pyx_ptype_5rados_Snap = &__pyx_type_5rados_Snap;
62045 if (PyType_Ready(&__pyx_type_5rados_Completion) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1845; __pyx_clineno = __LINE__62045; goto __pyx_L1_error;}
62046 __pyx_type_5rados_Completion.tp_print = 0;
62047 if (PyObject_SetAttrString(__pyx_m, "Completion", (PyObject *)&__pyx_type_5rados_Completion) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1845; __pyx_clineno = __LINE__62047; goto __pyx_L1_error;}
62048 __pyx_ptype_5rados_Completion = &__pyx_type_5rados_Completion;
62049 if (PyType_Ready(&__pyx_type_5rados_WriteOp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1980; __pyx_clineno = __LINE__62049; goto __pyx_L1_error;}
62050 __pyx_type_5rados_WriteOp.tp_print = 0;
62051 if (PyObject_SetAttrString(__pyx_m, "WriteOp", (PyObject *)&__pyx_type_5rados_WriteOp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1980; __pyx_clineno = __LINE__62051; goto __pyx_L1_error;}
62052 __pyx_ptype_5rados_WriteOp = &__pyx_type_5rados_WriteOp;
62053 if (PyType_Ready(&__pyx_type_5rados_ReadOp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2123; __pyx_clineno = __LINE__62053; goto __pyx_L1_error;}
62054 __pyx_type_5rados_ReadOp.tp_print = 0;
62055 if (PyObject_SetAttrString(__pyx_m, "ReadOp", (PyObject *)&__pyx_type_5rados_ReadOp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2123; __pyx_clineno = __LINE__62055; goto __pyx_L1_error;}
62056 __pyx_ptype_5rados_ReadOp = &__pyx_type_5rados_ReadOp;
62057 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct__requires) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__62057; goto __pyx_L1_error;}
62058 __pyx_type_5rados___pyx_scope_struct__requires.tp_print = 0;
62059 __pyx_ptype_5rados___pyx_scope_struct__requires = &__pyx_type_5rados___pyx_scope_struct__requires;
62060 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_1_check_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__62060; goto __pyx_L1_error;}
62061 __pyx_type_5rados___pyx_scope_struct_1_check_type.tp_print = 0;
62062 __pyx_ptype_5rados___pyx_scope_struct_1_check_type = &__pyx_type_5rados___pyx_scope_struct_1_check_type;
62063 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_2_genexpr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__62063; goto __pyx_L1_error;}
62064 __pyx_type_5rados___pyx_scope_struct_2_genexpr.tp_print = 0;
62065 __pyx_ptype_5rados___pyx_scope_struct_2_genexpr = &__pyx_type_5rados___pyx_scope_struct_2_genexpr;
62066 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_3_genexpr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__62066; goto __pyx_L1_error;}
62067 __pyx_type_5rados___pyx_scope_struct_3_genexpr.tp_print = 0;
62068 __pyx_ptype_5rados___pyx_scope_struct_3_genexpr = &__pyx_type_5rados___pyx_scope_struct_3_genexpr;
62069 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_4_wrapper) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__62069; goto __pyx_L1_error;}
62070 __pyx_type_5rados___pyx_scope_struct_4_wrapper.tp_print = 0;
62071 __pyx_ptype_5rados___pyx_scope_struct_4_wrapper = &__pyx_type_5rados___pyx_scope_struct_4_wrapper;
62072 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_5_validate_func) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__62072; goto __pyx_L1_error;}
62073 __pyx_type_5rados___pyx_scope_struct_5_validate_func.tp_print = 0;
62074 __pyx_ptype_5rados___pyx_scope_struct_5_validate_func = &__pyx_type_5rados___pyx_scope_struct_5_validate_func;
62075 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_6_genexpr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__62075; goto __pyx_L1_error;}
62076 __pyx_type_5rados___pyx_scope_struct_6_genexpr.tp_print = 0;
62077 __pyx_ptype_5rados___pyx_scope_struct_6_genexpr = &__pyx_type_5rados___pyx_scope_struct_6_genexpr;
62078 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_7_flatten_dict) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__62078; goto __pyx_L1_error;}
62079 __pyx_type_5rados___pyx_scope_struct_7_flatten_dict.tp_print = 0;
62080 __pyx_ptype_5rados___pyx_scope_struct_7_flatten_dict = &__pyx_type_5rados___pyx_scope_struct_7_flatten_dict;
62081 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_8_genexpr) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__62081; goto __pyx_L1_error;}
62082 __pyx_type_5rados___pyx_scope_struct_8_genexpr.tp_print = 0;
62083 __pyx_ptype_5rados___pyx_scope_struct_8_genexpr = &__pyx_type_5rados___pyx_scope_struct_8_genexpr;
62084 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_9_aio_stat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__62084; goto __pyx_L1_error;}
62085 __pyx_type_5rados___pyx_scope_struct_9_aio_stat.tp_print = 0;
62086 __pyx_ptype_5rados___pyx_scope_struct_9_aio_stat = &__pyx_type_5rados___pyx_scope_struct_9_aio_stat;
62087 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_10_aio_read) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__62087; goto __pyx_L1_error;}
62088 __pyx_type_5rados___pyx_scope_struct_10_aio_read.tp_print = 0;
62089 __pyx_ptype_5rados___pyx_scope_struct_10_aio_read = &__pyx_type_5rados___pyx_scope_struct_10_aio_read;
62090 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_11_aio_execute) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__62090; goto __pyx_L1_error;}
62091 __pyx_type_5rados___pyx_scope_struct_11_aio_execute.tp_print = 0;
62092 __pyx_ptype_5rados___pyx_scope_struct_11_aio_execute = &__pyx_type_5rados___pyx_scope_struct_11_aio_execute;
62093 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_12_set_object_locator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4015; __pyx_clineno = __LINE__62093; goto __pyx_L1_error;}
62094 __pyx_type_5rados___pyx_scope_struct_12_set_object_locator.tp_print = 0;
62095 __pyx_ptype_5rados___pyx_scope_struct_12_set_object_locator = &__pyx_type_5rados___pyx_scope_struct_12_set_object_locator;
62096 if (PyType_Ready(&__pyx_type_5rados___pyx_scope_struct_13_set_object_namespace) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4028; __pyx_clineno = __LINE__62096; goto __pyx_L1_error;}
62097 __pyx_type_5rados___pyx_scope_struct_13_set_object_namespace.tp_print = 0;
62098 __pyx_ptype_5rados___pyx_scope_struct_13_set_object_namespace = &__pyx_type_5rados___pyx_scope_struct_13_set_object_namespace;
62099 /*--- Type import code ---*/
62100 __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME"__builtin__", "type",
62101 #if CYTHON_COMPILING_IN_PYPY0
62102 sizeof(PyTypeObject),
62103 #else
62104 sizeof(PyHeapTypeObject),
62105 #endif
62106 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)__builtin_expect(!!(!__pyx_ptype_7cpython_4type_type), 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 9; __pyx_clineno = __LINE__62106; goto __pyx_L1_error;}
62107 __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME"__builtin__", "bool", sizeof(PyBoolObject), 0); if (unlikely(!__pyx_ptype_7cpython_4bool_bool)__builtin_expect(!!(!__pyx_ptype_7cpython_4bool_bool), 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 8; __pyx_clineno = __LINE__62107; goto __pyx_L1_error;}
62108 __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME"__builtin__", "complex", sizeof(PyComplexObject), 0); if (unlikely(!__pyx_ptype_7cpython_7complex_complex)__builtin_expect(!!(!__pyx_ptype_7cpython_7complex_complex), 0
)
) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 15; __pyx_clineno = __LINE__62108; goto __pyx_L1_error;}
62109 /*--- Variable import code ---*/
62110 /*--- Function import code ---*/
62111 /*--- Execution code ---*/
62112 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
62113 if (__Pyx_patch_abc() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__62113; goto __pyx_L1_error;}
62114 #endif
62115
62116 /* "rados.pyx":22
62117 * from libc.stdlib cimport malloc, realloc, free
62118 *
62119 * import sys # <<<<<<<<<<<<<<
62120 * import threading
62121 * import time
62122 */
62123 __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, -1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__62123; goto __pyx_L1_error;}
62124 __Pyx_GOTREF(__pyx_t_1);
62125 if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__62125; goto __pyx_L1_error;}
62126 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62127
62128 /* "rados.pyx":23
62129 *
62130 * import sys
62131 * import threading # <<<<<<<<<<<<<<
62132 * import time
62133 *
62134 */
62135 __pyx_t_1 = __Pyx_Import(__pyx_n_s_threading, 0, -1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__62135; goto __pyx_L1_error;}
62136 __Pyx_GOTREF(__pyx_t_1);
62137 if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__62137; goto __pyx_L1_error;}
62138 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62139
62140 /* "rados.pyx":24
62141 * import sys
62142 * import threading
62143 * import time # <<<<<<<<<<<<<<
62144 *
62145 * try:
62146 */
62147 __pyx_t_1 = __Pyx_Import(__pyx_n_s_time, 0, -1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__62147; goto __pyx_L1_error;}
62148 __Pyx_GOTREF(__pyx_t_1);
62149 if (PyDict_SetItem(__pyx_d, __pyx_n_s_time, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__62149; goto __pyx_L1_error;}
62150 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62151
62152 /* "rados.pyx":26
62153 * import time
62154 *
62155 * try: # <<<<<<<<<<<<<<
62156 * from collections.abc import Callable
62157 * except ImportError:
62158 */
62159 {
62160 __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
62161 __Pyx_XGOTREF(__pyx_t_2);
62162 __Pyx_XGOTREF(__pyx_t_3);
62163 __Pyx_XGOTREF(__pyx_t_4);
62164 /*try:*/ {
62165
62166 /* "rados.pyx":27
62167 *
62168 * try:
62169 * from collections.abc import Callable # <<<<<<<<<<<<<<
62170 * except ImportError:
62171 * from collections import Callable
62172 */
62173 __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__62173; goto __pyx_L2_error;}
62174 __Pyx_GOTREF(__pyx_t_1);
62175 __Pyx_INCREF(__pyx_n_s_Callable)( ((PyObject*)(__pyx_n_s_Callable))->ob_refcnt++);
62176 __Pyx_GIVEREF(__pyx_n_s_Callable);
62177 PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Callable)(((PyListObject *)(__pyx_t_1))->ob_item[0] = (__pyx_n_s_Callable
))
;
62178 __pyx_t_5 = __Pyx_Import(__pyx_n_s_collections_abc, __pyx_t_1, -1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__62178; goto __pyx_L2_error;}
62179 __Pyx_GOTREF(__pyx_t_5);
62180 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62181 __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_Callable); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__62181; goto __pyx_L2_error;}
62182 __Pyx_GOTREF(__pyx_t_1);
62183 if (PyDict_SetItem(__pyx_d, __pyx_n_s_Callable, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__62183; goto __pyx_L2_error;}
62184 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62185 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62186
62187 /* "rados.pyx":26
62188 * import time
62189 *
62190 * try: # <<<<<<<<<<<<<<
62191 * from collections.abc import Callable
62192 * except ImportError:
62193 */
62194 }
62195 __Pyx_XDECREF(__pyx_t_2)do { if ((__pyx_t_2) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_2))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_2)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_2)))); } while (0); } while (0)
; __pyx_t_2 = 0;
62196 __Pyx_XDECREF(__pyx_t_3)do { if ((__pyx_t_3) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_3))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_3)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_3)))); } while (0); } while (0)
; __pyx_t_3 = 0;
62197 __Pyx_XDECREF(__pyx_t_4)do { if ((__pyx_t_4) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_4))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_4)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_4)))); } while (0); } while (0)
; __pyx_t_4 = 0;
62198 goto __pyx_L9_try_end;
62199 __pyx_L2_error:;
62200 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
; __pyx_t_1 = 0;
62201 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
; __pyx_t_5 = 0;
62202
62203 /* "rados.pyx":28
62204 * try:
62205 * from collections.abc import Callable
62206 * except ImportError: # <<<<<<<<<<<<<<
62207 * from collections import Callable
62208 * from datetime import datetime
62209 */
62210 __pyx_t_6 = PyErr_ExceptionMatches(__pyx_builtin_ImportError);
62211 if (__pyx_t_6) {
62212 __Pyx_AddTraceback("rados", __pyx_clineno, __pyx_lineno, __pyx_filename);
62213 if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__62213; goto __pyx_L4_except_error;}
62214 __Pyx_GOTREF(__pyx_t_5);
62215 __Pyx_GOTREF(__pyx_t_1);
62216 __Pyx_GOTREF(__pyx_t_7);
62217
62218 /* "rados.pyx":29
62219 * from collections.abc import Callable
62220 * except ImportError:
62221 * from collections import Callable # <<<<<<<<<<<<<<
62222 * from datetime import datetime
62223 * from functools import partial, wraps
62224 */
62225 __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__62225; goto __pyx_L4_except_error;}
62226 __Pyx_GOTREF(__pyx_t_8);
62227 __Pyx_INCREF(__pyx_n_s_Callable)( ((PyObject*)(__pyx_n_s_Callable))->ob_refcnt++);
62228 __Pyx_GIVEREF(__pyx_n_s_Callable);
62229 PyList_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_Callable)(((PyListObject *)(__pyx_t_8))->ob_item[0] = (__pyx_n_s_Callable
))
;
62230 __pyx_t_9 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_8, -1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__62230; goto __pyx_L4_except_error;}
62231 __Pyx_GOTREF(__pyx_t_9);
62232 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
62233 __pyx_t_8 = __Pyx_ImportFrom(__pyx_t_9, __pyx_n_s_Callable); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__62233; goto __pyx_L4_except_error;}
62234 __Pyx_GOTREF(__pyx_t_8);
62235 if (PyDict_SetItem(__pyx_d, __pyx_n_s_Callable, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__62235; goto __pyx_L4_except_error;}
62236 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
62237 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62238 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62239 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62240 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62241 goto __pyx_L3_exception_handled;
62242 }
62243 goto __pyx_L4_except_error;
62244 __pyx_L4_except_error:;
62245
62246 /* "rados.pyx":26
62247 * import time
62248 *
62249 * try: # <<<<<<<<<<<<<<
62250 * from collections.abc import Callable
62251 * except ImportError:
62252 */
62253 __Pyx_XGIVEREF(__pyx_t_2);
62254 __Pyx_XGIVEREF(__pyx_t_3);
62255 __Pyx_XGIVEREF(__pyx_t_4);
62256 __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
62257 goto __pyx_L1_error;
62258 __pyx_L3_exception_handled:;
62259 __Pyx_XGIVEREF(__pyx_t_2);
62260 __Pyx_XGIVEREF(__pyx_t_3);
62261 __Pyx_XGIVEREF(__pyx_t_4);
62262 __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
62263 __pyx_L9_try_end:;
62264 }
62265
62266 /* "rados.pyx":30
62267 * except ImportError:
62268 * from collections import Callable
62269 * from datetime import datetime # <<<<<<<<<<<<<<
62270 * from functools import partial, wraps
62271 * from itertools import chain
62272 */
62273 __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__62273; goto __pyx_L1_error;}
62274 __Pyx_GOTREF(__pyx_t_7);
62275 __Pyx_INCREF(__pyx_n_s_datetime)( ((PyObject*)(__pyx_n_s_datetime))->ob_refcnt++);
62276 __Pyx_GIVEREF(__pyx_n_s_datetime);
62277 PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_datetime)(((PyListObject *)(__pyx_t_7))->ob_item[0] = (__pyx_n_s_datetime
))
;
62278 __pyx_t_1 = __Pyx_Import(__pyx_n_s_datetime, __pyx_t_7, -1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__62278; goto __pyx_L1_error;}
62279 __Pyx_GOTREF(__pyx_t_1);
62280 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62281 __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_datetime); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__62281; goto __pyx_L1_error;}
62282 __Pyx_GOTREF(__pyx_t_7);
62283 if (PyDict_SetItem(__pyx_d, __pyx_n_s_datetime, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__62283; goto __pyx_L1_error;}
62284 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62285 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62286
62287 /* "rados.pyx":31
62288 * from collections import Callable
62289 * from datetime import datetime
62290 * from functools import partial, wraps # <<<<<<<<<<<<<<
62291 * from itertools import chain
62292 *
62293 */
62294 __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__62294; goto __pyx_L1_error;}
62295 __Pyx_GOTREF(__pyx_t_1);
62296 __Pyx_INCREF(__pyx_n_s_partial)( ((PyObject*)(__pyx_n_s_partial))->ob_refcnt++);
62297 __Pyx_GIVEREF(__pyx_n_s_partial);
62298 PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_partial)(((PyListObject *)(__pyx_t_1))->ob_item[0] = (__pyx_n_s_partial
))
;
62299 __Pyx_INCREF(__pyx_n_s_wraps)( ((PyObject*)(__pyx_n_s_wraps))->ob_refcnt++);
62300 __Pyx_GIVEREF(__pyx_n_s_wraps);
62301 PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_wraps)(((PyListObject *)(__pyx_t_1))->ob_item[1] = (__pyx_n_s_wraps
))
;
62302 __pyx_t_7 = __Pyx_Import(__pyx_n_s_functools, __pyx_t_1, -1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__62302; goto __pyx_L1_error;}
62303 __Pyx_GOTREF(__pyx_t_7);
62304 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62305 __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_partial); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__62305; goto __pyx_L1_error;}
62306 __Pyx_GOTREF(__pyx_t_1);
62307 if (PyDict_SetItem(__pyx_d, __pyx_n_s_partial, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__62307; goto __pyx_L1_error;}
62308 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62309 __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s_wraps); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__62309; goto __pyx_L1_error;}
62310 __Pyx_GOTREF(__pyx_t_1);
62311 if (PyDict_SetItem(__pyx_d, __pyx_n_s_wraps, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__62311; goto __pyx_L1_error;}
62312 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62313 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62314
62315 /* "rados.pyx":32
62316 * from datetime import datetime
62317 * from functools import partial, wraps
62318 * from itertools import chain # <<<<<<<<<<<<<<
62319 *
62320 * # Are we running Python 2.x
62321 */
62322 __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__62322; goto __pyx_L1_error;}
62323 __Pyx_GOTREF(__pyx_t_7);
62324 __Pyx_INCREF(__pyx_n_s_chain)( ((PyObject*)(__pyx_n_s_chain))->ob_refcnt++);
62325 __Pyx_GIVEREF(__pyx_n_s_chain);
62326 PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_chain)(((PyListObject *)(__pyx_t_7))->ob_item[0] = (__pyx_n_s_chain
))
;
62327 __pyx_t_1 = __Pyx_Import(__pyx_n_s_itertools, __pyx_t_7, -1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__62327; goto __pyx_L1_error;}
62328 __Pyx_GOTREF(__pyx_t_1);
62329 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62330 __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_chain); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__62330; goto __pyx_L1_error;}
62331 __Pyx_GOTREF(__pyx_t_7);
62332 if (PyDict_SetItem(__pyx_d, __pyx_n_s_chain, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__62332; goto __pyx_L1_error;}
62333 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62334 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62335
62336 /* "rados.pyx":35
62337 *
62338 * # Are we running Python 2.x
62339 * if sys.version_info[0] < 3: # <<<<<<<<<<<<<<
62340 * str_type = basestring
62341 * else:
62342 */
62343 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_sys); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__62343; goto __pyx_L1_error;}
62344 __Pyx_GOTREF(__pyx_t_1);
62345 __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_version_info); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__62345; goto __pyx_L1_error;}
62346 __Pyx_GOTREF(__pyx_t_7);
62347 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62348 __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_7, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1)(( (sizeof(long) < sizeof(Py_ssize_t)) || (sizeof(long) >
sizeof(Py_ssize_t) && __builtin_expect(!!(0 < (long
)((Py_ssize_t)(((size_t)-1)>>1)) || 0 == (long)((Py_ssize_t
)(((size_t)-1)>>1))), 1) && (!1 || __builtin_expect
(!!(0 > (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1) ||
0 == (long)(-((Py_ssize_t)(((size_t)-1)>>1))-1)), 1)))
|| (sizeof(long) == sizeof(Py_ssize_t) && (1 || __builtin_expect
(!!(0 < (long)((Py_ssize_t)(((size_t)-1)>>1)) || 0 ==
(long)((Py_ssize_t)(((size_t)-1)>>1))), 1))) ) ? __Pyx_GetItemInt_Fast
(__pyx_t_7, (Py_ssize_t)0, 0, 0, 1) : (0 ? (PyErr_SetString(PyExc_IndexError
, "list index out of range"), (PyObject*)((void*)0)) : __Pyx_GetItemInt_Generic
(__pyx_t_7, __Pyx_PyInt_From_long(0))))
; if (unlikely(__pyx_t_1 == NULL)__builtin_expect(!!(__pyx_t_1 == ((void*)0)), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__62348; goto __pyx_L1_error;};
62349 __Pyx_GOTREF(__pyx_t_1);
62350 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62351 __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_int_3, Py_LT0); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__62351; goto __pyx_L1_error;}
62352 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62353 __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)__builtin_expect(!!(__pyx_t_10 < 0), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__62353; goto __pyx_L1_error;}
62354 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62355 if (__pyx_t_10) {
62356
62357 /* "rados.pyx":36
62358 * # Are we running Python 2.x
62359 * if sys.version_info[0] < 3:
62360 * str_type = basestring # <<<<<<<<<<<<<<
62361 * else:
62362 * str_type = str
62363 */
62364 if (PyDict_SetItem(__pyx_d, __pyx_n_s_str_type, ((PyObject *)(&PyBaseString_Type))) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__62364; goto __pyx_L1_error;}
62365
62366 /* "rados.pyx":35
62367 *
62368 * # Are we running Python 2.x
62369 * if sys.version_info[0] < 3: # <<<<<<<<<<<<<<
62370 * str_type = basestring
62371 * else:
62372 */
62373 goto __pyx_L12;
62374 }
62375
62376 /* "rados.pyx":38
62377 * str_type = basestring
62378 * else:
62379 * str_type = str # <<<<<<<<<<<<<<
62380 *
62381 *
62382 */
62383 /*else*/ {
62384 if (PyDict_SetItem(__pyx_d, __pyx_n_s_str_type, ((PyObject *)(&PyString_Type))) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__62384; goto __pyx_L1_error;}
62385 }
62386 __pyx_L12:;
62387
62388 /* "rados.pyx":311
62389 *
62390 *
62391 * LIBRADOS_OP_FLAG_EXCL = _LIBRADOS_OP_FLAG_EXCL # <<<<<<<<<<<<<<
62392 * LIBRADOS_OP_FLAG_FAILOK = _LIBRADOS_OP_FLAG_FAILOK
62393 * LIBRADOS_OP_FLAG_FADVISE_RANDOM = _LIBRADOS_OP_FLAG_FADVISE_RANDOM
62394 */
62395 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OP_FLAG_EXCL); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__62395; goto __pyx_L1_error;}
62396 __Pyx_GOTREF(__pyx_t_7);
62397 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OP_FLAG_EXCL, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__62397; goto __pyx_L1_error;}
62398 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62399
62400 /* "rados.pyx":312
62401 *
62402 * LIBRADOS_OP_FLAG_EXCL = _LIBRADOS_OP_FLAG_EXCL
62403 * LIBRADOS_OP_FLAG_FAILOK = _LIBRADOS_OP_FLAG_FAILOK # <<<<<<<<<<<<<<
62404 * LIBRADOS_OP_FLAG_FADVISE_RANDOM = _LIBRADOS_OP_FLAG_FADVISE_RANDOM
62405 * LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL = _LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL
62406 */
62407 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OP_FLAG_FAILOK); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__62407; goto __pyx_L1_error;}
62408 __Pyx_GOTREF(__pyx_t_7);
62409 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OP_FLAG_FAILOK, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__62409; goto __pyx_L1_error;}
62410 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62411
62412 /* "rados.pyx":313
62413 * LIBRADOS_OP_FLAG_EXCL = _LIBRADOS_OP_FLAG_EXCL
62414 * LIBRADOS_OP_FLAG_FAILOK = _LIBRADOS_OP_FLAG_FAILOK
62415 * LIBRADOS_OP_FLAG_FADVISE_RANDOM = _LIBRADOS_OP_FLAG_FADVISE_RANDOM # <<<<<<<<<<<<<<
62416 * LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL = _LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL
62417 * LIBRADOS_OP_FLAG_FADVISE_WILLNEED = _LIBRADOS_OP_FLAG_FADVISE_WILLNEED
62418 */
62419 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OP_FLAG_FADVISE_RANDOM); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; __pyx_clineno = __LINE__62419; goto __pyx_L1_error;}
62420 __Pyx_GOTREF(__pyx_t_7);
62421 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_RANDOM, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; __pyx_clineno = __LINE__62421; goto __pyx_L1_error;}
62422 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62423
62424 /* "rados.pyx":314
62425 * LIBRADOS_OP_FLAG_FAILOK = _LIBRADOS_OP_FLAG_FAILOK
62426 * LIBRADOS_OP_FLAG_FADVISE_RANDOM = _LIBRADOS_OP_FLAG_FADVISE_RANDOM
62427 * LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL = _LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL # <<<<<<<<<<<<<<
62428 * LIBRADOS_OP_FLAG_FADVISE_WILLNEED = _LIBRADOS_OP_FLAG_FADVISE_WILLNEED
62429 * LIBRADOS_OP_FLAG_FADVISE_DONTNEED = _LIBRADOS_OP_FLAG_FADVISE_DONTNEED
62430 */
62431 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__62431; goto __pyx_L1_error;}
62432 __Pyx_GOTREF(__pyx_t_7);
62433 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_SEQUENT, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__62433; goto __pyx_L1_error;}
62434 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62435
62436 /* "rados.pyx":315
62437 * LIBRADOS_OP_FLAG_FADVISE_RANDOM = _LIBRADOS_OP_FLAG_FADVISE_RANDOM
62438 * LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL = _LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL
62439 * LIBRADOS_OP_FLAG_FADVISE_WILLNEED = _LIBRADOS_OP_FLAG_FADVISE_WILLNEED # <<<<<<<<<<<<<<
62440 * LIBRADOS_OP_FLAG_FADVISE_DONTNEED = _LIBRADOS_OP_FLAG_FADVISE_DONTNEED
62441 * LIBRADOS_OP_FLAG_FADVISE_NOCACHE = _LIBRADOS_OP_FLAG_FADVISE_NOCACHE
62442 */
62443 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OP_FLAG_FADVISE_WILLNEED); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__62443; goto __pyx_L1_error;}
62444 __Pyx_GOTREF(__pyx_t_7);
62445 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_WILLNEE, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__62445; goto __pyx_L1_error;}
62446 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62447
62448 /* "rados.pyx":316
62449 * LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL = _LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL
62450 * LIBRADOS_OP_FLAG_FADVISE_WILLNEED = _LIBRADOS_OP_FLAG_FADVISE_WILLNEED
62451 * LIBRADOS_OP_FLAG_FADVISE_DONTNEED = _LIBRADOS_OP_FLAG_FADVISE_DONTNEED # <<<<<<<<<<<<<<
62452 * LIBRADOS_OP_FLAG_FADVISE_NOCACHE = _LIBRADOS_OP_FLAG_FADVISE_NOCACHE
62453 *
62454 */
62455 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OP_FLAG_FADVISE_DONTNEED); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__62455; goto __pyx_L1_error;}
62456 __Pyx_GOTREF(__pyx_t_7);
62457 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_DONTNEE, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__62457; goto __pyx_L1_error;}
62458 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62459
62460 /* "rados.pyx":317
62461 * LIBRADOS_OP_FLAG_FADVISE_WILLNEED = _LIBRADOS_OP_FLAG_FADVISE_WILLNEED
62462 * LIBRADOS_OP_FLAG_FADVISE_DONTNEED = _LIBRADOS_OP_FLAG_FADVISE_DONTNEED
62463 * LIBRADOS_OP_FLAG_FADVISE_NOCACHE = _LIBRADOS_OP_FLAG_FADVISE_NOCACHE # <<<<<<<<<<<<<<
62464 *
62465 * LIBRADOS_SNAP_HEAD = _LIBRADOS_SNAP_HEAD
62466 */
62467 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OP_FLAG_FADVISE_NOCACHE); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__62467; goto __pyx_L1_error;}
62468 __Pyx_GOTREF(__pyx_t_7);
62469 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OP_FLAG_FADVISE_NOCACHE, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 317; __pyx_clineno = __LINE__62469; goto __pyx_L1_error;}
62470 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62471
62472 /* "rados.pyx":319
62473 * LIBRADOS_OP_FLAG_FADVISE_NOCACHE = _LIBRADOS_OP_FLAG_FADVISE_NOCACHE
62474 *
62475 * LIBRADOS_SNAP_HEAD = _LIBRADOS_SNAP_HEAD # <<<<<<<<<<<<<<
62476 *
62477 * LIBRADOS_OPERATION_NOFLAG = _LIBRADOS_OPERATION_NOFLAG
62478 */
62479 __pyx_t_7 = __Pyx_PyInt_From_uint64_t(LIBRADOS_SNAP_HEAD((uint64_t)(-2))); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__62479; goto __pyx_L1_error;}
62480 __Pyx_GOTREF(__pyx_t_7);
62481 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_SNAP_HEAD, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__62481; goto __pyx_L1_error;}
62482 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62483
62484 /* "rados.pyx":321
62485 * LIBRADOS_SNAP_HEAD = _LIBRADOS_SNAP_HEAD
62486 *
62487 * LIBRADOS_OPERATION_NOFLAG = _LIBRADOS_OPERATION_NOFLAG # <<<<<<<<<<<<<<
62488 * LIBRADOS_OPERATION_BALANCE_READS = _LIBRADOS_OPERATION_BALANCE_READS
62489 * LIBRADOS_OPERATION_LOCALIZE_READS = _LIBRADOS_OPERATION_LOCALIZE_READS
62490 */
62491 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OPERATION_NOFLAG); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__62491; goto __pyx_L1_error;}
62492 __Pyx_GOTREF(__pyx_t_7);
62493 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OPERATION_NOFLAG, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__62493; goto __pyx_L1_error;}
62494 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62495
62496 /* "rados.pyx":322
62497 *
62498 * LIBRADOS_OPERATION_NOFLAG = _LIBRADOS_OPERATION_NOFLAG
62499 * LIBRADOS_OPERATION_BALANCE_READS = _LIBRADOS_OPERATION_BALANCE_READS # <<<<<<<<<<<<<<
62500 * LIBRADOS_OPERATION_LOCALIZE_READS = _LIBRADOS_OPERATION_LOCALIZE_READS
62501 * LIBRADOS_OPERATION_ORDER_READS_WRITES = _LIBRADOS_OPERATION_ORDER_READS_WRITES
62502 */
62503 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OPERATION_BALANCE_READS); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__62503; goto __pyx_L1_error;}
62504 __Pyx_GOTREF(__pyx_t_7);
62505 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OPERATION_BALANCE_READS, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__62505; goto __pyx_L1_error;}
62506 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62507
62508 /* "rados.pyx":323
62509 * LIBRADOS_OPERATION_NOFLAG = _LIBRADOS_OPERATION_NOFLAG
62510 * LIBRADOS_OPERATION_BALANCE_READS = _LIBRADOS_OPERATION_BALANCE_READS
62511 * LIBRADOS_OPERATION_LOCALIZE_READS = _LIBRADOS_OPERATION_LOCALIZE_READS # <<<<<<<<<<<<<<
62512 * LIBRADOS_OPERATION_ORDER_READS_WRITES = _LIBRADOS_OPERATION_ORDER_READS_WRITES
62513 * LIBRADOS_OPERATION_IGNORE_CACHE = _LIBRADOS_OPERATION_IGNORE_CACHE
62514 */
62515 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OPERATION_LOCALIZE_READS); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__62515; goto __pyx_L1_error;}
62516 __Pyx_GOTREF(__pyx_t_7);
62517 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OPERATION_LOCALIZE_READ, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__62517; goto __pyx_L1_error;}
62518 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62519
62520 /* "rados.pyx":324
62521 * LIBRADOS_OPERATION_BALANCE_READS = _LIBRADOS_OPERATION_BALANCE_READS
62522 * LIBRADOS_OPERATION_LOCALIZE_READS = _LIBRADOS_OPERATION_LOCALIZE_READS
62523 * LIBRADOS_OPERATION_ORDER_READS_WRITES = _LIBRADOS_OPERATION_ORDER_READS_WRITES # <<<<<<<<<<<<<<
62524 * LIBRADOS_OPERATION_IGNORE_CACHE = _LIBRADOS_OPERATION_IGNORE_CACHE
62525 * LIBRADOS_OPERATION_SKIPRWLOCKS = _LIBRADOS_OPERATION_SKIPRWLOCKS
62526 */
62527 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OPERATION_ORDER_READS_WRITES); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__62527; goto __pyx_L1_error;}
62528 __Pyx_GOTREF(__pyx_t_7);
62529 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OPERATION_ORDER_READS_W, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__62529; goto __pyx_L1_error;}
62530 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62531
62532 /* "rados.pyx":325
62533 * LIBRADOS_OPERATION_LOCALIZE_READS = _LIBRADOS_OPERATION_LOCALIZE_READS
62534 * LIBRADOS_OPERATION_ORDER_READS_WRITES = _LIBRADOS_OPERATION_ORDER_READS_WRITES
62535 * LIBRADOS_OPERATION_IGNORE_CACHE = _LIBRADOS_OPERATION_IGNORE_CACHE # <<<<<<<<<<<<<<
62536 * LIBRADOS_OPERATION_SKIPRWLOCKS = _LIBRADOS_OPERATION_SKIPRWLOCKS
62537 * LIBRADOS_OPERATION_IGNORE_OVERLAY = _LIBRADOS_OPERATION_IGNORE_OVERLAY
62538 */
62539 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OPERATION_IGNORE_CACHE); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__62539; goto __pyx_L1_error;}
62540 __Pyx_GOTREF(__pyx_t_7);
62541 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OPERATION_IGNORE_CACHE, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__62541; goto __pyx_L1_error;}
62542 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62543
62544 /* "rados.pyx":326
62545 * LIBRADOS_OPERATION_ORDER_READS_WRITES = _LIBRADOS_OPERATION_ORDER_READS_WRITES
62546 * LIBRADOS_OPERATION_IGNORE_CACHE = _LIBRADOS_OPERATION_IGNORE_CACHE
62547 * LIBRADOS_OPERATION_SKIPRWLOCKS = _LIBRADOS_OPERATION_SKIPRWLOCKS # <<<<<<<<<<<<<<
62548 * LIBRADOS_OPERATION_IGNORE_OVERLAY = _LIBRADOS_OPERATION_IGNORE_OVERLAY
62549 *
62550 */
62551 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OPERATION_SKIPRWLOCKS); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__62551; goto __pyx_L1_error;}
62552 __Pyx_GOTREF(__pyx_t_7);
62553 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OPERATION_SKIPRWLOCKS, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__62553; goto __pyx_L1_error;}
62554 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62555
62556 /* "rados.pyx":327
62557 * LIBRADOS_OPERATION_IGNORE_CACHE = _LIBRADOS_OPERATION_IGNORE_CACHE
62558 * LIBRADOS_OPERATION_SKIPRWLOCKS = _LIBRADOS_OPERATION_SKIPRWLOCKS
62559 * LIBRADOS_OPERATION_IGNORE_OVERLAY = _LIBRADOS_OPERATION_IGNORE_OVERLAY # <<<<<<<<<<<<<<
62560 *
62561 * LIBRADOS_ALL_NSPACES = _LIBRADOS_ALL_NSPACES.decode('utf-8')
62562 */
62563 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_OPERATION_IGNORE_OVERLAY); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__62563; goto __pyx_L1_error;}
62564 __Pyx_GOTREF(__pyx_t_7);
62565 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_OPERATION_IGNORE_OVERLA, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__62565; goto __pyx_L1_error;}
62566 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62567
62568 /* "rados.pyx":329
62569 * LIBRADOS_OPERATION_IGNORE_OVERLAY = _LIBRADOS_OPERATION_IGNORE_OVERLAY
62570 *
62571 * LIBRADOS_ALL_NSPACES = _LIBRADOS_ALL_NSPACES.decode('utf-8') # <<<<<<<<<<<<<<
62572 *
62573 * LIBRADOS_CREATE_EXCLUSIVE = _LIBRADOS_CREATE_EXCLUSIVE
62574 */
62575 __pyx_t_7 = __Pyx_decode_c_string(LIBRADOS_ALL_NSPACES"\001", 0, strlen(LIBRADOS_ALL_NSPACES"\001"), NULL((void*)0), NULL((void*)0), PyUnicode_DecodeUTF8PyUnicodeUCS4_DecodeUTF8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__62575; goto __pyx_L1_error;}
62576 __Pyx_GOTREF(__pyx_t_7);
62577 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_ALL_NSPACES, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__62577; goto __pyx_L1_error;}
62578 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62579
62580 /* "rados.pyx":331
62581 * LIBRADOS_ALL_NSPACES = _LIBRADOS_ALL_NSPACES.decode('utf-8')
62582 *
62583 * LIBRADOS_CREATE_EXCLUSIVE = _LIBRADOS_CREATE_EXCLUSIVE # <<<<<<<<<<<<<<
62584 * LIBRADOS_CREATE_IDEMPOTENT = _LIBRADOS_CREATE_IDEMPOTENT
62585 *
62586 */
62587 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_CREATE_EXCLUSIVE1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__62587; goto __pyx_L1_error;}
62588 __Pyx_GOTREF(__pyx_t_7);
62589 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_CREATE_EXCLUSIVE, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__62589; goto __pyx_L1_error;}
62590 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62591
62592 /* "rados.pyx":332
62593 *
62594 * LIBRADOS_CREATE_EXCLUSIVE = _LIBRADOS_CREATE_EXCLUSIVE
62595 * LIBRADOS_CREATE_IDEMPOTENT = _LIBRADOS_CREATE_IDEMPOTENT # <<<<<<<<<<<<<<
62596 *
62597 * ANONYMOUS_AUID = 0xffffffffffffffff
62598 */
62599 __pyx_t_7 = __Pyx_PyInt_From_int(LIBRADOS_CREATE_IDEMPOTENT0); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__62599; goto __pyx_L1_error;}
62600 __Pyx_GOTREF(__pyx_t_7);
62601 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LIBRADOS_CREATE_IDEMPOTENT, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__62601; goto __pyx_L1_error;}
62602 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62603
62604 /* "rados.pyx":334
62605 * LIBRADOS_CREATE_IDEMPOTENT = _LIBRADOS_CREATE_IDEMPOTENT
62606 *
62607 * ANONYMOUS_AUID = 0xffffffffffffffff # <<<<<<<<<<<<<<
62608 * ADMIN_AUID = 0
62609 *
62610 */
62611 if (PyDict_SetItem(__pyx_d, __pyx_n_s_ANONYMOUS_AUID, __pyx_int_18446744073709551615) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__62611; goto __pyx_L1_error;}
62612
62613 /* "rados.pyx":335
62614 *
62615 * ANONYMOUS_AUID = 0xffffffffffffffff
62616 * ADMIN_AUID = 0 # <<<<<<<<<<<<<<
62617 *
62618 *
62619 */
62620 if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADMIN_AUID, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__62620; goto __pyx_L1_error;}
62621
62622 /* "rados.pyx":338
62623 *
62624 *
62625 * class Error(Exception): # <<<<<<<<<<<<<<
62626 * """ `Error` class, derived from `Exception` """
62627 * def __init__(self, message, errno=None):
62628 */
62629 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__62629; goto __pyx_L1_error;}
62630 __Pyx_GOTREF(__pyx_t_7);
62631 __Pyx_INCREF(__pyx_builtin_Exception)( ((PyObject*)(__pyx_builtin_Exception))->ob_refcnt++);
62632 __Pyx_GIVEREF(__pyx_builtin_Exception);
62633 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_Exception)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_builtin_Exception
)
;
62634 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__62634; goto __pyx_L1_error;}
62635 __Pyx_GOTREF(__pyx_t_1);
62636 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_Error, __pyx_n_s_Error, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_Error_class_derived_from_Except); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__62636; goto __pyx_L1_error;}
62637 __Pyx_GOTREF(__pyx_t_5);
62638
62639 /* "rados.pyx":340
62640 * class Error(Exception):
62641 * """ `Error` class, derived from `Exception` """
62642 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
62643 * super(Exception, self).__init__(message)
62644 * self.errno = errno
62645 */
62646 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5Error_1__init__, 0, __pyx_n_s_Error___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__75))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5Error_1__init__
, 0, __pyx_n_s_Error___init, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__75))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__62646; goto __pyx_L1_error;}
62647 __Pyx_GOTREF(__pyx_t_9);
62648 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__76);
62649 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__62649; goto __pyx_L1_error;}
62650 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62651
62652 /* "rados.pyx":344
62653 * self.errno = errno
62654 *
62655 * def __str__(self): # <<<<<<<<<<<<<<
62656 * msg = super(Exception, self).__str__()
62657 * if self.errno is None:
62658 */
62659 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5Error_3__str__, 0, __pyx_n_s_Error___str, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__78))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5Error_3__str__
, 0, __pyx_n_s_Error___str, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__78))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__62659; goto __pyx_L1_error;}
62660 __Pyx_GOTREF(__pyx_t_9);
62661 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_str, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__62661; goto __pyx_L1_error;}
62662 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62663
62664 /* "rados.pyx":350
62665 * return '[errno {0}] {1}'.format(self.errno, msg)
62666 *
62667 * def __reduce__(self): # <<<<<<<<<<<<<<
62668 * return (self.__class__, (self.message, self.errno))
62669 *
62670 */
62671 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5Error_5__reduce__, 0, __pyx_n_s_Error___reduce, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__80))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5Error_5__reduce__
, 0, __pyx_n_s_Error___reduce, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__80))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__62671; goto __pyx_L1_error;}
62672 __Pyx_GOTREF(__pyx_t_9);
62673 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_reduce, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__62673; goto __pyx_L1_error;}
62674 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62675
62676 /* "rados.pyx":338
62677 *
62678 *
62679 * class Error(Exception): # <<<<<<<<<<<<<<
62680 * """ `Error` class, derived from `Exception` """
62681 * def __init__(self, message, errno=None):
62682 */
62683 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_Error, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__62683; goto __pyx_L1_error;}
62684 __Pyx_GOTREF(__pyx_t_9);
62685 if (PyDict_SetItem(__pyx_d, __pyx_n_s_Error, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__62685; goto __pyx_L1_error;}
62686 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62687 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62688 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62689 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62690
62691 /* "rados.pyx":353
62692 * return (self.__class__, (self.message, self.errno))
62693 *
62694 * class InvalidArgumentError(Error): # <<<<<<<<<<<<<<
62695 * def __init__(self, message, errno=None):
62696 * super(InvalidArgumentError, self).__init__(
62697 */
62698 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__62698; goto __pyx_L1_error;}
62699 __Pyx_GOTREF(__pyx_t_7);
62700 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__62700; goto __pyx_L1_error;}
62701 __Pyx_GOTREF(__pyx_t_1);
62702 __Pyx_GIVEREF(__pyx_t_7);
62703 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
62704 __pyx_t_7 = 0;
62705 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__62705; goto __pyx_L1_error;}
62706 __Pyx_GOTREF(__pyx_t_7);
62707 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_InvalidArgumentError, __pyx_n_s_InvalidArgumentError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, (PyObject *) NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__62707; goto __pyx_L1_error;}
62708 __Pyx_GOTREF(__pyx_t_5);
62709
62710 /* "rados.pyx":354
62711 *
62712 * class InvalidArgumentError(Error):
62713 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
62714 * super(InvalidArgumentError, self).__init__(
62715 * "RADOS invalid argument (%s)" % message, errno)
62716 */
62717 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_20InvalidArgumentError_1__init__, 0, __pyx_n_s_InvalidArgumentError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__82))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_20InvalidArgumentError_1__init__
, 0, __pyx_n_s_InvalidArgumentError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__82))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__62717; goto __pyx_L1_error;}
62718 __Pyx_GOTREF(__pyx_t_9);
62719 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__83);
62720 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__62720; goto __pyx_L1_error;}
62721 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62722
62723 /* "rados.pyx":353
62724 * return (self.__class__, (self.message, self.errno))
62725 *
62726 * class InvalidArgumentError(Error): # <<<<<<<<<<<<<<
62727 * def __init__(self, message, errno=None):
62728 * super(InvalidArgumentError, self).__init__(
62729 */
62730 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_InvalidArgumentError, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__62730; goto __pyx_L1_error;}
62731 __Pyx_GOTREF(__pyx_t_9);
62732 if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidArgumentError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__62732; goto __pyx_L1_error;}
62733 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62734 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62735 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62736 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62737
62738 /* "rados.pyx":359
62739 *
62740 *
62741 * class OSError(Error): # <<<<<<<<<<<<<<
62742 * """ `OSError` class, derived from `Error` """
62743 * pass
62744 */
62745 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__62745; goto __pyx_L1_error;}
62746 __Pyx_GOTREF(__pyx_t_1);
62747 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__62747; goto __pyx_L1_error;}
62748 __Pyx_GOTREF(__pyx_t_7);
62749 __Pyx_GIVEREF(__pyx_t_1);
62750 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
62751 __pyx_t_1 = 0;
62752 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__62752; goto __pyx_L1_error;}
62753 __Pyx_GOTREF(__pyx_t_1);
62754 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_OSError, __pyx_n_s_OSError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_OSError_class_derived_from_Erro); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__62754; goto __pyx_L1_error;}
62755 __Pyx_GOTREF(__pyx_t_5);
62756 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_OSError, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__62756; goto __pyx_L1_error;}
62757 __Pyx_GOTREF(__pyx_t_9);
62758 if (PyDict_SetItem(__pyx_d, __pyx_n_s_OSError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__62758; goto __pyx_L1_error;}
62759 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62760 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62761 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62762 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62763
62764 /* "rados.pyx":363
62765 * pass
62766 *
62767 * class InterruptedOrTimeoutError(OSError): # <<<<<<<<<<<<<<
62768 * """ `InterruptedOrTimeoutError` class, derived from `OSError` """
62769 * def __init__(self, message, errno=None):
62770 */
62771 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__62771; goto __pyx_L1_error;}
62772 __Pyx_GOTREF(__pyx_t_7);
62773 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__62773; goto __pyx_L1_error;}
62774 __Pyx_GOTREF(__pyx_t_1);
62775 __Pyx_GIVEREF(__pyx_t_7);
62776 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
62777 __pyx_t_7 = 0;
62778 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__62778; goto __pyx_L1_error;}
62779 __Pyx_GOTREF(__pyx_t_7);
62780 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_InterruptedOrTimeoutError, __pyx_n_s_InterruptedOrTimeoutError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_InterruptedOrTimeoutError_class); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__62780; goto __pyx_L1_error;}
62781 __Pyx_GOTREF(__pyx_t_5);
62782
62783 /* "rados.pyx":365
62784 * class InterruptedOrTimeoutError(OSError):
62785 * """ `InterruptedOrTimeoutError` class, derived from `OSError` """
62786 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
62787 * super(InterruptedOrTimeoutError, self).__init__(
62788 * "RADOS interrupted or timeout (%s)" % message, errno)
62789 */
62790 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_25InterruptedOrTimeoutError_1__init__, 0, __pyx_n_s_InterruptedOrTimeoutError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__85))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_25InterruptedOrTimeoutError_1__init__
, 0, __pyx_n_s_InterruptedOrTimeoutError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__85))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__62790; goto __pyx_L1_error;}
62791 __Pyx_GOTREF(__pyx_t_9);
62792 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__86);
62793 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__62793; goto __pyx_L1_error;}
62794 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62795
62796 /* "rados.pyx":363
62797 * pass
62798 *
62799 * class InterruptedOrTimeoutError(OSError): # <<<<<<<<<<<<<<
62800 * """ `InterruptedOrTimeoutError` class, derived from `OSError` """
62801 * def __init__(self, message, errno=None):
62802 */
62803 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_InterruptedOrTimeoutError, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__62803; goto __pyx_L1_error;}
62804 __Pyx_GOTREF(__pyx_t_9);
62805 if (PyDict_SetItem(__pyx_d, __pyx_n_s_InterruptedOrTimeoutError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__62805; goto __pyx_L1_error;}
62806 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62807 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62808 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62809 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62810
62811 /* "rados.pyx":370
62812 *
62813 *
62814 * class PermissionError(OSError): # <<<<<<<<<<<<<<
62815 * """ `PermissionError` class, derived from `OSError` """
62816 * def __init__(self, message, errno=None):
62817 */
62818 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__62818; goto __pyx_L1_error;}
62819 __Pyx_GOTREF(__pyx_t_1);
62820 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__62820; goto __pyx_L1_error;}
62821 __Pyx_GOTREF(__pyx_t_7);
62822 __Pyx_GIVEREF(__pyx_t_1);
62823 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
62824 __pyx_t_1 = 0;
62825 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__62825; goto __pyx_L1_error;}
62826 __Pyx_GOTREF(__pyx_t_1);
62827 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_PermissionError, __pyx_n_s_PermissionError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_PermissionError_class_derived_f); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__62827; goto __pyx_L1_error;}
62828 __Pyx_GOTREF(__pyx_t_5);
62829
62830 /* "rados.pyx":372
62831 * class PermissionError(OSError):
62832 * """ `PermissionError` class, derived from `OSError` """
62833 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
62834 * super(PermissionError, self).__init__(
62835 * "RADOS permission error (%s)" % message, errno)
62836 */
62837 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_15PermissionError_1__init__, 0, __pyx_n_s_PermissionError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__88))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_15PermissionError_1__init__
, 0, __pyx_n_s_PermissionError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__88))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__62837; goto __pyx_L1_error;}
62838 __Pyx_GOTREF(__pyx_t_9);
62839 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__89);
62840 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__62840; goto __pyx_L1_error;}
62841 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62842
62843 /* "rados.pyx":370
62844 *
62845 *
62846 * class PermissionError(OSError): # <<<<<<<<<<<<<<
62847 * """ `PermissionError` class, derived from `OSError` """
62848 * def __init__(self, message, errno=None):
62849 */
62850 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_PermissionError, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__62850; goto __pyx_L1_error;}
62851 __Pyx_GOTREF(__pyx_t_9);
62852 if (PyDict_SetItem(__pyx_d, __pyx_n_s_PermissionError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__62852; goto __pyx_L1_error;}
62853 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62854 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62855 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62856 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62857
62858 /* "rados.pyx":377
62859 *
62860 *
62861 * class PermissionDeniedError(OSError): # <<<<<<<<<<<<<<
62862 * """ deal with EACCES related. """
62863 * def __init__(self, message, errno=None):
62864 */
62865 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__62865; goto __pyx_L1_error;}
62866 __Pyx_GOTREF(__pyx_t_7);
62867 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__62867; goto __pyx_L1_error;}
62868 __Pyx_GOTREF(__pyx_t_1);
62869 __Pyx_GIVEREF(__pyx_t_7);
62870 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
62871 __pyx_t_7 = 0;
62872 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__62872; goto __pyx_L1_error;}
62873 __Pyx_GOTREF(__pyx_t_7);
62874 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_PermissionDeniedError, __pyx_n_s_PermissionDeniedError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_deal_with_EACCES_related); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__62874; goto __pyx_L1_error;}
62875 __Pyx_GOTREF(__pyx_t_5);
62876
62877 /* "rados.pyx":379
62878 * class PermissionDeniedError(OSError):
62879 * """ deal with EACCES related. """
62880 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
62881 * super(PermissionDeniedError, self).__init__(
62882 * "RADOS permission denied (%s)" % message, errno)
62883 */
62884 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_21PermissionDeniedError_1__init__, 0, __pyx_n_s_PermissionDeniedError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__91))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_21PermissionDeniedError_1__init__
, 0, __pyx_n_s_PermissionDeniedError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__91))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__62884; goto __pyx_L1_error;}
62885 __Pyx_GOTREF(__pyx_t_9);
62886 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__92);
62887 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__62887; goto __pyx_L1_error;}
62888 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62889
62890 /* "rados.pyx":377
62891 *
62892 *
62893 * class PermissionDeniedError(OSError): # <<<<<<<<<<<<<<
62894 * """ deal with EACCES related. """
62895 * def __init__(self, message, errno=None):
62896 */
62897 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_PermissionDeniedError, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__62897; goto __pyx_L1_error;}
62898 __Pyx_GOTREF(__pyx_t_9);
62899 if (PyDict_SetItem(__pyx_d, __pyx_n_s_PermissionDeniedError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__62899; goto __pyx_L1_error;}
62900 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62901 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62902 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62903 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62904
62905 /* "rados.pyx":384
62906 *
62907 *
62908 * class ObjectNotFound(OSError): # <<<<<<<<<<<<<<
62909 * """ `ObjectNotFound` class, derived from `OSError` """
62910 * def __init__(self, message, errno=None):
62911 */
62912 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__62912; goto __pyx_L1_error;}
62913 __Pyx_GOTREF(__pyx_t_1);
62914 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__62914; goto __pyx_L1_error;}
62915 __Pyx_GOTREF(__pyx_t_7);
62916 __Pyx_GIVEREF(__pyx_t_1);
62917 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
62918 __pyx_t_1 = 0;
62919 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__62919; goto __pyx_L1_error;}
62920 __Pyx_GOTREF(__pyx_t_1);
62921 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_ObjectNotFound, __pyx_n_s_ObjectNotFound, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_ObjectNotFound_class_derived_fr); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__62921; goto __pyx_L1_error;}
62922 __Pyx_GOTREF(__pyx_t_5);
62923
62924 /* "rados.pyx":386
62925 * class ObjectNotFound(OSError):
62926 * """ `ObjectNotFound` class, derived from `OSError` """
62927 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
62928 * super(ObjectNotFound, self).__init__(
62929 * "RADOS object not found (%s)" % message, errno)
62930 */
62931 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_14ObjectNotFound_1__init__, 0, __pyx_n_s_ObjectNotFound___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__94))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_14ObjectNotFound_1__init__
, 0, __pyx_n_s_ObjectNotFound___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__94))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__62931; goto __pyx_L1_error;}
62932 __Pyx_GOTREF(__pyx_t_9);
62933 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__95);
62934 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__62934; goto __pyx_L1_error;}
62935 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62936
62937 /* "rados.pyx":384
62938 *
62939 *
62940 * class ObjectNotFound(OSError): # <<<<<<<<<<<<<<
62941 * """ `ObjectNotFound` class, derived from `OSError` """
62942 * def __init__(self, message, errno=None):
62943 */
62944 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_ObjectNotFound, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__62944; goto __pyx_L1_error;}
62945 __Pyx_GOTREF(__pyx_t_9);
62946 if (PyDict_SetItem(__pyx_d, __pyx_n_s_ObjectNotFound, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__62946; goto __pyx_L1_error;}
62947 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62948 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62949 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62950 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62951
62952 /* "rados.pyx":391
62953 *
62954 *
62955 * class NoData(OSError): # <<<<<<<<<<<<<<
62956 * """ `NoData` class, derived from `OSError` """
62957 * def __init__(self, message, errno=None):
62958 */
62959 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__62959; goto __pyx_L1_error;}
62960 __Pyx_GOTREF(__pyx_t_7);
62961 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__62961; goto __pyx_L1_error;}
62962 __Pyx_GOTREF(__pyx_t_1);
62963 __Pyx_GIVEREF(__pyx_t_7);
62964 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
62965 __pyx_t_7 = 0;
62966 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__62966; goto __pyx_L1_error;}
62967 __Pyx_GOTREF(__pyx_t_7);
62968 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_NoData, __pyx_n_s_NoData, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_NoData_class_derived_from_OSErr); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__62968; goto __pyx_L1_error;}
62969 __Pyx_GOTREF(__pyx_t_5);
62970
62971 /* "rados.pyx":393
62972 * class NoData(OSError):
62973 * """ `NoData` class, derived from `OSError` """
62974 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
62975 * super(NoData, self).__init__(
62976 * "RADOS no data (%s)" % message, errno)
62977 */
62978 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6NoData_1__init__, 0, __pyx_n_s_NoData___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__97))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6NoData_1__init__
, 0, __pyx_n_s_NoData___init, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__97))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__62978; goto __pyx_L1_error;}
62979 __Pyx_GOTREF(__pyx_t_9);
62980 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__98);
62981 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__62981; goto __pyx_L1_error;}
62982 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62983
62984 /* "rados.pyx":391
62985 *
62986 *
62987 * class NoData(OSError): # <<<<<<<<<<<<<<
62988 * """ `NoData` class, derived from `OSError` """
62989 * def __init__(self, message, errno=None):
62990 */
62991 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_NoData, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__62991; goto __pyx_L1_error;}
62992 __Pyx_GOTREF(__pyx_t_9);
62993 if (PyDict_SetItem(__pyx_d, __pyx_n_s_NoData, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__62993; goto __pyx_L1_error;}
62994 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
62995 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
62996 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
62997 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
62998
62999 /* "rados.pyx":398
63000 *
63001 *
63002 * class ObjectExists(OSError): # <<<<<<<<<<<<<<
63003 * """ `ObjectExists` class, derived from `OSError` """
63004 * def __init__(self, message, errno=None):
63005 */
63006 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__63006; goto __pyx_L1_error;}
63007 __Pyx_GOTREF(__pyx_t_1);
63008 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__63008; goto __pyx_L1_error;}
63009 __Pyx_GOTREF(__pyx_t_7);
63010 __Pyx_GIVEREF(__pyx_t_1);
63011 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
63012 __pyx_t_1 = 0;
63013 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__63013; goto __pyx_L1_error;}
63014 __Pyx_GOTREF(__pyx_t_1);
63015 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_ObjectExists, __pyx_n_s_ObjectExists, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_ObjectExists_class_derived_from); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__63015; goto __pyx_L1_error;}
63016 __Pyx_GOTREF(__pyx_t_5);
63017
63018 /* "rados.pyx":400
63019 * class ObjectExists(OSError):
63020 * """ `ObjectExists` class, derived from `OSError` """
63021 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63022 * super(ObjectExists, self).__init__(
63023 * "RADOS object exists (%s)" % message, errno)
63024 */
63025 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_12ObjectExists_1__init__, 0, __pyx_n_s_ObjectExists___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__100))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_12ObjectExists_1__init__
, 0, __pyx_n_s_ObjectExists___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__100))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__63025; goto __pyx_L1_error;}
63026 __Pyx_GOTREF(__pyx_t_9);
63027 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__101);
63028 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__63028; goto __pyx_L1_error;}
63029 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63030
63031 /* "rados.pyx":398
63032 *
63033 *
63034 * class ObjectExists(OSError): # <<<<<<<<<<<<<<
63035 * """ `ObjectExists` class, derived from `OSError` """
63036 * def __init__(self, message, errno=None):
63037 */
63038 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_ObjectExists, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__63038; goto __pyx_L1_error;}
63039 __Pyx_GOTREF(__pyx_t_9);
63040 if (PyDict_SetItem(__pyx_d, __pyx_n_s_ObjectExists, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__63040; goto __pyx_L1_error;}
63041 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63042 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63043 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63044 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63045
63046 /* "rados.pyx":405
63047 *
63048 *
63049 * class ObjectBusy(OSError): # <<<<<<<<<<<<<<
63050 * """ `ObjectBusy` class, derived from `IOError` """
63051 * def __init__(self, message, errno=None):
63052 */
63053 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__63053; goto __pyx_L1_error;}
63054 __Pyx_GOTREF(__pyx_t_7);
63055 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__63055; goto __pyx_L1_error;}
63056 __Pyx_GOTREF(__pyx_t_1);
63057 __Pyx_GIVEREF(__pyx_t_7);
63058 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
63059 __pyx_t_7 = 0;
63060 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__63060; goto __pyx_L1_error;}
63061 __Pyx_GOTREF(__pyx_t_7);
63062 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_ObjectBusy, __pyx_n_s_ObjectBusy, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_ObjectBusy_class_derived_from_I); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__63062; goto __pyx_L1_error;}
63063 __Pyx_GOTREF(__pyx_t_5);
63064
63065 /* "rados.pyx":407
63066 * class ObjectBusy(OSError):
63067 * """ `ObjectBusy` class, derived from `IOError` """
63068 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63069 * super(ObjectBusy, self).__init__(
63070 * "RADOS object busy (%s)" % message, errno)
63071 */
63072 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_10ObjectBusy_1__init__, 0, __pyx_n_s_ObjectBusy___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__103))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_10ObjectBusy_1__init__
, 0, __pyx_n_s_ObjectBusy___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__103))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__63072; goto __pyx_L1_error;}
63073 __Pyx_GOTREF(__pyx_t_9);
63074 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__104);
63075 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__63075; goto __pyx_L1_error;}
63076 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63077
63078 /* "rados.pyx":405
63079 *
63080 *
63081 * class ObjectBusy(OSError): # <<<<<<<<<<<<<<
63082 * """ `ObjectBusy` class, derived from `IOError` """
63083 * def __init__(self, message, errno=None):
63084 */
63085 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_ObjectBusy, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__63085; goto __pyx_L1_error;}
63086 __Pyx_GOTREF(__pyx_t_9);
63087 if (PyDict_SetItem(__pyx_d, __pyx_n_s_ObjectBusy, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__63087; goto __pyx_L1_error;}
63088 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63089 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63090 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63091 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63092
63093 /* "rados.pyx":412
63094 *
63095 *
63096 * class IOError(OSError): # <<<<<<<<<<<<<<
63097 * """ `ObjectBusy` class, derived from `OSError` """
63098 * def __init__(self, message, errno=None):
63099 */
63100 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__63100; goto __pyx_L1_error;}
63101 __Pyx_GOTREF(__pyx_t_1);
63102 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__63102; goto __pyx_L1_error;}
63103 __Pyx_GOTREF(__pyx_t_7);
63104 __Pyx_GIVEREF(__pyx_t_1);
63105 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
63106 __pyx_t_1 = 0;
63107 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__63107; goto __pyx_L1_error;}
63108 __Pyx_GOTREF(__pyx_t_1);
63109 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_IOError, __pyx_n_s_IOError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_ObjectBusy_class_derived_from_O); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__63109; goto __pyx_L1_error;}
63110 __Pyx_GOTREF(__pyx_t_5);
63111
63112 /* "rados.pyx":414
63113 * class IOError(OSError):
63114 * """ `ObjectBusy` class, derived from `OSError` """
63115 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63116 * super(IOError, self).__init__(
63117 * "RADOS I/O error (%s)" % message, errno)
63118 */
63119 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_7IOError_1__init__, 0, __pyx_n_s_IOError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__106))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_7IOError_1__init__
, 0, __pyx_n_s_IOError___init, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__106))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__63119; goto __pyx_L1_error;}
63120 __Pyx_GOTREF(__pyx_t_9);
63121 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__107);
63122 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__63122; goto __pyx_L1_error;}
63123 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63124
63125 /* "rados.pyx":412
63126 *
63127 *
63128 * class IOError(OSError): # <<<<<<<<<<<<<<
63129 * """ `ObjectBusy` class, derived from `OSError` """
63130 * def __init__(self, message, errno=None):
63131 */
63132 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_IOError, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__63132; goto __pyx_L1_error;}
63133 __Pyx_GOTREF(__pyx_t_9);
63134 if (PyDict_SetItem(__pyx_d, __pyx_n_s_IOError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__63134; goto __pyx_L1_error;}
63135 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63136 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63137 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63138 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63139
63140 /* "rados.pyx":419
63141 *
63142 *
63143 * class NoSpace(OSError): # <<<<<<<<<<<<<<
63144 * """ `NoSpace` class, derived from `OSError` """
63145 * def __init__(self, message, errno=None):
63146 */
63147 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__63147; goto __pyx_L1_error;}
63148 __Pyx_GOTREF(__pyx_t_7);
63149 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__63149; goto __pyx_L1_error;}
63150 __Pyx_GOTREF(__pyx_t_1);
63151 __Pyx_GIVEREF(__pyx_t_7);
63152 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
63153 __pyx_t_7 = 0;
63154 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__63154; goto __pyx_L1_error;}
63155 __Pyx_GOTREF(__pyx_t_7);
63156 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_NoSpace, __pyx_n_s_NoSpace, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_NoSpace_class_derived_from_OSEr); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__63156; goto __pyx_L1_error;}
63157 __Pyx_GOTREF(__pyx_t_5);
63158
63159 /* "rados.pyx":421
63160 * class NoSpace(OSError):
63161 * """ `NoSpace` class, derived from `OSError` """
63162 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63163 * super(NoSpace, self).__init__(
63164 * "RADOS no space (%s)" % message, errno)
63165 */
63166 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_7NoSpace_1__init__, 0, __pyx_n_s_NoSpace___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__109))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_7NoSpace_1__init__
, 0, __pyx_n_s_NoSpace___init, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__109))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__63166; goto __pyx_L1_error;}
63167 __Pyx_GOTREF(__pyx_t_9);
63168 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__110);
63169 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__63169; goto __pyx_L1_error;}
63170 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63171
63172 /* "rados.pyx":419
63173 *
63174 *
63175 * class NoSpace(OSError): # <<<<<<<<<<<<<<
63176 * """ `NoSpace` class, derived from `OSError` """
63177 * def __init__(self, message, errno=None):
63178 */
63179 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_NoSpace, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__63179; goto __pyx_L1_error;}
63180 __Pyx_GOTREF(__pyx_t_9);
63181 if (PyDict_SetItem(__pyx_d, __pyx_n_s_NoSpace, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 419; __pyx_clineno = __LINE__63181; goto __pyx_L1_error;}
63182 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63183 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63184 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63185 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63186
63187 /* "rados.pyx":426
63188 *
63189 *
63190 * class RadosStateError(Error): # <<<<<<<<<<<<<<
63191 * """ `RadosStateError` class, derived from `Error` """
63192 * def __init__(self, message, errno=None):
63193 */
63194 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__63194; goto __pyx_L1_error;}
63195 __Pyx_GOTREF(__pyx_t_1);
63196 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__63196; goto __pyx_L1_error;}
63197 __Pyx_GOTREF(__pyx_t_7);
63198 __Pyx_GIVEREF(__pyx_t_1);
63199 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
63200 __pyx_t_1 = 0;
63201 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__63201; goto __pyx_L1_error;}
63202 __Pyx_GOTREF(__pyx_t_1);
63203 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_RadosStateError, __pyx_n_s_RadosStateError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_RadosStateError_class_derived_f); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__63203; goto __pyx_L1_error;}
63204 __Pyx_GOTREF(__pyx_t_5);
63205
63206 /* "rados.pyx":428
63207 * class RadosStateError(Error):
63208 * """ `RadosStateError` class, derived from `Error` """
63209 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63210 * super(RadosStateError, self).__init__(
63211 * "RADOS rados state (%s)" % message, errno)
63212 */
63213 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_15RadosStateError_1__init__, 0, __pyx_n_s_RadosStateError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__112))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_15RadosStateError_1__init__
, 0, __pyx_n_s_RadosStateError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__112))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__63213; goto __pyx_L1_error;}
63214 __Pyx_GOTREF(__pyx_t_9);
63215 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__113);
63216 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__63216; goto __pyx_L1_error;}
63217 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63218
63219 /* "rados.pyx":426
63220 *
63221 *
63222 * class RadosStateError(Error): # <<<<<<<<<<<<<<
63223 * """ `RadosStateError` class, derived from `Error` """
63224 * def __init__(self, message, errno=None):
63225 */
63226 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_RadosStateError, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__63226; goto __pyx_L1_error;}
63227 __Pyx_GOTREF(__pyx_t_9);
63228 if (PyDict_SetItem(__pyx_d, __pyx_n_s_RadosStateError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__63228; goto __pyx_L1_error;}
63229 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63230 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63231 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63232 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63233
63234 /* "rados.pyx":433
63235 *
63236 *
63237 * class IoctxStateError(Error): # <<<<<<<<<<<<<<
63238 * """ `IoctxStateError` class, derived from `Error` """
63239 * def __init__(self, message, errno=None):
63240 */
63241 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__63241; goto __pyx_L1_error;}
63242 __Pyx_GOTREF(__pyx_t_7);
63243 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__63243; goto __pyx_L1_error;}
63244 __Pyx_GOTREF(__pyx_t_1);
63245 __Pyx_GIVEREF(__pyx_t_7);
63246 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
63247 __pyx_t_7 = 0;
63248 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__63248; goto __pyx_L1_error;}
63249 __Pyx_GOTREF(__pyx_t_7);
63250 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_IoctxStateError, __pyx_n_s_IoctxStateError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_IoctxStateError_class_derived_f); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__63250; goto __pyx_L1_error;}
63251 __Pyx_GOTREF(__pyx_t_5);
63252
63253 /* "rados.pyx":435
63254 * class IoctxStateError(Error):
63255 * """ `IoctxStateError` class, derived from `Error` """
63256 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63257 * super(IoctxStateError, self).__init__(
63258 * "RADOS Ioctx state error (%s)" % message, errno)
63259 */
63260 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_15IoctxStateError_1__init__, 0, __pyx_n_s_IoctxStateError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__115))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_15IoctxStateError_1__init__
, 0, __pyx_n_s_IoctxStateError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__115))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__63260; goto __pyx_L1_error;}
63261 __Pyx_GOTREF(__pyx_t_9);
63262 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__116);
63263 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__63263; goto __pyx_L1_error;}
63264 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63265
63266 /* "rados.pyx":433
63267 *
63268 *
63269 * class IoctxStateError(Error): # <<<<<<<<<<<<<<
63270 * """ `IoctxStateError` class, derived from `Error` """
63271 * def __init__(self, message, errno=None):
63272 */
63273 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_IoctxStateError, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__63273; goto __pyx_L1_error;}
63274 __Pyx_GOTREF(__pyx_t_9);
63275 if (PyDict_SetItem(__pyx_d, __pyx_n_s_IoctxStateError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__63275; goto __pyx_L1_error;}
63276 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63277 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63278 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63279 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63280
63281 /* "rados.pyx":440
63282 *
63283 *
63284 * class ObjectStateError(Error): # <<<<<<<<<<<<<<
63285 * """ `ObjectStateError` class, derived from `Error` """
63286 * def __init__(self, message, errno=None):
63287 */
63288 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__63288; goto __pyx_L1_error;}
63289 __Pyx_GOTREF(__pyx_t_1);
63290 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__63290; goto __pyx_L1_error;}
63291 __Pyx_GOTREF(__pyx_t_7);
63292 __Pyx_GIVEREF(__pyx_t_1);
63293 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
63294 __pyx_t_1 = 0;
63295 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__63295; goto __pyx_L1_error;}
63296 __Pyx_GOTREF(__pyx_t_1);
63297 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_ObjectStateError, __pyx_n_s_ObjectStateError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_ObjectStateError_class_derived); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__63297; goto __pyx_L1_error;}
63298 __Pyx_GOTREF(__pyx_t_5);
63299
63300 /* "rados.pyx":442
63301 * class ObjectStateError(Error):
63302 * """ `ObjectStateError` class, derived from `Error` """
63303 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63304 * super(ObjectStateError, self).__init__(
63305 * "RADOS object state error (%s)" % message, errno)
63306 */
63307 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_16ObjectStateError_1__init__, 0, __pyx_n_s_ObjectStateError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__118))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_16ObjectStateError_1__init__
, 0, __pyx_n_s_ObjectStateError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__118))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__63307; goto __pyx_L1_error;}
63308 __Pyx_GOTREF(__pyx_t_9);
63309 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__119);
63310 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__63310; goto __pyx_L1_error;}
63311 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63312
63313 /* "rados.pyx":440
63314 *
63315 *
63316 * class ObjectStateError(Error): # <<<<<<<<<<<<<<
63317 * """ `ObjectStateError` class, derived from `Error` """
63318 * def __init__(self, message, errno=None):
63319 */
63320 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_ObjectStateError, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__63320; goto __pyx_L1_error;}
63321 __Pyx_GOTREF(__pyx_t_9);
63322 if (PyDict_SetItem(__pyx_d, __pyx_n_s_ObjectStateError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__63322; goto __pyx_L1_error;}
63323 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63324 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63325 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63326 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63327
63328 /* "rados.pyx":447
63329 *
63330 *
63331 * class LogicError(Error): # <<<<<<<<<<<<<<
63332 * """ `` class, derived from `Error` """
63333 * def __init__(self, message, errno=None):
63334 */
63335 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__63335; goto __pyx_L1_error;}
63336 __Pyx_GOTREF(__pyx_t_7);
63337 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__63337; goto __pyx_L1_error;}
63338 __Pyx_GOTREF(__pyx_t_1);
63339 __Pyx_GIVEREF(__pyx_t_7);
63340 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
63341 __pyx_t_7 = 0;
63342 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__63342; goto __pyx_L1_error;}
63343 __Pyx_GOTREF(__pyx_t_7);
63344 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_LogicError, __pyx_n_s_LogicError, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_class_derived_from_Error); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__63344; goto __pyx_L1_error;}
63345 __Pyx_GOTREF(__pyx_t_5);
63346
63347 /* "rados.pyx":449
63348 * class LogicError(Error):
63349 * """ `` class, derived from `Error` """
63350 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63351 * super(LogicError, self).__init__(
63352 * "RADOS logic error (%s)" % message, errno)
63353 */
63354 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_10LogicError_1__init__, 0, __pyx_n_s_LogicError___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__121))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_10LogicError_1__init__
, 0, __pyx_n_s_LogicError___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__121))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__63354; goto __pyx_L1_error;}
63355 __Pyx_GOTREF(__pyx_t_9);
63356 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__122);
63357 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__63357; goto __pyx_L1_error;}
63358 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63359
63360 /* "rados.pyx":447
63361 *
63362 *
63363 * class LogicError(Error): # <<<<<<<<<<<<<<
63364 * """ `` class, derived from `Error` """
63365 * def __init__(self, message, errno=None):
63366 */
63367 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_LogicError, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__63367; goto __pyx_L1_error;}
63368 __Pyx_GOTREF(__pyx_t_9);
63369 if (PyDict_SetItem(__pyx_d, __pyx_n_s_LogicError, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__63369; goto __pyx_L1_error;}
63370 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63371 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63372 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63373 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63374
63375 /* "rados.pyx":454
63376 *
63377 *
63378 * class TimedOut(OSError): # <<<<<<<<<<<<<<
63379 * """ `TimedOut` class, derived from `OSError` """
63380 * def __init__(self, message, errno=None):
63381 */
63382 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_OSError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__63382; goto __pyx_L1_error;}
63383 __Pyx_GOTREF(__pyx_t_1);
63384 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__63384; goto __pyx_L1_error;}
63385 __Pyx_GOTREF(__pyx_t_7);
63386 __Pyx_GIVEREF(__pyx_t_1);
63387 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
63388 __pyx_t_1 = 0;
63389 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__63389; goto __pyx_L1_error;}
63390 __Pyx_GOTREF(__pyx_t_1);
63391 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_TimedOut, __pyx_n_s_TimedOut, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_TimedOut_class_derived_from_OSE); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__63391; goto __pyx_L1_error;}
63392 __Pyx_GOTREF(__pyx_t_5);
63393
63394 /* "rados.pyx":456
63395 * class TimedOut(OSError):
63396 * """ `TimedOut` class, derived from `OSError` """
63397 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63398 * super(TimedOut, self).__init__(
63399 * "RADOS timed out (%s)" % message, errno)
63400 */
63401 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_8TimedOut_1__init__, 0, __pyx_n_s_TimedOut___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__124))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_8TimedOut_1__init__
, 0, __pyx_n_s_TimedOut___init, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__124))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__63401; goto __pyx_L1_error;}
63402 __Pyx_GOTREF(__pyx_t_9);
63403 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__125);
63404 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__63404; goto __pyx_L1_error;}
63405 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63406
63407 /* "rados.pyx":454
63408 *
63409 *
63410 * class TimedOut(OSError): # <<<<<<<<<<<<<<
63411 * """ `TimedOut` class, derived from `OSError` """
63412 * def __init__(self, message, errno=None):
63413 */
63414 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_TimedOut, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__63414; goto __pyx_L1_error;}
63415 __Pyx_GOTREF(__pyx_t_9);
63416 if (PyDict_SetItem(__pyx_d, __pyx_n_s_TimedOut, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__63416; goto __pyx_L1_error;}
63417 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63418 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63419 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63420 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63421
63422 /* "rados.pyx":461
63423 *
63424 *
63425 * class InProgress(Error): # <<<<<<<<<<<<<<
63426 * """ `InProgress` class, derived from `Error` """
63427 * def __init__(self, message, errno=None):
63428 */
63429 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__63429; goto __pyx_L1_error;}
63430 __Pyx_GOTREF(__pyx_t_7);
63431 __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__63431; goto __pyx_L1_error;}
63432 __Pyx_GOTREF(__pyx_t_1);
63433 __Pyx_GIVEREF(__pyx_t_7);
63434 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_7);
63435 __pyx_t_7 = 0;
63436 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__63436; goto __pyx_L1_error;}
63437 __Pyx_GOTREF(__pyx_t_7);
63438 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_1, __pyx_n_s_InProgress, __pyx_n_s_InProgress, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_InProgress_class_derived_from_E); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__63438; goto __pyx_L1_error;}
63439 __Pyx_GOTREF(__pyx_t_5);
63440
63441 /* "rados.pyx":463
63442 * class InProgress(Error):
63443 * """ `InProgress` class, derived from `Error` """
63444 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63445 * super(InProgress, self).__init__(
63446 * "RADOS in progress error (%s)" % message, errno)
63447 */
63448 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_10InProgress_1__init__, 0, __pyx_n_s_InProgress___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__127))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_10InProgress_1__init__
, 0, __pyx_n_s_InProgress___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__127))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__63448; goto __pyx_L1_error;}
63449 __Pyx_GOTREF(__pyx_t_9);
63450 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__128);
63451 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__63451; goto __pyx_L1_error;}
63452 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63453
63454 /* "rados.pyx":461
63455 *
63456 *
63457 * class InProgress(Error): # <<<<<<<<<<<<<<
63458 * """ `InProgress` class, derived from `Error` """
63459 * def __init__(self, message, errno=None):
63460 */
63461 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_InProgress, __pyx_t_1, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__63461; goto __pyx_L1_error;}
63462 __Pyx_GOTREF(__pyx_t_9);
63463 if (PyDict_SetItem(__pyx_d, __pyx_n_s_InProgress, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__63463; goto __pyx_L1_error;}
63464 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63465 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63466 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63467 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63468
63469 /* "rados.pyx":468
63470 *
63471 *
63472 * class IsConnected(Error): # <<<<<<<<<<<<<<
63473 * """ `IsConnected` class, derived from `Error` """
63474 * def __init__(self, message, errno=None):
63475 */
63476 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Error); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__63476; goto __pyx_L1_error;}
63477 __Pyx_GOTREF(__pyx_t_1);
63478 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__63478; goto __pyx_L1_error;}
63479 __Pyx_GOTREF(__pyx_t_7);
63480 __Pyx_GIVEREF(__pyx_t_1);
63481 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_t_1);
63482 __pyx_t_1 = 0;
63483 __pyx_t_1 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__63483; goto __pyx_L1_error;}
63484 __Pyx_GOTREF(__pyx_t_1);
63485 __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_t_7, __pyx_n_s_IsConnected, __pyx_n_s_IsConnected, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_IsConnected_class_derived_from); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__63485; goto __pyx_L1_error;}
63486 __Pyx_GOTREF(__pyx_t_5);
63487
63488 /* "rados.pyx":470
63489 * class IsConnected(Error):
63490 * """ `IsConnected` class, derived from `Error` """
63491 * def __init__(self, message, errno=None): # <<<<<<<<<<<<<<
63492 * super(IsConnected, self).__init__(
63493 * "RADOS is connected error (%s)" % message, errno)
63494 */
63495 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_11IsConnected_1__init__, 0, __pyx_n_s_IsConnected___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__130))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_11IsConnected_1__init__
, 0, __pyx_n_s_IsConnected___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__130))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__63495; goto __pyx_L1_error;}
63496 __Pyx_GOTREF(__pyx_t_9);
63497 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_tuple__131);
63498 if (PyObject_SetItem(__pyx_t_5, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 470; __pyx_clineno = __LINE__63498; goto __pyx_L1_error;}
63499 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63500
63501 /* "rados.pyx":468
63502 *
63503 *
63504 * class IsConnected(Error): # <<<<<<<<<<<<<<
63505 * """ `IsConnected` class, derived from `Error` """
63506 * def __init__(self, message, errno=None):
63507 */
63508 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_IsConnected, __pyx_t_7, __pyx_t_5, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__63508; goto __pyx_L1_error;}
63509 __Pyx_GOTREF(__pyx_t_9);
63510 if (PyDict_SetItem(__pyx_d, __pyx_n_s_IsConnected, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__63510; goto __pyx_L1_error;}
63511 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63512 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63513 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63514 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63515
63516 /* "rados.pyx":493
63517 * ELSE:
63518 * cdef errno_to_exception = {
63519 * errno.EPERM : PermissionError, # <<<<<<<<<<<<<<
63520 * errno.ENOENT : ObjectNotFound,
63521 * errno.EIO : IOError,
63522 */
63523 __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63523; goto __pyx_L1_error;}
63524 __Pyx_GOTREF(__pyx_t_7);
63525 __pyx_t_1 = __Pyx_PyInt_From_int(EPERM1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63525; goto __pyx_L1_error;}
63526 __Pyx_GOTREF(__pyx_t_1);
63527 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_PermissionError); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63527; goto __pyx_L1_error;}
63528 __Pyx_GOTREF(__pyx_t_5);
63529 if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63529; goto __pyx_L1_error;}
63530 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63531 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63532
63533 /* "rados.pyx":494
63534 * cdef errno_to_exception = {
63535 * errno.EPERM : PermissionError,
63536 * errno.ENOENT : ObjectNotFound, # <<<<<<<<<<<<<<
63537 * errno.EIO : IOError,
63538 * errno.ENOSPC : NoSpace,
63539 */
63540 __pyx_t_5 = __Pyx_PyInt_From_int(ENOENT2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__63540; goto __pyx_L1_error;}
63541 __Pyx_GOTREF(__pyx_t_5);
63542 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectNotFound); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__63542; goto __pyx_L1_error;}
63543 __Pyx_GOTREF(__pyx_t_1);
63544 if (PyDict_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63544; goto __pyx_L1_error;}
63545 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63546 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63547
63548 /* "rados.pyx":495
63549 * errno.EPERM : PermissionError,
63550 * errno.ENOENT : ObjectNotFound,
63551 * errno.EIO : IOError, # <<<<<<<<<<<<<<
63552 * errno.ENOSPC : NoSpace,
63553 * errno.EEXIST : ObjectExists,
63554 */
63555 __pyx_t_1 = __Pyx_PyInt_From_int(EIO5); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__63555; goto __pyx_L1_error;}
63556 __Pyx_GOTREF(__pyx_t_1);
63557 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_IOError); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__63557; goto __pyx_L1_error;}
63558 __Pyx_GOTREF(__pyx_t_5);
63559 if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63559; goto __pyx_L1_error;}
63560 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63561 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63562
63563 /* "rados.pyx":496
63564 * errno.ENOENT : ObjectNotFound,
63565 * errno.EIO : IOError,
63566 * errno.ENOSPC : NoSpace, # <<<<<<<<<<<<<<
63567 * errno.EEXIST : ObjectExists,
63568 * errno.EBUSY : ObjectBusy,
63569 */
63570 __pyx_t_5 = __Pyx_PyInt_From_int(ENOSPC28); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__63570; goto __pyx_L1_error;}
63571 __Pyx_GOTREF(__pyx_t_5);
63572 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_NoSpace); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__63572; goto __pyx_L1_error;}
63573 __Pyx_GOTREF(__pyx_t_1);
63574 if (PyDict_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63574; goto __pyx_L1_error;}
63575 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63576 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63577
63578 /* "rados.pyx":497
63579 * errno.EIO : IOError,
63580 * errno.ENOSPC : NoSpace,
63581 * errno.EEXIST : ObjectExists, # <<<<<<<<<<<<<<
63582 * errno.EBUSY : ObjectBusy,
63583 * errno.ENODATA : NoData,
63584 */
63585 __pyx_t_1 = __Pyx_PyInt_From_int(EEXIST17); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__63585; goto __pyx_L1_error;}
63586 __Pyx_GOTREF(__pyx_t_1);
63587 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectExists); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__63587; goto __pyx_L1_error;}
63588 __Pyx_GOTREF(__pyx_t_5);
63589 if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63589; goto __pyx_L1_error;}
63590 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63591 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63592
63593 /* "rados.pyx":498
63594 * errno.ENOSPC : NoSpace,
63595 * errno.EEXIST : ObjectExists,
63596 * errno.EBUSY : ObjectBusy, # <<<<<<<<<<<<<<
63597 * errno.ENODATA : NoData,
63598 * errno.EINTR : InterruptedOrTimeoutError,
63599 */
63600 __pyx_t_5 = __Pyx_PyInt_From_int(EBUSY16); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__63600; goto __pyx_L1_error;}
63601 __Pyx_GOTREF(__pyx_t_5);
63602 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_ObjectBusy); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__63602; goto __pyx_L1_error;}
63603 __Pyx_GOTREF(__pyx_t_1);
63604 if (PyDict_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63604; goto __pyx_L1_error;}
63605 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63606 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63607
63608 /* "rados.pyx":499
63609 * errno.EEXIST : ObjectExists,
63610 * errno.EBUSY : ObjectBusy,
63611 * errno.ENODATA : NoData, # <<<<<<<<<<<<<<
63612 * errno.EINTR : InterruptedOrTimeoutError,
63613 * errno.ETIMEDOUT : TimedOut,
63614 */
63615 __pyx_t_1 = __Pyx_PyInt_From_int(ENODATA61); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__63615; goto __pyx_L1_error;}
63616 __Pyx_GOTREF(__pyx_t_1);
63617 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_NoData); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__63617; goto __pyx_L1_error;}
63618 __Pyx_GOTREF(__pyx_t_5);
63619 if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63619; goto __pyx_L1_error;}
63620 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63621 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63622
63623 /* "rados.pyx":500
63624 * errno.EBUSY : ObjectBusy,
63625 * errno.ENODATA : NoData,
63626 * errno.EINTR : InterruptedOrTimeoutError, # <<<<<<<<<<<<<<
63627 * errno.ETIMEDOUT : TimedOut,
63628 * errno.EACCES : PermissionDeniedError,
63629 */
63630 __pyx_t_5 = __Pyx_PyInt_From_int(EINTR4); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__63630; goto __pyx_L1_error;}
63631 __Pyx_GOTREF(__pyx_t_5);
63632 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_InterruptedOrTimeoutError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__63632; goto __pyx_L1_error;}
63633 __Pyx_GOTREF(__pyx_t_1);
63634 if (PyDict_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63634; goto __pyx_L1_error;}
63635 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63636 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63637
63638 /* "rados.pyx":501
63639 * errno.ENODATA : NoData,
63640 * errno.EINTR : InterruptedOrTimeoutError,
63641 * errno.ETIMEDOUT : TimedOut, # <<<<<<<<<<<<<<
63642 * errno.EACCES : PermissionDeniedError,
63643 * errno.EINPROGRESS : InProgress,
63644 */
63645 __pyx_t_1 = __Pyx_PyInt_From_int(ETIMEDOUT110); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__63645; goto __pyx_L1_error;}
63646 __Pyx_GOTREF(__pyx_t_1);
63647 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_TimedOut); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__63647; goto __pyx_L1_error;}
63648 __Pyx_GOTREF(__pyx_t_5);
63649 if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63649; goto __pyx_L1_error;}
63650 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63651 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63652
63653 /* "rados.pyx":502
63654 * errno.EINTR : InterruptedOrTimeoutError,
63655 * errno.ETIMEDOUT : TimedOut,
63656 * errno.EACCES : PermissionDeniedError, # <<<<<<<<<<<<<<
63657 * errno.EINPROGRESS : InProgress,
63658 * errno.EISCONN : IsConnected,
63659 */
63660 __pyx_t_5 = __Pyx_PyInt_From_int(EACCES13); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__63660; goto __pyx_L1_error;}
63661 __Pyx_GOTREF(__pyx_t_5);
63662 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_PermissionDeniedError); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__63662; goto __pyx_L1_error;}
63663 __Pyx_GOTREF(__pyx_t_1);
63664 if (PyDict_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63664; goto __pyx_L1_error;}
63665 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63666 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63667
63668 /* "rados.pyx":503
63669 * errno.ETIMEDOUT : TimedOut,
63670 * errno.EACCES : PermissionDeniedError,
63671 * errno.EINPROGRESS : InProgress, # <<<<<<<<<<<<<<
63672 * errno.EISCONN : IsConnected,
63673 * errno.EINVAL : InvalidArgumentError,
63674 */
63675 __pyx_t_1 = __Pyx_PyInt_From_int(EINPROGRESS115); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__63675; goto __pyx_L1_error;}
63676 __Pyx_GOTREF(__pyx_t_1);
63677 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_InProgress); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__63677; goto __pyx_L1_error;}
63678 __Pyx_GOTREF(__pyx_t_5);
63679 if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63679; goto __pyx_L1_error;}
63680 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63681 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63682
63683 /* "rados.pyx":504
63684 * errno.EACCES : PermissionDeniedError,
63685 * errno.EINPROGRESS : InProgress,
63686 * errno.EISCONN : IsConnected, # <<<<<<<<<<<<<<
63687 * errno.EINVAL : InvalidArgumentError,
63688 * }
63689 */
63690 __pyx_t_5 = __Pyx_PyInt_From_int(EISCONN106); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__63690; goto __pyx_L1_error;}
63691 __Pyx_GOTREF(__pyx_t_5);
63692 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_IsConnected); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__63692; goto __pyx_L1_error;}
63693 __Pyx_GOTREF(__pyx_t_1);
63694 if (PyDict_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63694; goto __pyx_L1_error;}
63695 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63696 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63697
63698 /* "rados.pyx":505
63699 * errno.EINPROGRESS : InProgress,
63700 * errno.EISCONN : IsConnected,
63701 * errno.EINVAL : InvalidArgumentError, # <<<<<<<<<<<<<<
63702 * }
63703 *
63704 */
63705 __pyx_t_1 = __Pyx_PyInt_From_int(EINVAL22); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__63705; goto __pyx_L1_error;}
63706 __Pyx_GOTREF(__pyx_t_1);
63707 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_InvalidArgumentError); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__63707; goto __pyx_L1_error;}
63708 __Pyx_GOTREF(__pyx_t_5);
63709 if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__63709; goto __pyx_L1_error;}
63710 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63711 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63712 __Pyx_XGOTREF(__pyx_v_5rados_errno_to_exception);
63713 __Pyx_DECREF_SET(__pyx_v_5rados_errno_to_exception, __pyx_t_7)do { PyObject *tmp = (PyObject *) __pyx_v_5rados_errno_to_exception
; __pyx_v_5rados_errno_to_exception = __pyx_t_7; do { if ( --
((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp)))); } while (0); } while (0)
;
63714 __Pyx_GIVEREF(__pyx_t_7);
63715 __pyx_t_7 = 0;
63716
63717 /* "rados.pyx":528
63718 * # helper to specify an optional argument, where in addition to `cls`, `None`
63719 * # is also acceptable
63720 * def opt(cls): # <<<<<<<<<<<<<<
63721 * return (cls, None)
63722 *
63723 */
63724 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_1opt, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__63724; goto __pyx_L1_error;}
63725 __Pyx_GOTREF(__pyx_t_7);
63726 if (PyDict_SetItem(__pyx_d, __pyx_n_s_opt, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__63726; goto __pyx_L1_error;}
63727 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63728
63729 /* "rados.pyx":534
63730 * # validate argument types of an instance method
63731 * # kwargs is an un-ordered dict, so use args instead
63732 * def requires(*types): # <<<<<<<<<<<<<<
63733 * def is_type_of(v, t):
63734 * if t is None:
63735 */
63736 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_3requires, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__63736; goto __pyx_L1_error;}
63737 __Pyx_GOTREF(__pyx_t_7);
63738 if (PyDict_SetItem(__pyx_d, __pyx_n_s_requires, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__63738; goto __pyx_L1_error;}
63739 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63740
63741 /* "rados.pyx":570
63742 *
63743 *
63744 * def cstr(val, name, encoding="utf-8", opt=False): # <<<<<<<<<<<<<<
63745 * """
63746 * Create a byte string from a Python string
63747 */
63748 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_5cstr, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__63748; goto __pyx_L1_error;}
63749 __Pyx_GOTREF(__pyx_t_7);
63750 if (PyDict_SetItem(__pyx_d, __pyx_n_s_cstr, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__63750; goto __pyx_L1_error;}
63751 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63752
63753 /* "rados.pyx":591
63754 *
63755 *
63756 * def cstr_list(list_str, name, encoding="utf-8"): # <<<<<<<<<<<<<<
63757 * return [cstr(s, name) for s in list_str]
63758 *
63759 */
63760 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_7cstr_list, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__63760; goto __pyx_L1_error;}
63761 __Pyx_GOTREF(__pyx_t_7);
63762 if (PyDict_SetItem(__pyx_d, __pyx_n_s_cstr_list, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 591; __pyx_clineno = __LINE__63762; goto __pyx_L1_error;}
63763 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63764
63765 /* "rados.pyx":595
63766 *
63767 *
63768 * def decode_cstr(val, encoding="utf-8"): # <<<<<<<<<<<<<<
63769 * """
63770 * Decode a byte string into a Python string.
63771 */
63772 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_9decode_cstr, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__63772; goto __pyx_L1_error;}
63773 __Pyx_GOTREF(__pyx_t_7);
63774 if (PyDict_SetItem(__pyx_d, __pyx_n_s_decode_cstr, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 595; __pyx_clineno = __LINE__63774; goto __pyx_L1_error;}
63775 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63776
63777 /* "rados.pyx":608
63778 *
63779 *
63780 * def flatten_dict(d, name): # <<<<<<<<<<<<<<
63781 * items = chain.from_iterable(d.items())
63782 * return cstr(''.join(i + '\0' for i in items), name)
63783 */
63784 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_11flatten_dict, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__63784; goto __pyx_L1_error;}
63785 __Pyx_GOTREF(__pyx_t_7);
63786 if (PyDict_SetItem(__pyx_d, __pyx_n_s_flatten_dict, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__63786; goto __pyx_L1_error;}
63787 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63788
63789 /* "rados.pyx":662
63790 *
63791 *
63792 * class Version(object): # <<<<<<<<<<<<<<
63793 * """ Version information """
63794 * def __init__(self, major, minor, extra):
63795 */
63796 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__63796; goto __pyx_L1_error;}
63797 __Pyx_GOTREF(__pyx_t_7);
63798 __Pyx_INCREF(__pyx_builtin_object)( ((PyObject*)(__pyx_builtin_object))->ob_refcnt++);
63799 __Pyx_GIVEREF(__pyx_builtin_object);
63800 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_builtin_object
)
;
63801 __pyx_t_5 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__63801; goto __pyx_L1_error;}
63802 __Pyx_GOTREF(__pyx_t_5);
63803 __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_7, __pyx_n_s_Version, __pyx_n_s_Version, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_Version_information); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__63803; goto __pyx_L1_error;}
63804 __Pyx_GOTREF(__pyx_t_1);
63805
63806 /* "rados.pyx":664
63807 * class Version(object):
63808 * """ Version information """
63809 * def __init__(self, major, minor, extra): # <<<<<<<<<<<<<<
63810 * self.major = major
63811 * self.minor = minor
63812 */
63813 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_7Version_1__init__, 0, __pyx_n_s_Version___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__145))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_7Version_1__init__
, 0, __pyx_n_s_Version___init, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__145))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__63813; goto __pyx_L1_error;}
63814 __Pyx_GOTREF(__pyx_t_9);
63815 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_init, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__63815; goto __pyx_L1_error;}
63816 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63817
63818 /* "rados.pyx":669
63819 * self.extra = extra
63820 *
63821 * def __str__(self): # <<<<<<<<<<<<<<
63822 * return "%d.%d.%d" % (self.major, self.minor, self.extra)
63823 *
63824 */
63825 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_7Version_3__str__, 0, __pyx_n_s_Version___str, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__147))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_7Version_3__str__
, 0, __pyx_n_s_Version___str, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__147))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__63825; goto __pyx_L1_error;}
63826 __Pyx_GOTREF(__pyx_t_9);
63827 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_str, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__63827; goto __pyx_L1_error;}
63828 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63829
63830 /* "rados.pyx":662
63831 *
63832 *
63833 * class Version(object): # <<<<<<<<<<<<<<
63834 * """ Version information """
63835 * def __init__(self, major, minor, extra):
63836 */
63837 __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_n_s_Version, __pyx_t_7, __pyx_t_1, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__63837; goto __pyx_L1_error;}
63838 __Pyx_GOTREF(__pyx_t_9);
63839 if (PyDict_SetItem(__pyx_d, __pyx_n_s_Version, __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__63839; goto __pyx_L1_error;}
63840 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
63841 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
63842 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
63843 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
63844
63845 /* "rados.pyx":681
63846 * self.__setup(*args, **kwargs)
63847 *
63848 * @requires(('rados_id', opt(str_type)), ('name', opt(str_type)), ('clustername', opt(str_type)), # <<<<<<<<<<<<<<
63849 * ('conffile', opt(str_type)))
63850 * def __setup(self, rados_id=None, name=None, clustername=None,
63851 */
63852 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63852; goto __pyx_L1_error;}
63853 __Pyx_GOTREF(__pyx_t_1);
63854 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63854; goto __pyx_L1_error;}
63855 __Pyx_GOTREF(__pyx_t_8);
63856 __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63856; goto __pyx_L1_error;}
63857 __Pyx_GOTREF(__pyx_t_11);
63858 __pyx_t_12 = NULL((void*)0);
63859 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
63860 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
63861 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
63862 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
63863 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
63864 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
63865 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
63866 }
63867 }
63868 if (!__pyx_t_12) {
63869 __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63869; goto __pyx_L1_error;}
63870 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
63871 __Pyx_GOTREF(__pyx_t_9);
63872 } else {
63873 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63873; goto __pyx_L1_error;}
63874 __Pyx_GOTREF(__pyx_t_13);
63875 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
63876 __Pyx_GIVEREF(__pyx_t_11);
63877 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_11)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_11
)
;
63878 __pyx_t_11 = 0;
63879 __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63879; goto __pyx_L1_error;}
63880 __Pyx_GOTREF(__pyx_t_9);
63881 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
63882 }
63883 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
63884 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63884; goto __pyx_L1_error;}
63885 __Pyx_GOTREF(__pyx_t_8);
63886 __Pyx_INCREF(__pyx_n_s_rados_id)( ((PyObject*)(__pyx_n_s_rados_id))->ob_refcnt++);
63887 __Pyx_GIVEREF(__pyx_n_s_rados_id);
63888 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_rados_id)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_rados_id
)
;
63889 __Pyx_GIVEREF(__pyx_t_9);
63890 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_9);
63891 __pyx_t_9 = 0;
63892 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63892; goto __pyx_L1_error;}
63893 __Pyx_GOTREF(__pyx_t_13);
63894 __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63894; goto __pyx_L1_error;}
63895 __Pyx_GOTREF(__pyx_t_11);
63896 __pyx_t_12 = NULL((void*)0);
63897 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
63898 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
63899 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
63900 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
63901 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
63902 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
63903 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
63904 }
63905 }
63906 if (!__pyx_t_12) {
63907 __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_11); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63907; goto __pyx_L1_error;}
63908 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
63909 __Pyx_GOTREF(__pyx_t_9);
63910 } else {
63911 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63911; goto __pyx_L1_error;}
63912 __Pyx_GOTREF(__pyx_t_14);
63913 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
63914 __Pyx_GIVEREF(__pyx_t_11);
63915 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_11)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_11
)
;
63916 __pyx_t_11 = 0;
63917 __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63917; goto __pyx_L1_error;}
63918 __Pyx_GOTREF(__pyx_t_9);
63919 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
63920 }
63921 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
63922 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63922; goto __pyx_L1_error;}
63923 __Pyx_GOTREF(__pyx_t_13);
63924 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
63925 __Pyx_GIVEREF(__pyx_n_s_name_2);
63926 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_name_2
)
;
63927 __Pyx_GIVEREF(__pyx_t_9);
63928 PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = __pyx_t_9);
63929 __pyx_t_9 = 0;
63930 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63930; goto __pyx_L1_error;}
63931 __Pyx_GOTREF(__pyx_t_14);
63932 __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63932; goto __pyx_L1_error;}
63933 __Pyx_GOTREF(__pyx_t_11);
63934 __pyx_t_12 = NULL((void*)0);
63935 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
63936 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
63937 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
63938 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
63939 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
63940 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
63941 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
63942 }
63943 }
63944 if (!__pyx_t_12) {
63945 __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_11); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63945; goto __pyx_L1_error;}
63946 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
63947 __Pyx_GOTREF(__pyx_t_9);
63948 } else {
63949 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63949; goto __pyx_L1_error;}
63950 __Pyx_GOTREF(__pyx_t_15);
63951 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
63952 __Pyx_GIVEREF(__pyx_t_11);
63953 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_11)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_11
)
;
63954 __pyx_t_11 = 0;
63955 __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63955; goto __pyx_L1_error;}
63956 __Pyx_GOTREF(__pyx_t_9);
63957 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
63958 }
63959 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
63960 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__63960; goto __pyx_L1_error;}
63961 __Pyx_GOTREF(__pyx_t_14);
63962 __Pyx_INCREF(__pyx_n_s_clustername)( ((PyObject*)(__pyx_n_s_clustername))->ob_refcnt++);
63963 __Pyx_GIVEREF(__pyx_n_s_clustername);
63964 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_clustername)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_clustername
)
;
63965 __Pyx_GIVEREF(__pyx_t_9);
63966 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_9);
63967 __pyx_t_9 = 0;
63968
63969 /* "rados.pyx":682
63970 *
63971 * @requires(('rados_id', opt(str_type)), ('name', opt(str_type)), ('clustername', opt(str_type)),
63972 * ('conffile', opt(str_type))) # <<<<<<<<<<<<<<
63973 * def __setup(self, rados_id=None, name=None, clustername=None,
63974 * conf_defaults=None, conffile=None, conf=None, flags=0,
63975 */
63976 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__63976; goto __pyx_L1_error;}
63977 __Pyx_GOTREF(__pyx_t_15);
63978 __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_11)__builtin_expect(!!(!__pyx_t_11), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__63978; goto __pyx_L1_error;}
63979 __Pyx_GOTREF(__pyx_t_11);
63980 __pyx_t_12 = NULL((void*)0);
63981 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
63982 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
63983 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
63984 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
63985 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
63986 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
63987 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
63988 }
63989 }
63990 if (!__pyx_t_12) {
63991 __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_11); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__63991; goto __pyx_L1_error;}
63992 __Pyx_DECREF(__pyx_t_11)do { if ( --((PyObject*)(__pyx_t_11))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_11)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_11)))); } while
(0)
; __pyx_t_11 = 0;
63993 __Pyx_GOTREF(__pyx_t_9);
63994 } else {
63995 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__63995; goto __pyx_L1_error;}
63996 __Pyx_GOTREF(__pyx_t_16);
63997 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
63998 __Pyx_GIVEREF(__pyx_t_11);
63999 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_11)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_11
)
;
64000 __pyx_t_11 = 0;
64001 __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__64001; goto __pyx_L1_error;}
64002 __Pyx_GOTREF(__pyx_t_9);
64003 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
64004 }
64005 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64006 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__64006; goto __pyx_L1_error;}
64007 __Pyx_GOTREF(__pyx_t_15);
64008 __Pyx_INCREF(__pyx_n_s_conffile)( ((PyObject*)(__pyx_n_s_conffile))->ob_refcnt++);
64009 __Pyx_GIVEREF(__pyx_n_s_conffile);
64010 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_conffile)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_conffile
)
;
64011 __Pyx_GIVEREF(__pyx_t_9);
64012 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_9);
64013 __pyx_t_9 = 0;
64014 __pyx_t_9 = NULL((void*)0);
64015 __pyx_t_17 = 0;
64016 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
64017 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
64018 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
64019 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
64020 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
64021 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64022 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64023 __pyx_t_17 = 1;
64024 }
64025 }
64026 __pyx_t_16 = PyTuple_New(4+__pyx_t_17); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__64026; goto __pyx_L1_error;}
64027 __Pyx_GOTREF(__pyx_t_16);
64028 if (__pyx_t_9) {
64029 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
64030 }
64031 __Pyx_GIVEREF(__pyx_t_8);
64032 PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+__pyx_t_17] = __pyx_t_8
)
;
64033 __Pyx_GIVEREF(__pyx_t_13);
64034 PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[1+__pyx_t_17] = __pyx_t_13
)
;
64035 __Pyx_GIVEREF(__pyx_t_14);
64036 PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_16))->ob_item[2+__pyx_t_17] = __pyx_t_14
)
;
64037 __Pyx_GIVEREF(__pyx_t_15);
64038 PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_16))->ob_item[3+__pyx_t_17] = __pyx_t_15
)
;
64039 __pyx_t_8 = 0;
64040 __pyx_t_13 = 0;
64041 __pyx_t_14 = 0;
64042 __pyx_t_15 = 0;
64043 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__64043; goto __pyx_L1_error;}
64044 __Pyx_GOTREF(__pyx_t_5);
64045 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
64046 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64047
64048 /* "rados.pyx":683
64049 * @requires(('rados_id', opt(str_type)), ('name', opt(str_type)), ('clustername', opt(str_type)),
64050 * ('conffile', opt(str_type)))
64051 * def __setup(self, rados_id=None, name=None, clustername=None, # <<<<<<<<<<<<<<
64052 * conf_defaults=None, conffile=None, conf=None, flags=0,
64053 * context=None):
64054 */
64055 __pyx_t_1 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_setup); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__64055; goto __pyx_L1_error;}
64056 __Pyx_GOTREF(__pyx_t_1);
64057 __pyx_t_16 = NULL((void*)0);
64058 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64059 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64060 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
64061 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64062 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
64063 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64064 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64065 }
64066 }
64067 if (!__pyx_t_16) {
64068 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__64068; goto __pyx_L1_error;}
64069 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64070 __Pyx_GOTREF(__pyx_t_7);
64071 } else {
64072 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__64072; goto __pyx_L1_error;}
64073 __Pyx_GOTREF(__pyx_t_15);
64074 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
64075 __Pyx_GIVEREF(__pyx_t_1);
64076 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_1
)
;
64077 __pyx_t_1 = 0;
64078 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 681; __pyx_clineno = __LINE__64078; goto __pyx_L1_error;}
64079 __Pyx_GOTREF(__pyx_t_7);
64080 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64081 }
64082 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64083 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_setup, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__64083; goto __pyx_L1_error;}
64084 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64085 PyType_Modified(__pyx_ptype_5rados_Rados);
64086
64087 /* "rados.pyx":778
64088 * return Version(major, minor, extra)
64089 *
64090 * @requires(('path', opt(str_type))) # <<<<<<<<<<<<<<
64091 * def conf_read_file(self, path=None):
64092 * """
64093 */
64094 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64094; goto __pyx_L1_error;}
64095 __Pyx_GOTREF(__pyx_t_15);
64096 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64096; goto __pyx_L1_error;}
64097 __Pyx_GOTREF(__pyx_t_16);
64098 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64098; goto __pyx_L1_error;}
64099 __Pyx_GOTREF(__pyx_t_14);
64100 __pyx_t_13 = NULL((void*)0);
64101 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_16))__builtin_expect(!!(((__pyx_t_16)->ob_type == &PyMethod_Type
)), 0)
) {
64102 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_self);
64103 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
64104 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_func);
64105 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
64106 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64107 __Pyx_DECREF_SET(__pyx_t_16, function)do { PyObject *tmp = (PyObject *) __pyx_t_16; __pyx_t_16 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64108 }
64109 }
64110 if (!__pyx_t_13) {
64111 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_14); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64111; goto __pyx_L1_error;}
64112 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64113 __Pyx_GOTREF(__pyx_t_1);
64114 } else {
64115 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64115; goto __pyx_L1_error;}
64116 __Pyx_GOTREF(__pyx_t_8);
64117 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
64118 __Pyx_GIVEREF(__pyx_t_14);
64119 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
64120 __pyx_t_14 = 0;
64121 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64121; goto __pyx_L1_error;}
64122 __Pyx_GOTREF(__pyx_t_1);
64123 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64124 }
64125 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
64126 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64126; goto __pyx_L1_error;}
64127 __Pyx_GOTREF(__pyx_t_16);
64128 __Pyx_INCREF(__pyx_n_s_path)( ((PyObject*)(__pyx_n_s_path))->ob_refcnt++);
64129 __Pyx_GIVEREF(__pyx_n_s_path);
64130 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_path)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_path
)
;
64131 __Pyx_GIVEREF(__pyx_t_1);
64132 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_1);
64133 __pyx_t_1 = 0;
64134 __pyx_t_1 = NULL((void*)0);
64135 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
64136 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
64137 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
64138 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
64139 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
64140 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64141 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64142 }
64143 }
64144 if (!__pyx_t_1) {
64145 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_16); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64145; goto __pyx_L1_error;}
64146 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
64147 __Pyx_GOTREF(__pyx_t_5);
64148 } else {
64149 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64149; goto __pyx_L1_error;}
64150 __Pyx_GOTREF(__pyx_t_8);
64151 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
64152 __Pyx_GIVEREF(__pyx_t_16);
64153 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_16
)
;
64154 __pyx_t_16 = 0;
64155 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64155; goto __pyx_L1_error;}
64156 __Pyx_GOTREF(__pyx_t_5);
64157 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64158 }
64159 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64160
64161 /* "rados.pyx":779
64162 *
64163 * @requires(('path', opt(str_type)))
64164 * def conf_read_file(self, path=None): # <<<<<<<<<<<<<<
64165 * """
64166 * Configure the cluster handle using a Ceph config file.
64167 */
64168 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_conf_read_file); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__64168; goto __pyx_L1_error;}
64169 __Pyx_GOTREF(__pyx_t_15);
64170 __pyx_t_8 = NULL((void*)0);
64171 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64172 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64173 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
64174 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64175 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
64176 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64177 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64178 }
64179 }
64180 if (!__pyx_t_8) {
64181 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64181; goto __pyx_L1_error;}
64182 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64183 __Pyx_GOTREF(__pyx_t_7);
64184 } else {
64185 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64185; goto __pyx_L1_error;}
64186 __Pyx_GOTREF(__pyx_t_16);
64187 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
64188 __Pyx_GIVEREF(__pyx_t_15);
64189 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_15
)
;
64190 __pyx_t_15 = 0;
64191 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__64191; goto __pyx_L1_error;}
64192 __Pyx_GOTREF(__pyx_t_7);
64193 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
64194 }
64195 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64196 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_conf_read_file, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 779; __pyx_clineno = __LINE__64196; goto __pyx_L1_error;}
64197 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64198 PyType_Modified(__pyx_ptype_5rados_Rados);
64199
64200 /* "rados.pyx":846
64201 * raise make_ex(ret, "error calling conf_parse_env")
64202 *
64203 * @requires(('option', str_type)) # <<<<<<<<<<<<<<
64204 * def conf_get(self, option):
64205 * """
64206 */
64207 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64207; goto __pyx_L1_error;}
64208 __Pyx_GOTREF(__pyx_t_16);
64209 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64209; goto __pyx_L1_error;}
64210 __Pyx_GOTREF(__pyx_t_15);
64211 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64211; goto __pyx_L1_error;}
64212 __Pyx_GOTREF(__pyx_t_8);
64213 __Pyx_INCREF(__pyx_n_s_option)( ((PyObject*)(__pyx_n_s_option))->ob_refcnt++);
64214 __Pyx_GIVEREF(__pyx_n_s_option);
64215 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_option)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_option
)
;
64216 __Pyx_GIVEREF(__pyx_t_15);
64217 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_15);
64218 __pyx_t_15 = 0;
64219 __pyx_t_15 = NULL((void*)0);
64220 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_16))__builtin_expect(!!(((__pyx_t_16)->ob_type == &PyMethod_Type
)), 0)
) {
64221 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_self);
64222 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
64223 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_func);
64224 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
64225 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64226 __Pyx_DECREF_SET(__pyx_t_16, function)do { PyObject *tmp = (PyObject *) __pyx_t_16; __pyx_t_16 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64227 }
64228 }
64229 if (!__pyx_t_15) {
64230 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_8); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64230; goto __pyx_L1_error;}
64231 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64232 __Pyx_GOTREF(__pyx_t_5);
64233 } else {
64234 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64234; goto __pyx_L1_error;}
64235 __Pyx_GOTREF(__pyx_t_1);
64236 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
64237 __Pyx_GIVEREF(__pyx_t_8);
64238 PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = __pyx_t_8);
64239 __pyx_t_8 = 0;
64240 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64240; goto __pyx_L1_error;}
64241 __Pyx_GOTREF(__pyx_t_5);
64242 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64243 }
64244 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
64245
64246 /* "rados.pyx":847
64247 *
64248 * @requires(('option', str_type))
64249 * def conf_get(self, option): # <<<<<<<<<<<<<<
64250 * """
64251 * Get the value of a configuration option
64252 */
64253 __pyx_t_16 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_conf_get); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__64253; goto __pyx_L1_error;}
64254 __Pyx_GOTREF(__pyx_t_16);
64255 __pyx_t_1 = NULL((void*)0);
64256 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64257 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64258 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
64259 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64260 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
64261 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64262 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64263 }
64264 }
64265 if (!__pyx_t_1) {
64266 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_16); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64266; goto __pyx_L1_error;}
64267 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
64268 __Pyx_GOTREF(__pyx_t_7);
64269 } else {
64270 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64270; goto __pyx_L1_error;}
64271 __Pyx_GOTREF(__pyx_t_8);
64272 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
64273 __Pyx_GIVEREF(__pyx_t_16);
64274 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_16
)
;
64275 __pyx_t_16 = 0;
64276 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__64276; goto __pyx_L1_error;}
64277 __Pyx_GOTREF(__pyx_t_7);
64278 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64279 }
64280 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64281 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_conf_get, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__64281; goto __pyx_L1_error;}
64282 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64283 PyType_Modified(__pyx_ptype_5rados_Rados);
64284
64285 /* "rados.pyx":880
64286 * free(ret_buf)
64287 *
64288 * @requires(('option', str_type), ('val', str_type)) # <<<<<<<<<<<<<<
64289 * def conf_set(self, option, val):
64290 * """
64291 */
64292 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64292; goto __pyx_L1_error;}
64293 __Pyx_GOTREF(__pyx_t_8);
64294 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64294; goto __pyx_L1_error;}
64295 __Pyx_GOTREF(__pyx_t_16);
64296 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64296; goto __pyx_L1_error;}
64297 __Pyx_GOTREF(__pyx_t_1);
64298 __Pyx_INCREF(__pyx_n_s_option)( ((PyObject*)(__pyx_n_s_option))->ob_refcnt++);
64299 __Pyx_GIVEREF(__pyx_n_s_option);
64300 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_option)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_option
)
;
64301 __Pyx_GIVEREF(__pyx_t_16);
64302 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_16);
64303 __pyx_t_16 = 0;
64304 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64304; goto __pyx_L1_error;}
64305 __Pyx_GOTREF(__pyx_t_16);
64306 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64306; goto __pyx_L1_error;}
64307 __Pyx_GOTREF(__pyx_t_15);
64308 __Pyx_INCREF(__pyx_n_s_val)( ((PyObject*)(__pyx_n_s_val))->ob_refcnt++);
64309 __Pyx_GIVEREF(__pyx_n_s_val);
64310 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_val)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_val
)
;
64311 __Pyx_GIVEREF(__pyx_t_16);
64312 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_16);
64313 __pyx_t_16 = 0;
64314 __pyx_t_16 = NULL((void*)0);
64315 __pyx_t_17 = 0;
64316 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
64317 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
64318 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
64319 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
64320 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
64321 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64322 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64323 __pyx_t_17 = 1;
64324 }
64325 }
64326 __pyx_t_14 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64326; goto __pyx_L1_error;}
64327 __Pyx_GOTREF(__pyx_t_14);
64328 if (__pyx_t_16) {
64329 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
64330 }
64331 __Pyx_GIVEREF(__pyx_t_1);
64332 PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+__pyx_t_17] = __pyx_t_1
)
;
64333 __Pyx_GIVEREF(__pyx_t_15);
64334 PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[1+__pyx_t_17] = __pyx_t_15
)
;
64335 __pyx_t_1 = 0;
64336 __pyx_t_15 = 0;
64337 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64337; goto __pyx_L1_error;}
64338 __Pyx_GOTREF(__pyx_t_5);
64339 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64340 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64341
64342 /* "rados.pyx":881
64343 *
64344 * @requires(('option', str_type), ('val', str_type))
64345 * def conf_set(self, option, val): # <<<<<<<<<<<<<<
64346 * """
64347 * Set the value of a configuration option
64348 */
64349 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_conf_set); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__64349; goto __pyx_L1_error;}
64350 __Pyx_GOTREF(__pyx_t_8);
64351 __pyx_t_14 = NULL((void*)0);
64352 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64353 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64354 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
64355 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64356 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
64357 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64358 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64359 }
64360 }
64361 if (!__pyx_t_14) {
64362 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64362; goto __pyx_L1_error;}
64363 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64364 __Pyx_GOTREF(__pyx_t_7);
64365 } else {
64366 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64366; goto __pyx_L1_error;}
64367 __Pyx_GOTREF(__pyx_t_15);
64368 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
64369 __Pyx_GIVEREF(__pyx_t_8);
64370 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_8
)
;
64371 __pyx_t_8 = 0;
64372 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__64372; goto __pyx_L1_error;}
64373 __Pyx_GOTREF(__pyx_t_7);
64374 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64375 }
64376 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64377 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_conf_set, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__64377; goto __pyx_L1_error;}
64378 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64379 PyType_Modified(__pyx_ptype_5rados_Rados);
64380
64381 /* "rados.pyx":992
64382 * 'num_objects': stats.num_objects}
64383 *
64384 * @requires(('pool_name', str_type)) # <<<<<<<<<<<<<<
64385 * def pool_exists(self, pool_name):
64386 * """
64387 */
64388 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64388; goto __pyx_L1_error;}
64389 __Pyx_GOTREF(__pyx_t_15);
64390 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64390; goto __pyx_L1_error;}
64391 __Pyx_GOTREF(__pyx_t_8);
64392 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64392; goto __pyx_L1_error;}
64393 __Pyx_GOTREF(__pyx_t_14);
64394 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
64395 __Pyx_GIVEREF(__pyx_n_s_pool_name);
64396 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_pool_name
)
;
64397 __Pyx_GIVEREF(__pyx_t_8);
64398 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_8);
64399 __pyx_t_8 = 0;
64400 __pyx_t_8 = NULL((void*)0);
64401 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
64402 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
64403 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
64404 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
64405 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
64406 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64407 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64408 }
64409 }
64410 if (!__pyx_t_8) {
64411 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64411; goto __pyx_L1_error;}
64412 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64413 __Pyx_GOTREF(__pyx_t_5);
64414 } else {
64415 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64415; goto __pyx_L1_error;}
64416 __Pyx_GOTREF(__pyx_t_1);
64417 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
64418 __Pyx_GIVEREF(__pyx_t_14);
64419 PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = __pyx_t_14
)
;
64420 __pyx_t_14 = 0;
64421 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64421; goto __pyx_L1_error;}
64422 __Pyx_GOTREF(__pyx_t_5);
64423 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64424 }
64425 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64426
64427 /* "rados.pyx":993
64428 *
64429 * @requires(('pool_name', str_type))
64430 * def pool_exists(self, pool_name): # <<<<<<<<<<<<<<
64431 * """
64432 * Checks if a given pool exists.
64433 */
64434 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_pool_exists); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__64434; goto __pyx_L1_error;}
64435 __Pyx_GOTREF(__pyx_t_15);
64436 __pyx_t_1 = NULL((void*)0);
64437 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64438 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64439 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
64440 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64441 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
64442 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64443 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64444 }
64445 }
64446 if (!__pyx_t_1) {
64447 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64447; goto __pyx_L1_error;}
64448 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64449 __Pyx_GOTREF(__pyx_t_7);
64450 } else {
64451 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64451; goto __pyx_L1_error;}
64452 __Pyx_GOTREF(__pyx_t_14);
64453 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
64454 __Pyx_GIVEREF(__pyx_t_15);
64455 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_15
)
;
64456 __pyx_t_15 = 0;
64457 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__64457; goto __pyx_L1_error;}
64458 __Pyx_GOTREF(__pyx_t_7);
64459 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64460 }
64461 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64462 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_pool_exists, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__64462; goto __pyx_L1_error;}
64463 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64464 PyType_Modified(__pyx_ptype_5rados_Rados);
64465
64466 /* "rados.pyx":1018
64467 * raise make_ex(ret, "error looking up pool '%s'" % pool_name)
64468 *
64469 * @requires(('pool_name', str_type)) # <<<<<<<<<<<<<<
64470 * def pool_lookup(self, pool_name):
64471 * """
64472 */
64473 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64473; goto __pyx_L1_error;}
64474 __Pyx_GOTREF(__pyx_t_14);
64475 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64475; goto __pyx_L1_error;}
64476 __Pyx_GOTREF(__pyx_t_15);
64477 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64477; goto __pyx_L1_error;}
64478 __Pyx_GOTREF(__pyx_t_1);
64479 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
64480 __Pyx_GIVEREF(__pyx_n_s_pool_name);
64481 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_pool_name
)
;
64482 __Pyx_GIVEREF(__pyx_t_15);
64483 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_15);
64484 __pyx_t_15 = 0;
64485 __pyx_t_15 = NULL((void*)0);
64486 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
64487 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
64488 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
64489 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
64490 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
64491 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64492 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64493 }
64494 }
64495 if (!__pyx_t_15) {
64496 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_1); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64496; goto __pyx_L1_error;}
64497 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64498 __Pyx_GOTREF(__pyx_t_5);
64499 } else {
64500 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64500; goto __pyx_L1_error;}
64501 __Pyx_GOTREF(__pyx_t_8);
64502 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
64503 __Pyx_GIVEREF(__pyx_t_1);
64504 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_1);
64505 __pyx_t_1 = 0;
64506 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64506; goto __pyx_L1_error;}
64507 __Pyx_GOTREF(__pyx_t_5);
64508 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64509 }
64510 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64511
64512 /* "rados.pyx":1019
64513 *
64514 * @requires(('pool_name', str_type))
64515 * def pool_lookup(self, pool_name): # <<<<<<<<<<<<<<
64516 * """
64517 * Returns a pool's ID based on its name.
64518 */
64519 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_pool_lookup); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; __pyx_clineno = __LINE__64519; goto __pyx_L1_error;}
64520 __Pyx_GOTREF(__pyx_t_14);
64521 __pyx_t_8 = NULL((void*)0);
64522 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64523 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64524 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
64525 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64526 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
64527 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64528 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64529 }
64530 }
64531 if (!__pyx_t_8) {
64532 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64532; goto __pyx_L1_error;}
64533 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64534 __Pyx_GOTREF(__pyx_t_7);
64535 } else {
64536 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64536; goto __pyx_L1_error;}
64537 __Pyx_GOTREF(__pyx_t_1);
64538 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
64539 __Pyx_GIVEREF(__pyx_t_14);
64540 PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = __pyx_t_14
)
;
64541 __pyx_t_14 = 0;
64542 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1018; __pyx_clineno = __LINE__64542; goto __pyx_L1_error;}
64543 __Pyx_GOTREF(__pyx_t_7);
64544 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64545 }
64546 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64547 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_pool_lookup, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; __pyx_clineno = __LINE__64547; goto __pyx_L1_error;}
64548 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64549 PyType_Modified(__pyx_ptype_5rados_Rados);
64550
64551 /* "rados.pyx":1043
64552 * raise make_ex(ret, "error looking up pool '%s'" % pool_name)
64553 *
64554 * @requires(('pool_id', int)) # <<<<<<<<<<<<<<
64555 * def pool_reverse_lookup(self, pool_id):
64556 * """
64557 */
64558 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64558; goto __pyx_L1_error;}
64559 __Pyx_GOTREF(__pyx_t_1);
64560 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64560; goto __pyx_L1_error;}
64561 __Pyx_GOTREF(__pyx_t_14);
64562 __Pyx_INCREF(__pyx_n_s_pool_id)( ((PyObject*)(__pyx_n_s_pool_id))->ob_refcnt++);
64563 __Pyx_GIVEREF(__pyx_n_s_pool_id);
64564 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_pool_id)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_pool_id
)
;
64565 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
64566 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
64567 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
64568 __pyx_t_8 = NULL((void*)0);
64569 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
64570 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
64571 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
64572 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
64573 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
64574 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64575 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64576 }
64577 }
64578 if (!__pyx_t_8) {
64579 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64579; goto __pyx_L1_error;}
64580 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64581 __Pyx_GOTREF(__pyx_t_5);
64582 } else {
64583 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64583; goto __pyx_L1_error;}
64584 __Pyx_GOTREF(__pyx_t_15);
64585 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
64586 __Pyx_GIVEREF(__pyx_t_14);
64587 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_14
)
;
64588 __pyx_t_14 = 0;
64589 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64589; goto __pyx_L1_error;}
64590 __Pyx_GOTREF(__pyx_t_5);
64591 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64592 }
64593 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64594
64595 /* "rados.pyx":1044
64596 *
64597 * @requires(('pool_id', int))
64598 * def pool_reverse_lookup(self, pool_id): # <<<<<<<<<<<<<<
64599 * """
64600 * Returns a pool's name based on its ID.
64601 */
64602 __pyx_t_1 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_pool_reverse_lookup); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1044; __pyx_clineno = __LINE__64602; goto __pyx_L1_error;}
64603 __Pyx_GOTREF(__pyx_t_1);
64604 __pyx_t_15 = NULL((void*)0);
64605 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64606 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64607 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
64608 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64609 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
64610 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64611 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64612 }
64613 }
64614 if (!__pyx_t_15) {
64615 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64615; goto __pyx_L1_error;}
64616 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
64617 __Pyx_GOTREF(__pyx_t_7);
64618 } else {
64619 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64619; goto __pyx_L1_error;}
64620 __Pyx_GOTREF(__pyx_t_14);
64621 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
64622 __Pyx_GIVEREF(__pyx_t_1);
64623 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_1
)
;
64624 __pyx_t_1 = 0;
64625 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__64625; goto __pyx_L1_error;}
64626 __Pyx_GOTREF(__pyx_t_7);
64627 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64628 }
64629 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64630 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_pool_reverse_lookup, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1044; __pyx_clineno = __LINE__64630; goto __pyx_L1_error;}
64631 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64632 PyType_Modified(__pyx_ptype_5rados_Rados);
64633
64634 /* "rados.pyx":1079
64635 * free(name)
64636 *
64637 * @requires(('pool_name', str_type), ('crush_rule', opt(int))) # <<<<<<<<<<<<<<
64638 * def create_pool(self, pool_name, crush_rule=None):
64639 * """
64640 */
64641 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64641; goto __pyx_L1_error;}
64642 __Pyx_GOTREF(__pyx_t_14);
64643 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64643; goto __pyx_L1_error;}
64644 __Pyx_GOTREF(__pyx_t_1);
64645 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64645; goto __pyx_L1_error;}
64646 __Pyx_GOTREF(__pyx_t_15);
64647 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
64648 __Pyx_GIVEREF(__pyx_n_s_pool_name);
64649 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_pool_name
)
;
64650 __Pyx_GIVEREF(__pyx_t_1);
64651 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_1);
64652 __pyx_t_1 = 0;
64653 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64653; goto __pyx_L1_error;}
64654 __Pyx_GOTREF(__pyx_t_8);
64655 __pyx_t_16 = NULL((void*)0);
64656 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
64657 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
64658 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
64659 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
64660 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
64661 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64662 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64663 }
64664 }
64665 if (!__pyx_t_16) {
64666 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_8, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64666; goto __pyx_L1_error;}
64667 __Pyx_GOTREF(__pyx_t_1);
64668 } else {
64669 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64669; goto __pyx_L1_error;}
64670 __Pyx_GOTREF(__pyx_t_13);
64671 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
64672 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
64673 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
64674 PyTuple_SET_ITEM(__pyx_t_13, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
64675 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64675; goto __pyx_L1_error;}
64676 __Pyx_GOTREF(__pyx_t_1);
64677 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
64678 }
64679 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64680 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64680; goto __pyx_L1_error;}
64681 __Pyx_GOTREF(__pyx_t_8);
64682 __Pyx_INCREF(__pyx_n_s_crush_rule)( ((PyObject*)(__pyx_n_s_crush_rule))->ob_refcnt++);
64683 __Pyx_GIVEREF(__pyx_n_s_crush_rule);
64684 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_crush_rule)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_crush_rule
)
;
64685 __Pyx_GIVEREF(__pyx_t_1);
64686 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_1);
64687 __pyx_t_1 = 0;
64688 __pyx_t_1 = NULL((void*)0);
64689 __pyx_t_17 = 0;
64690 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
64691 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
64692 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
64693 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
64694 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
64695 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64696 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64697 __pyx_t_17 = 1;
64698 }
64699 }
64700 __pyx_t_13 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64700; goto __pyx_L1_error;}
64701 __Pyx_GOTREF(__pyx_t_13);
64702 if (__pyx_t_1) {
64703 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
64704 }
64705 __Pyx_GIVEREF(__pyx_t_15);
64706 PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+__pyx_t_17] = __pyx_t_15
)
;
64707 __Pyx_GIVEREF(__pyx_t_8);
64708 PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
64709 __pyx_t_15 = 0;
64710 __pyx_t_8 = 0;
64711 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64711; goto __pyx_L1_error;}
64712 __Pyx_GOTREF(__pyx_t_5);
64713 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
64714 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64715
64716 /* "rados.pyx":1080
64717 *
64718 * @requires(('pool_name', str_type), ('crush_rule', opt(int)))
64719 * def create_pool(self, pool_name, crush_rule=None): # <<<<<<<<<<<<<<
64720 * """
64721 * Create a pool:
64722 */
64723 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_create_pool); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__64723; goto __pyx_L1_error;}
64724 __Pyx_GOTREF(__pyx_t_14);
64725 __pyx_t_13 = NULL((void*)0);
64726 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64727 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64728 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
64729 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64730 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
64731 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64732 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64733 }
64734 }
64735 if (!__pyx_t_13) {
64736 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64736; goto __pyx_L1_error;}
64737 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64738 __Pyx_GOTREF(__pyx_t_7);
64739 } else {
64740 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64740; goto __pyx_L1_error;}
64741 __Pyx_GOTREF(__pyx_t_8);
64742 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
64743 __Pyx_GIVEREF(__pyx_t_14);
64744 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
64745 __pyx_t_14 = 0;
64746 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__64746; goto __pyx_L1_error;}
64747 __Pyx_GOTREF(__pyx_t_7);
64748 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64749 }
64750 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64751 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_create_pool, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__64751; goto __pyx_L1_error;}
64752 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64753 PyType_Modified(__pyx_ptype_5rados_Rados);
64754
64755 /* "rados.pyx":1110
64756 * raise make_ex(ret, "error creating pool '%s'" % pool_name)
64757 *
64758 * @requires(('pool_id', int)) # <<<<<<<<<<<<<<
64759 * def get_pool_base_tier(self, pool_id):
64760 * """
64761 */
64762 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64762; goto __pyx_L1_error;}
64763 __Pyx_GOTREF(__pyx_t_8);
64764 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64764; goto __pyx_L1_error;}
64765 __Pyx_GOTREF(__pyx_t_14);
64766 __Pyx_INCREF(__pyx_n_s_pool_id)( ((PyObject*)(__pyx_n_s_pool_id))->ob_refcnt++);
64767 __Pyx_GIVEREF(__pyx_n_s_pool_id);
64768 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_pool_id)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_pool_id
)
;
64769 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
64770 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
64771 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
64772 __pyx_t_13 = NULL((void*)0);
64773 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
64774 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
64775 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
64776 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
64777 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
64778 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64779 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64780 }
64781 }
64782 if (!__pyx_t_13) {
64783 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64783; goto __pyx_L1_error;}
64784 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64785 __Pyx_GOTREF(__pyx_t_5);
64786 } else {
64787 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64787; goto __pyx_L1_error;}
64788 __Pyx_GOTREF(__pyx_t_15);
64789 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
64790 __Pyx_GIVEREF(__pyx_t_14);
64791 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_14
)
;
64792 __pyx_t_14 = 0;
64793 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64793; goto __pyx_L1_error;}
64794 __Pyx_GOTREF(__pyx_t_5);
64795 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64796 }
64797 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64798
64799 /* "rados.pyx":1111
64800 *
64801 * @requires(('pool_id', int))
64802 * def get_pool_base_tier(self, pool_id): # <<<<<<<<<<<<<<
64803 * """
64804 * Get base pool
64805 */
64806 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_get_pool_base_tier); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; __pyx_clineno = __LINE__64806; goto __pyx_L1_error;}
64807 __Pyx_GOTREF(__pyx_t_8);
64808 __pyx_t_15 = NULL((void*)0);
64809 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64810 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64811 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
64812 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64813 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
64814 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64815 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64816 }
64817 }
64818 if (!__pyx_t_15) {
64819 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64819; goto __pyx_L1_error;}
64820 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64821 __Pyx_GOTREF(__pyx_t_7);
64822 } else {
64823 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64823; goto __pyx_L1_error;}
64824 __Pyx_GOTREF(__pyx_t_14);
64825 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
64826 __Pyx_GIVEREF(__pyx_t_8);
64827 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_8
)
;
64828 __pyx_t_8 = 0;
64829 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__64829; goto __pyx_L1_error;}
64830 __Pyx_GOTREF(__pyx_t_7);
64831 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64832 }
64833 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64834 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_get_pool_base_tier, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1111; __pyx_clineno = __LINE__64834; goto __pyx_L1_error;}
64835 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64836 PyType_Modified(__pyx_ptype_5rados_Rados);
64837
64838 /* "rados.pyx":1128
64839 * return int(base_tier)
64840 *
64841 * @requires(('pool_name', str_type)) # <<<<<<<<<<<<<<
64842 * def delete_pool(self, pool_name):
64843 * """
64844 */
64845 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64845; goto __pyx_L1_error;}
64846 __Pyx_GOTREF(__pyx_t_14);
64847 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64847; goto __pyx_L1_error;}
64848 __Pyx_GOTREF(__pyx_t_8);
64849 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64849; goto __pyx_L1_error;}
64850 __Pyx_GOTREF(__pyx_t_15);
64851 __Pyx_INCREF(__pyx_n_s_pool_name)( ((PyObject*)(__pyx_n_s_pool_name))->ob_refcnt++);
64852 __Pyx_GIVEREF(__pyx_n_s_pool_name);
64853 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_pool_name)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_pool_name
)
;
64854 __Pyx_GIVEREF(__pyx_t_8);
64855 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_8);
64856 __pyx_t_8 = 0;
64857 __pyx_t_8 = NULL((void*)0);
64858 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
64859 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
64860 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
64861 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
64862 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
64863 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64864 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64865 }
64866 }
64867 if (!__pyx_t_8) {
64868 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64868; goto __pyx_L1_error;}
64869 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64870 __Pyx_GOTREF(__pyx_t_5);
64871 } else {
64872 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64872; goto __pyx_L1_error;}
64873 __Pyx_GOTREF(__pyx_t_13);
64874 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
64875 __Pyx_GIVEREF(__pyx_t_15);
64876 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_15
)
;
64877 __pyx_t_15 = 0;
64878 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64878; goto __pyx_L1_error;}
64879 __Pyx_GOTREF(__pyx_t_5);
64880 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
64881 }
64882 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64883
64884 /* "rados.pyx":1129
64885 *
64886 * @requires(('pool_name', str_type))
64887 * def delete_pool(self, pool_name): # <<<<<<<<<<<<<<
64888 * """
64889 * Delete a pool and all data inside it.
64890 */
64891 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_delete_pool); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1129; __pyx_clineno = __LINE__64891; goto __pyx_L1_error;}
64892 __Pyx_GOTREF(__pyx_t_14);
64893 __pyx_t_13 = NULL((void*)0);
64894 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64895 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64896 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
64897 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64898 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
64899 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64900 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64901 }
64902 }
64903 if (!__pyx_t_13) {
64904 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64904; goto __pyx_L1_error;}
64905 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64906 __Pyx_GOTREF(__pyx_t_7);
64907 } else {
64908 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64908; goto __pyx_L1_error;}
64909 __Pyx_GOTREF(__pyx_t_15);
64910 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
64911 __Pyx_GIVEREF(__pyx_t_14);
64912 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_14
)
;
64913 __pyx_t_14 = 0;
64914 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__64914; goto __pyx_L1_error;}
64915 __Pyx_GOTREF(__pyx_t_7);
64916 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64917 }
64918 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
64919 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_delete_pool, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1129; __pyx_clineno = __LINE__64919; goto __pyx_L1_error;}
64920 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
64921 PyType_Modified(__pyx_ptype_5rados_Rados);
64922
64923 /* "rados.pyx":1152
64924 * raise make_ex(ret, "error deleting pool '%s'" % pool_name)
64925 *
64926 * @requires(('pool_id', int)) # <<<<<<<<<<<<<<
64927 * def get_inconsistent_pgs(self, pool_id):
64928 * """
64929 */
64930 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64930; goto __pyx_L1_error;}
64931 __Pyx_GOTREF(__pyx_t_15);
64932 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64932; goto __pyx_L1_error;}
64933 __Pyx_GOTREF(__pyx_t_14);
64934 __Pyx_INCREF(__pyx_n_s_pool_id)( ((PyObject*)(__pyx_n_s_pool_id))->ob_refcnt++);
64935 __Pyx_GIVEREF(__pyx_n_s_pool_id);
64936 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_pool_id)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_pool_id
)
;
64937 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
64938 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
64939 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
64940 __pyx_t_13 = NULL((void*)0);
64941 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
64942 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
64943 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
64944 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
64945 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
64946 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64947 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64948 }
64949 }
64950 if (!__pyx_t_13) {
64951 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64951; goto __pyx_L1_error;}
64952 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
64953 __Pyx_GOTREF(__pyx_t_5);
64954 } else {
64955 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64955; goto __pyx_L1_error;}
64956 __Pyx_GOTREF(__pyx_t_8);
64957 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
64958 __Pyx_GIVEREF(__pyx_t_14);
64959 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
64960 __pyx_t_14 = 0;
64961 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64961; goto __pyx_L1_error;}
64962 __Pyx_GOTREF(__pyx_t_5);
64963 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
64964 }
64965 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64966
64967 /* "rados.pyx":1153
64968 *
64969 * @requires(('pool_id', int))
64970 * def get_inconsistent_pgs(self, pool_id): # <<<<<<<<<<<<<<
64971 * """
64972 * List inconsistent placement groups in the given pool
64973 */
64974 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_get_inconsistent_pgs); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__64974; goto __pyx_L1_error;}
64975 __Pyx_GOTREF(__pyx_t_15);
64976 __pyx_t_8 = NULL((void*)0);
64977 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
64978 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
64979 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
64980 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
64981 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
64982 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
64983 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
64984 }
64985 }
64986 if (!__pyx_t_8) {
64987 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64987; goto __pyx_L1_error;}
64988 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
64989 __Pyx_GOTREF(__pyx_t_7);
64990 } else {
64991 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64991; goto __pyx_L1_error;}
64992 __Pyx_GOTREF(__pyx_t_14);
64993 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
64994 __Pyx_GIVEREF(__pyx_t_15);
64995 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_15
)
;
64996 __pyx_t_15 = 0;
64997 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1152; __pyx_clineno = __LINE__64997; goto __pyx_L1_error;}
64998 __Pyx_GOTREF(__pyx_t_7);
64999 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65000 }
65001 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65002 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_get_inconsistent_pgs, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__65002; goto __pyx_L1_error;}
65003 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65004 PyType_Modified(__pyx_ptype_5rados_Rados);
65005
65006 /* "rados.pyx":1235
65007 * free(ret_buf)
65008 *
65009 * @requires(('ioctx_name', str_type)) # <<<<<<<<<<<<<<
65010 * def open_ioctx(self, ioctx_name):
65011 * """
65012 */
65013 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65013; goto __pyx_L1_error;}
65014 __Pyx_GOTREF(__pyx_t_14);
65015 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65015; goto __pyx_L1_error;}
65016 __Pyx_GOTREF(__pyx_t_15);
65017 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65017; goto __pyx_L1_error;}
65018 __Pyx_GOTREF(__pyx_t_8);
65019 __Pyx_INCREF(__pyx_n_s_ioctx_name)( ((PyObject*)(__pyx_n_s_ioctx_name))->ob_refcnt++);
65020 __Pyx_GIVEREF(__pyx_n_s_ioctx_name);
65021 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_ioctx_name)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_ioctx_name
)
;
65022 __Pyx_GIVEREF(__pyx_t_15);
65023 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_15);
65024 __pyx_t_15 = 0;
65025 __pyx_t_15 = NULL((void*)0);
65026 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
65027 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
65028 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
65029 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
65030 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
65031 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65032 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65033 }
65034 }
65035 if (!__pyx_t_15) {
65036 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_8); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65036; goto __pyx_L1_error;}
65037 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65038 __Pyx_GOTREF(__pyx_t_5);
65039 } else {
65040 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65040; goto __pyx_L1_error;}
65041 __Pyx_GOTREF(__pyx_t_13);
65042 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
65043 __Pyx_GIVEREF(__pyx_t_8);
65044 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_8
)
;
65045 __pyx_t_8 = 0;
65046 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65046; goto __pyx_L1_error;}
65047 __Pyx_GOTREF(__pyx_t_5);
65048 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65049 }
65050 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65051
65052 /* "rados.pyx":1236
65053 *
65054 * @requires(('ioctx_name', str_type))
65055 * def open_ioctx(self, ioctx_name): # <<<<<<<<<<<<<<
65056 * """
65057 * Create an io context
65058 */
65059 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_open_ioctx); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__65059; goto __pyx_L1_error;}
65060 __Pyx_GOTREF(__pyx_t_14);
65061 __pyx_t_13 = NULL((void*)0);
65062 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65063 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65064 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
65065 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65066 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
65067 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65068 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65069 }
65070 }
65071 if (!__pyx_t_13) {
65072 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65072; goto __pyx_L1_error;}
65073 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65074 __Pyx_GOTREF(__pyx_t_7);
65075 } else {
65076 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65076; goto __pyx_L1_error;}
65077 __Pyx_GOTREF(__pyx_t_8);
65078 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
65079 __Pyx_GIVEREF(__pyx_t_14);
65080 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
65081 __pyx_t_14 = 0;
65082 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1235; __pyx_clineno = __LINE__65082; goto __pyx_L1_error;}
65083 __Pyx_GOTREF(__pyx_t_7);
65084 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65085 }
65086 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65087 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_open_ioctx, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__65087; goto __pyx_L1_error;}
65088 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65089 PyType_Modified(__pyx_ptype_5rados_Rados);
65090
65091 /* "rados.pyx":1262
65092 * return io
65093 *
65094 * @requires(('pool_id', int)) # <<<<<<<<<<<<<<
65095 * def open_ioctx2(self, pool_id):
65096 * """
65097 */
65098 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65098; goto __pyx_L1_error;}
65099 __Pyx_GOTREF(__pyx_t_8);
65100 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65100; goto __pyx_L1_error;}
65101 __Pyx_GOTREF(__pyx_t_14);
65102 __Pyx_INCREF(__pyx_n_s_pool_id)( ((PyObject*)(__pyx_n_s_pool_id))->ob_refcnt++);
65103 __Pyx_GIVEREF(__pyx_n_s_pool_id);
65104 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_pool_id)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_pool_id
)
;
65105 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
65106 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
65107 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
65108 __pyx_t_13 = NULL((void*)0);
65109 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
65110 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
65111 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
65112 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
65113 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
65114 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65115 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65116 }
65117 }
65118 if (!__pyx_t_13) {
65119 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65119; goto __pyx_L1_error;}
65120 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65121 __Pyx_GOTREF(__pyx_t_5);
65122 } else {
65123 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65123; goto __pyx_L1_error;}
65124 __Pyx_GOTREF(__pyx_t_15);
65125 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
65126 __Pyx_GIVEREF(__pyx_t_14);
65127 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_14
)
;
65128 __pyx_t_14 = 0;
65129 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65129; goto __pyx_L1_error;}
65130 __Pyx_GOTREF(__pyx_t_5);
65131 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
65132 }
65133 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65134
65135 /* "rados.pyx":1263
65136 *
65137 * @requires(('pool_id', int))
65138 * def open_ioctx2(self, pool_id): # <<<<<<<<<<<<<<
65139 * """
65140 * Create an io context
65141 */
65142 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_open_ioctx2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__65142; goto __pyx_L1_error;}
65143 __Pyx_GOTREF(__pyx_t_8);
65144 __pyx_t_15 = NULL((void*)0);
65145 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65146 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65147 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
65148 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65149 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
65150 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65151 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65152 }
65153 }
65154 if (!__pyx_t_15) {
65155 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65155; goto __pyx_L1_error;}
65156 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65157 __Pyx_GOTREF(__pyx_t_7);
65158 } else {
65159 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65159; goto __pyx_L1_error;}
65160 __Pyx_GOTREF(__pyx_t_14);
65161 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
65162 __Pyx_GIVEREF(__pyx_t_8);
65163 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_8
)
;
65164 __pyx_t_8 = 0;
65165 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__65165; goto __pyx_L1_error;}
65166 __Pyx_GOTREF(__pyx_t_7);
65167 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65168 }
65169 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65170 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_open_ioctx2, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__65170; goto __pyx_L1_error;}
65171 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65172 PyType_Modified(__pyx_ptype_5rados_Rados);
65173
65174 /* "rados.pyx":1574
65175 * self.monitor_callback2 = cb
65176 *
65177 * @requires(('service', str_type), ('daemon', str_type), ('metadata', dict)) # <<<<<<<<<<<<<<
65178 * def service_daemon_register(self, service, daemon, metadata):
65179 * """
65180 */
65181 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65181; goto __pyx_L1_error;}
65182 __Pyx_GOTREF(__pyx_t_14);
65183 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65183; goto __pyx_L1_error;}
65184 __Pyx_GOTREF(__pyx_t_8);
65185 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65185; goto __pyx_L1_error;}
65186 __Pyx_GOTREF(__pyx_t_15);
65187 __Pyx_INCREF(__pyx_n_s_service)( ((PyObject*)(__pyx_n_s_service))->ob_refcnt++);
65188 __Pyx_GIVEREF(__pyx_n_s_service);
65189 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_service)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_service
)
;
65190 __Pyx_GIVEREF(__pyx_t_8);
65191 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_8);
65192 __pyx_t_8 = 0;
65193 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65193; goto __pyx_L1_error;}
65194 __Pyx_GOTREF(__pyx_t_8);
65195 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65195; goto __pyx_L1_error;}
65196 __Pyx_GOTREF(__pyx_t_13);
65197 __Pyx_INCREF(__pyx_n_s_daemon)( ((PyObject*)(__pyx_n_s_daemon))->ob_refcnt++);
65198 __Pyx_GIVEREF(__pyx_n_s_daemon);
65199 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_daemon)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_daemon
)
;
65200 __Pyx_GIVEREF(__pyx_t_8);
65201 PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = __pyx_t_8);
65202 __pyx_t_8 = 0;
65203 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65203; goto __pyx_L1_error;}
65204 __Pyx_GOTREF(__pyx_t_8);
65205 __Pyx_INCREF(__pyx_n_s_metadata)( ((PyObject*)(__pyx_n_s_metadata))->ob_refcnt++);
65206 __Pyx_GIVEREF(__pyx_n_s_metadata);
65207 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_metadata)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_metadata
)
;
65208 __Pyx_INCREF(((PyObject *)(&PyDict_Type)))( ((PyObject*)(((PyObject *)(&PyDict_Type))))->ob_refcnt
++)
;
65209 __Pyx_GIVEREF(((PyObject *)(&PyDict_Type)));
65210 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)(&PyDict_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)(&PyDict_Type)))
;
65211 __pyx_t_1 = NULL((void*)0);
65212 __pyx_t_17 = 0;
65213 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
65214 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
65215 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
65216 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
65217 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
65218 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65219 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65220 __pyx_t_17 = 1;
65221 }
65222 }
65223 __pyx_t_16 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65223; goto __pyx_L1_error;}
65224 __Pyx_GOTREF(__pyx_t_16);
65225 if (__pyx_t_1) {
65226 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
65227 }
65228 __Pyx_GIVEREF(__pyx_t_15);
65229 PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+__pyx_t_17] = __pyx_t_15
)
;
65230 __Pyx_GIVEREF(__pyx_t_13);
65231 PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[1+__pyx_t_17] = __pyx_t_13
)
;
65232 __Pyx_GIVEREF(__pyx_t_8);
65233 PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_16))->ob_item[2+__pyx_t_17] = __pyx_t_8
)
;
65234 __pyx_t_15 = 0;
65235 __pyx_t_13 = 0;
65236 __pyx_t_8 = 0;
65237 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65237; goto __pyx_L1_error;}
65238 __Pyx_GOTREF(__pyx_t_5);
65239 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
65240 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65241
65242 /* "rados.pyx":1575
65243 *
65244 * @requires(('service', str_type), ('daemon', str_type), ('metadata', dict))
65245 * def service_daemon_register(self, service, daemon, metadata): # <<<<<<<<<<<<<<
65246 * """
65247 * :param str service: service name (e.g. "rgw")
65248 */
65249 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_service_daemon_register); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__65249; goto __pyx_L1_error;}
65250 __Pyx_GOTREF(__pyx_t_14);
65251 __pyx_t_16 = NULL((void*)0);
65252 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65253 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65254 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
65255 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65256 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
65257 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65258 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65259 }
65260 }
65261 if (!__pyx_t_16) {
65262 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65262; goto __pyx_L1_error;}
65263 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65264 __Pyx_GOTREF(__pyx_t_7);
65265 } else {
65266 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65266; goto __pyx_L1_error;}
65267 __Pyx_GOTREF(__pyx_t_8);
65268 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
65269 __Pyx_GIVEREF(__pyx_t_14);
65270 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
65271 __pyx_t_14 = 0;
65272 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__65272; goto __pyx_L1_error;}
65273 __Pyx_GOTREF(__pyx_t_7);
65274 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65275 }
65276 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65277 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_service_daemon_register, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__65277; goto __pyx_L1_error;}
65278 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65279 PyType_Modified(__pyx_ptype_5rados_Rados);
65280
65281 /* "rados.pyx":1595
65282 * raise make_ex(ret, "error calling service_register()")
65283 *
65284 * @requires(('metadata', dict)) # <<<<<<<<<<<<<<
65285 * def service_daemon_update(self, status):
65286 * status_dict = flatten_dict(status, 'status')
65287 */
65288 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65288; goto __pyx_L1_error;}
65289 __Pyx_GOTREF(__pyx_t_8);
65290 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65290; goto __pyx_L1_error;}
65291 __Pyx_GOTREF(__pyx_t_14);
65292 __Pyx_INCREF(__pyx_n_s_metadata)( ((PyObject*)(__pyx_n_s_metadata))->ob_refcnt++);
65293 __Pyx_GIVEREF(__pyx_n_s_metadata);
65294 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_metadata)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_metadata
)
;
65295 __Pyx_INCREF(((PyObject *)(&PyDict_Type)))( ((PyObject*)(((PyObject *)(&PyDict_Type))))->ob_refcnt
++)
;
65296 __Pyx_GIVEREF(((PyObject *)(&PyDict_Type)));
65297 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyDict_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyDict_Type)))
;
65298 __pyx_t_16 = NULL((void*)0);
65299 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
65300 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
65301 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
65302 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
65303 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
65304 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65305 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65306 }
65307 }
65308 if (!__pyx_t_16) {
65309 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65309; goto __pyx_L1_error;}
65310 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65311 __Pyx_GOTREF(__pyx_t_5);
65312 } else {
65313 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65313; goto __pyx_L1_error;}
65314 __Pyx_GOTREF(__pyx_t_13);
65315 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
65316 __Pyx_GIVEREF(__pyx_t_14);
65317 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
65318 __pyx_t_14 = 0;
65319 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65319; goto __pyx_L1_error;}
65320 __Pyx_GOTREF(__pyx_t_5);
65321 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65322 }
65323 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65324
65325 /* "rados.pyx":1596
65326 *
65327 * @requires(('metadata', dict))
65328 * def service_daemon_update(self, status): # <<<<<<<<<<<<<<
65329 * status_dict = flatten_dict(status, 'status')
65330 * cdef:
65331 */
65332 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Rados, __pyx_n_s_service_daemon_update); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__65332; goto __pyx_L1_error;}
65333 __Pyx_GOTREF(__pyx_t_8);
65334 __pyx_t_13 = NULL((void*)0);
65335 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65336 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65337 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
65338 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65339 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
65340 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65341 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65342 }
65343 }
65344 if (!__pyx_t_13) {
65345 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65345; goto __pyx_L1_error;}
65346 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65347 __Pyx_GOTREF(__pyx_t_7);
65348 } else {
65349 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65349; goto __pyx_L1_error;}
65350 __Pyx_GOTREF(__pyx_t_14);
65351 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
65352 __Pyx_GIVEREF(__pyx_t_8);
65353 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_8
)
;
65354 __pyx_t_8 = 0;
65355 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1595; __pyx_clineno = __LINE__65355; goto __pyx_L1_error;}
65356 __Pyx_GOTREF(__pyx_t_7);
65357 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65358 }
65359 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65360 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Rados->tp_dict, __pyx_n_s_service_daemon_update, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__65360; goto __pyx_L1_error;}
65361 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65362 PyType_Modified(__pyx_ptype_5rados_Rados);
65363
65364 /* "rados.pyx":1972
65365 *
65366 *
65367 * class OpCtx(object): # <<<<<<<<<<<<<<
65368 * def __enter__(self):
65369 * return self.create()
65370 */
65371 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__65371; goto __pyx_L1_error;}
65372 __Pyx_GOTREF(__pyx_t_7);
65373 __Pyx_INCREF(__pyx_builtin_object)( ((PyObject*)(__pyx_builtin_object))->ob_refcnt++);
65374 __Pyx_GIVEREF(__pyx_builtin_object);
65375 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_builtin_object
)
;
65376 __pyx_t_5 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__65376; goto __pyx_L1_error;}
65377 __Pyx_GOTREF(__pyx_t_5);
65378 __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_7, __pyx_n_s_OpCtx, __pyx_n_s_OpCtx, (PyObject *) NULL((void*)0), __pyx_n_s_rados, (PyObject *) NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__65378; goto __pyx_L1_error;}
65379 __Pyx_GOTREF(__pyx_t_14);
65380
65381 /* "rados.pyx":1973
65382 *
65383 * class OpCtx(object):
65384 * def __enter__(self): # <<<<<<<<<<<<<<
65385 * return self.create()
65386 *
65387 */
65388 __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5OpCtx_1__enter__, 0, __pyx_n_s_OpCtx___enter, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__149))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5OpCtx_1__enter__
, 0, __pyx_n_s_OpCtx___enter, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__149))
; if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__65388; goto __pyx_L1_error;}
65389 __Pyx_GOTREF(__pyx_t_8);
65390 if (PyObject_SetItem(__pyx_t_14, __pyx_n_s_enter, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__65390; goto __pyx_L1_error;}
65391 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65392
65393 /* "rados.pyx":1976
65394 * return self.create()
65395 *
65396 * def __exit__(self, type, msg, traceback): # <<<<<<<<<<<<<<
65397 * self.release()
65398 *
65399 */
65400 __pyx_t_8 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_5OpCtx_3__exit__, 0, __pyx_n_s_OpCtx___exit, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__151))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_5OpCtx_3__exit__
, 0, __pyx_n_s_OpCtx___exit, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__151))
; if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__65400; goto __pyx_L1_error;}
65401 __Pyx_GOTREF(__pyx_t_8);
65402 if (PyObject_SetItem(__pyx_t_14, __pyx_n_s_exit, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__65402; goto __pyx_L1_error;}
65403 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65404
65405 /* "rados.pyx":1972
65406 *
65407 *
65408 * class OpCtx(object): # <<<<<<<<<<<<<<
65409 * def __enter__(self):
65410 * return self.create()
65411 */
65412 __pyx_t_8 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_n_s_OpCtx, __pyx_t_7, __pyx_t_14, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__65412; goto __pyx_L1_error;}
65413 __Pyx_GOTREF(__pyx_t_8);
65414 if (PyDict_SetItem(__pyx_d, __pyx_n_s_OpCtx, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__65414; goto __pyx_L1_error;}
65415 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65416 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65417 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65418 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65419
65420 /* "rados.pyx":1992
65421 * rados_release_write_op(self.write_op)
65422 *
65423 * @requires(('exclusive', opt(int))) # <<<<<<<<<<<<<<
65424 * def new(self, exclusive=None):
65425 * """
65426 */
65427 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65427; goto __pyx_L1_error;}
65428 __Pyx_GOTREF(__pyx_t_14);
65429 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65429; goto __pyx_L1_error;}
65430 __Pyx_GOTREF(__pyx_t_13);
65431 __pyx_t_16 = NULL((void*)0);
65432 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
65433 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
65434 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
65435 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
65436 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
65437 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65438 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65439 }
65440 }
65441 if (!__pyx_t_16) {
65442 __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_13, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65442; goto __pyx_L1_error;}
65443 __Pyx_GOTREF(__pyx_t_8);
65444 } else {
65445 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65445; goto __pyx_L1_error;}
65446 __Pyx_GOTREF(__pyx_t_15);
65447 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
65448 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
65449 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
65450 PyTuple_SET_ITEM(__pyx_t_15, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
65451 __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65451; goto __pyx_L1_error;}
65452 __Pyx_GOTREF(__pyx_t_8);
65453 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
65454 }
65455 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65456 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65456; goto __pyx_L1_error;}
65457 __Pyx_GOTREF(__pyx_t_13);
65458 __Pyx_INCREF(__pyx_n_s_exclusive)( ((PyObject*)(__pyx_n_s_exclusive))->ob_refcnt++);
65459 __Pyx_GIVEREF(__pyx_n_s_exclusive);
65460 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_exclusive)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_exclusive
)
;
65461 __Pyx_GIVEREF(__pyx_t_8);
65462 PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = __pyx_t_8);
65463 __pyx_t_8 = 0;
65464 __pyx_t_8 = NULL((void*)0);
65465 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
65466 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
65467 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
65468 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
65469 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
65470 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65471 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65472 }
65473 }
65474 if (!__pyx_t_8) {
65475 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65475; goto __pyx_L1_error;}
65476 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65477 __Pyx_GOTREF(__pyx_t_5);
65478 } else {
65479 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65479; goto __pyx_L1_error;}
65480 __Pyx_GOTREF(__pyx_t_15);
65481 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
65482 __Pyx_GIVEREF(__pyx_t_13);
65483 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_13
)
;
65484 __pyx_t_13 = 0;
65485 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65485; goto __pyx_L1_error;}
65486 __Pyx_GOTREF(__pyx_t_5);
65487 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
65488 }
65489 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65490
65491 /* "rados.pyx":1993
65492 *
65493 * @requires(('exclusive', opt(int)))
65494 * def new(self, exclusive=None): # <<<<<<<<<<<<<<
65495 * """
65496 * Create the object.
65497 */
65498 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_new); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__65498; goto __pyx_L1_error;}
65499 __Pyx_GOTREF(__pyx_t_14);
65500 __pyx_t_15 = NULL((void*)0);
65501 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65502 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65503 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
65504 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65505 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
65506 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65507 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65508 }
65509 }
65510 if (!__pyx_t_15) {
65511 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65511; goto __pyx_L1_error;}
65512 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65513 __Pyx_GOTREF(__pyx_t_7);
65514 } else {
65515 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65515; goto __pyx_L1_error;}
65516 __Pyx_GOTREF(__pyx_t_13);
65517 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
65518 __Pyx_GIVEREF(__pyx_t_14);
65519 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
65520 __pyx_t_14 = 0;
65521 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__65521; goto __pyx_L1_error;}
65522 __Pyx_GOTREF(__pyx_t_7);
65523 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65524 }
65525 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65526 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_new, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__65526; goto __pyx_L1_error;}
65527 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65528 PyType_Modified(__pyx_ptype_5rados_WriteOp);
65529
65530 /* "rados.pyx":2013
65531 *
65532 * @requires(('flags', int))
65533 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
65534 * """
65535 * Set flags for the last operation added to this write_op.
65536 */
65537 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_LIBRADOS_OPERATION_NOFLAG); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__65537; goto __pyx_L1_error;}
65538 __Pyx_GOTREF(__pyx_t_7);
65539 __pyx_k__48 = __pyx_t_7;
65540 __Pyx_GIVEREF(__pyx_t_7);
65541 __pyx_t_7 = 0;
65542
65543 /* "rados.pyx":2012
65544 * rados_write_op_remove(self.write_op)
65545 *
65546 * @requires(('flags', int)) # <<<<<<<<<<<<<<
65547 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG):
65548 * """
65549 */
65550 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65550; goto __pyx_L1_error;}
65551 __Pyx_GOTREF(__pyx_t_13);
65552 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65552; goto __pyx_L1_error;}
65553 __Pyx_GOTREF(__pyx_t_14);
65554 __Pyx_INCREF(__pyx_n_s_flags)( ((PyObject*)(__pyx_n_s_flags))->ob_refcnt++);
65555 __Pyx_GIVEREF(__pyx_n_s_flags);
65556 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_flags)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_flags
)
;
65557 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
65558 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
65559 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
65560 __pyx_t_15 = NULL((void*)0);
65561 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
65562 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
65563 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
65564 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
65565 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
65566 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65567 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65568 }
65569 }
65570 if (!__pyx_t_15) {
65571 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65571; goto __pyx_L1_error;}
65572 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65573 __Pyx_GOTREF(__pyx_t_5);
65574 } else {
65575 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65575; goto __pyx_L1_error;}
65576 __Pyx_GOTREF(__pyx_t_8);
65577 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
65578 __Pyx_GIVEREF(__pyx_t_14);
65579 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
65580 __pyx_t_14 = 0;
65581 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65581; goto __pyx_L1_error;}
65582 __Pyx_GOTREF(__pyx_t_5);
65583 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65584 }
65585 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65586
65587 /* "rados.pyx":2013
65588 *
65589 * @requires(('flags', int))
65590 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
65591 * """
65592 * Set flags for the last operation added to this write_op.
65593 */
65594 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_set_flags); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__65594; goto __pyx_L1_error;}
65595 __Pyx_GOTREF(__pyx_t_13);
65596 __pyx_t_8 = NULL((void*)0);
65597 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65598 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65599 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
65600 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65601 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
65602 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65603 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65604 }
65605 }
65606 if (!__pyx_t_8) {
65607 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65607; goto __pyx_L1_error;}
65608 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65609 __Pyx_GOTREF(__pyx_t_7);
65610 } else {
65611 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65611; goto __pyx_L1_error;}
65612 __Pyx_GOTREF(__pyx_t_14);
65613 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
65614 __Pyx_GIVEREF(__pyx_t_13);
65615 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_13
)
;
65616 __pyx_t_13 = 0;
65617 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__65617; goto __pyx_L1_error;}
65618 __Pyx_GOTREF(__pyx_t_7);
65619 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65620 }
65621 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65622 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_set_flags, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__65622; goto __pyx_L1_error;}
65623 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65624 PyType_Modified(__pyx_ptype_5rados_WriteOp);
65625
65626 /* "rados.pyx":2026
65627 * rados_write_op_set_flags(self.write_op, _flags)
65628 *
65629 * @requires(('to_write', bytes)) # <<<<<<<<<<<<<<
65630 * def append(self, to_write):
65631 * """
65632 */
65633 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65633; goto __pyx_L1_error;}
65634 __Pyx_GOTREF(__pyx_t_14);
65635 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65635; goto __pyx_L1_error;}
65636 __Pyx_GOTREF(__pyx_t_13);
65637 __Pyx_INCREF(__pyx_n_s_to_write)( ((PyObject*)(__pyx_n_s_to_write))->ob_refcnt++);
65638 __Pyx_GIVEREF(__pyx_n_s_to_write);
65639 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_to_write)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_to_write
)
;
65640 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
65641 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
65642 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
65643 __pyx_t_8 = NULL((void*)0);
65644 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
65645 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
65646 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
65647 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
65648 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
65649 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65650 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65651 }
65652 }
65653 if (!__pyx_t_8) {
65654 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65654; goto __pyx_L1_error;}
65655 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65656 __Pyx_GOTREF(__pyx_t_5);
65657 } else {
65658 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65658; goto __pyx_L1_error;}
65659 __Pyx_GOTREF(__pyx_t_15);
65660 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
65661 __Pyx_GIVEREF(__pyx_t_13);
65662 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_13
)
;
65663 __pyx_t_13 = 0;
65664 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65664; goto __pyx_L1_error;}
65665 __Pyx_GOTREF(__pyx_t_5);
65666 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
65667 }
65668 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65669
65670 /* "rados.pyx":2027
65671 *
65672 * @requires(('to_write', bytes))
65673 * def append(self, to_write): # <<<<<<<<<<<<<<
65674 * """
65675 * Append data to an object synchronously
65676 */
65677 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_append); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2027; __pyx_clineno = __LINE__65677; goto __pyx_L1_error;}
65678 __Pyx_GOTREF(__pyx_t_14);
65679 __pyx_t_15 = NULL((void*)0);
65680 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65681 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65682 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
65683 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65684 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
65685 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65686 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65687 }
65688 }
65689 if (!__pyx_t_15) {
65690 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65690; goto __pyx_L1_error;}
65691 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65692 __Pyx_GOTREF(__pyx_t_7);
65693 } else {
65694 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65694; goto __pyx_L1_error;}
65695 __Pyx_GOTREF(__pyx_t_13);
65696 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
65697 __Pyx_GIVEREF(__pyx_t_14);
65698 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
65699 __pyx_t_14 = 0;
65700 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__65700; goto __pyx_L1_error;}
65701 __Pyx_GOTREF(__pyx_t_7);
65702 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65703 }
65704 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65705 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_append, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2027; __pyx_clineno = __LINE__65705; goto __pyx_L1_error;}
65706 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65707 PyType_Modified(__pyx_ptype_5rados_WriteOp);
65708
65709 /* "rados.pyx":2041
65710 * rados_write_op_append(self.write_op, _to_write, length)
65711 *
65712 * @requires(('to_write', bytes)) # <<<<<<<<<<<<<<
65713 * def write_full(self, to_write):
65714 * """
65715 */
65716 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65716; goto __pyx_L1_error;}
65717 __Pyx_GOTREF(__pyx_t_13);
65718 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65718; goto __pyx_L1_error;}
65719 __Pyx_GOTREF(__pyx_t_14);
65720 __Pyx_INCREF(__pyx_n_s_to_write)( ((PyObject*)(__pyx_n_s_to_write))->ob_refcnt++);
65721 __Pyx_GIVEREF(__pyx_n_s_to_write);
65722 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_to_write)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_to_write
)
;
65723 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
65724 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
65725 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
65726 __pyx_t_15 = NULL((void*)0);
65727 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
65728 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
65729 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
65730 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
65731 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
65732 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65733 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65734 }
65735 }
65736 if (!__pyx_t_15) {
65737 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65737; goto __pyx_L1_error;}
65738 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65739 __Pyx_GOTREF(__pyx_t_5);
65740 } else {
65741 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65741; goto __pyx_L1_error;}
65742 __Pyx_GOTREF(__pyx_t_8);
65743 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
65744 __Pyx_GIVEREF(__pyx_t_14);
65745 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
65746 __pyx_t_14 = 0;
65747 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65747; goto __pyx_L1_error;}
65748 __Pyx_GOTREF(__pyx_t_5);
65749 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65750 }
65751 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65752
65753 /* "rados.pyx":2042
65754 *
65755 * @requires(('to_write', bytes))
65756 * def write_full(self, to_write): # <<<<<<<<<<<<<<
65757 * """
65758 * Write whole object, atomically replacing it.
65759 */
65760 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_write_full); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2042; __pyx_clineno = __LINE__65760; goto __pyx_L1_error;}
65761 __Pyx_GOTREF(__pyx_t_13);
65762 __pyx_t_8 = NULL((void*)0);
65763 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65764 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65765 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
65766 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65767 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
65768 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65769 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65770 }
65771 }
65772 if (!__pyx_t_8) {
65773 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65773; goto __pyx_L1_error;}
65774 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65775 __Pyx_GOTREF(__pyx_t_7);
65776 } else {
65777 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65777; goto __pyx_L1_error;}
65778 __Pyx_GOTREF(__pyx_t_14);
65779 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
65780 __Pyx_GIVEREF(__pyx_t_13);
65781 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_13
)
;
65782 __pyx_t_13 = 0;
65783 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2041; __pyx_clineno = __LINE__65783; goto __pyx_L1_error;}
65784 __Pyx_GOTREF(__pyx_t_7);
65785 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65786 }
65787 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65788 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_write_full, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2042; __pyx_clineno = __LINE__65788; goto __pyx_L1_error;}
65789 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65790 PyType_Modified(__pyx_ptype_5rados_WriteOp);
65791
65792 /* "rados.pyx":2056
65793 * rados_write_op_write_full(self.write_op, _to_write, length)
65794 *
65795 * @requires(('to_write', bytes), ('offset', int)) # <<<<<<<<<<<<<<
65796 * def write(self, to_write, offset=0):
65797 * """
65798 */
65799 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65799; goto __pyx_L1_error;}
65800 __Pyx_GOTREF(__pyx_t_14);
65801 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65801; goto __pyx_L1_error;}
65802 __Pyx_GOTREF(__pyx_t_13);
65803 __Pyx_INCREF(__pyx_n_s_to_write)( ((PyObject*)(__pyx_n_s_to_write))->ob_refcnt++);
65804 __Pyx_GIVEREF(__pyx_n_s_to_write);
65805 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_to_write)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_to_write
)
;
65806 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
65807 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
65808 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
65809 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65809; goto __pyx_L1_error;}
65810 __Pyx_GOTREF(__pyx_t_8);
65811 __Pyx_INCREF(__pyx_n_s_offset)( ((PyObject*)(__pyx_n_s_offset))->ob_refcnt++);
65812 __Pyx_GIVEREF(__pyx_n_s_offset);
65813 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_offset)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_offset
)
;
65814 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
65815 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
65816 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
65817 __pyx_t_15 = NULL((void*)0);
65818 __pyx_t_17 = 0;
65819 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
65820 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
65821 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
65822 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
65823 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
65824 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65825 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65826 __pyx_t_17 = 1;
65827 }
65828 }
65829 __pyx_t_16 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65829; goto __pyx_L1_error;}
65830 __Pyx_GOTREF(__pyx_t_16);
65831 if (__pyx_t_15) {
65832 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
65833 }
65834 __Pyx_GIVEREF(__pyx_t_13);
65835 PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+__pyx_t_17] = __pyx_t_13
)
;
65836 __Pyx_GIVEREF(__pyx_t_8);
65837 PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_16))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
65838 __pyx_t_13 = 0;
65839 __pyx_t_8 = 0;
65840 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65840; goto __pyx_L1_error;}
65841 __Pyx_GOTREF(__pyx_t_5);
65842 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
65843 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65844
65845 /* "rados.pyx":2057
65846 *
65847 * @requires(('to_write', bytes), ('offset', int))
65848 * def write(self, to_write, offset=0): # <<<<<<<<<<<<<<
65849 * """
65850 * Write to offset.
65851 */
65852 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_write); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2057; __pyx_clineno = __LINE__65852; goto __pyx_L1_error;}
65853 __Pyx_GOTREF(__pyx_t_14);
65854 __pyx_t_16 = NULL((void*)0);
65855 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65856 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65857 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
65858 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65859 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
65860 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65861 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65862 }
65863 }
65864 if (!__pyx_t_16) {
65865 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65865; goto __pyx_L1_error;}
65866 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65867 __Pyx_GOTREF(__pyx_t_7);
65868 } else {
65869 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65869; goto __pyx_L1_error;}
65870 __Pyx_GOTREF(__pyx_t_8);
65871 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
65872 __Pyx_GIVEREF(__pyx_t_14);
65873 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
65874 __pyx_t_14 = 0;
65875 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2056; __pyx_clineno = __LINE__65875; goto __pyx_L1_error;}
65876 __Pyx_GOTREF(__pyx_t_7);
65877 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65878 }
65879 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65880 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_write, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2057; __pyx_clineno = __LINE__65880; goto __pyx_L1_error;}
65881 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65882 PyType_Modified(__pyx_ptype_5rados_WriteOp);
65883
65884 /* "rados.pyx":2074
65885 * rados_write_op_write(self.write_op, _to_write, length, _offset)
65886 *
65887 * @requires(('version', int)) # <<<<<<<<<<<<<<
65888 * def assert_version(self, version):
65889 * """
65890 */
65891 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65891; goto __pyx_L1_error;}
65892 __Pyx_GOTREF(__pyx_t_8);
65893 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65893; goto __pyx_L1_error;}
65894 __Pyx_GOTREF(__pyx_t_14);
65895 __Pyx_INCREF(__pyx_n_s_version)( ((PyObject*)(__pyx_n_s_version))->ob_refcnt++);
65896 __Pyx_GIVEREF(__pyx_n_s_version);
65897 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_version)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_version
)
;
65898 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
65899 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
65900 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
65901 __pyx_t_16 = NULL((void*)0);
65902 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
65903 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
65904 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
65905 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
65906 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
65907 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65908 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65909 }
65910 }
65911 if (!__pyx_t_16) {
65912 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65912; goto __pyx_L1_error;}
65913 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65914 __Pyx_GOTREF(__pyx_t_5);
65915 } else {
65916 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65916; goto __pyx_L1_error;}
65917 __Pyx_GOTREF(__pyx_t_13);
65918 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
65919 __Pyx_GIVEREF(__pyx_t_14);
65920 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
65921 __pyx_t_14 = 0;
65922 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65922; goto __pyx_L1_error;}
65923 __Pyx_GOTREF(__pyx_t_5);
65924 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
65925 }
65926 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65927
65928 /* "rados.pyx":2075
65929 *
65930 * @requires(('version', int))
65931 * def assert_version(self, version): # <<<<<<<<<<<<<<
65932 * """
65933 * Check if object's version is the expected one.
65934 */
65935 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_assert_version); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2075; __pyx_clineno = __LINE__65935; goto __pyx_L1_error;}
65936 __Pyx_GOTREF(__pyx_t_8);
65937 __pyx_t_13 = NULL((void*)0);
65938 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
65939 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
65940 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
65941 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
65942 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
65943 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
65944 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
65945 }
65946 }
65947 if (!__pyx_t_13) {
65948 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65948; goto __pyx_L1_error;}
65949 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
65950 __Pyx_GOTREF(__pyx_t_7);
65951 } else {
65952 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65952; goto __pyx_L1_error;}
65953 __Pyx_GOTREF(__pyx_t_14);
65954 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
65955 __Pyx_GIVEREF(__pyx_t_8);
65956 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_8
)
;
65957 __pyx_t_8 = 0;
65958 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2074; __pyx_clineno = __LINE__65958; goto __pyx_L1_error;}
65959 __Pyx_GOTREF(__pyx_t_7);
65960 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
65961 }
65962 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
65963 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_assert_version, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2075; __pyx_clineno = __LINE__65963; goto __pyx_L1_error;}
65964 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
65965 PyType_Modified(__pyx_ptype_5rados_WriteOp);
65966
65967 /* "rados.pyx":2087
65968 * rados_write_op_assert_version(self.write_op, _version)
65969 *
65970 * @requires(('offset', int), ('length', int)) # <<<<<<<<<<<<<<
65971 * def zero(self, offset, length):
65972 * """
65973 */
65974 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__65974; goto __pyx_L1_error;}
65975 __Pyx_GOTREF(__pyx_t_14);
65976 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__65976; goto __pyx_L1_error;}
65977 __Pyx_GOTREF(__pyx_t_8);
65978 __Pyx_INCREF(__pyx_n_s_offset)( ((PyObject*)(__pyx_n_s_offset))->ob_refcnt++);
65979 __Pyx_GIVEREF(__pyx_n_s_offset);
65980 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_offset)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_offset
)
;
65981 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
65982 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
65983 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
65984 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__65984; goto __pyx_L1_error;}
65985 __Pyx_GOTREF(__pyx_t_13);
65986 __Pyx_INCREF(__pyx_n_s_length)( ((PyObject*)(__pyx_n_s_length))->ob_refcnt++);
65987 __Pyx_GIVEREF(__pyx_n_s_length);
65988 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_length)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_length
)
;
65989 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
65990 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
65991 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
65992 __pyx_t_16 = NULL((void*)0);
65993 __pyx_t_17 = 0;
65994 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
65995 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
65996 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
65997 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
65998 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
65999 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66000 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66001 __pyx_t_17 = 1;
66002 }
66003 }
66004 __pyx_t_15 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__66004; goto __pyx_L1_error;}
66005 __Pyx_GOTREF(__pyx_t_15);
66006 if (__pyx_t_16) {
66007 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
66008 }
66009 __Pyx_GIVEREF(__pyx_t_8);
66010 PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+__pyx_t_17] = __pyx_t_8
)
;
66011 __Pyx_GIVEREF(__pyx_t_13);
66012 PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[1+__pyx_t_17] = __pyx_t_13
)
;
66013 __pyx_t_8 = 0;
66014 __pyx_t_13 = 0;
66015 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__66015; goto __pyx_L1_error;}
66016 __Pyx_GOTREF(__pyx_t_5);
66017 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
66018 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66019
66020 /* "rados.pyx":2088
66021 *
66022 * @requires(('offset', int), ('length', int))
66023 * def zero(self, offset, length): # <<<<<<<<<<<<<<
66024 * """
66025 * Zero part of an object.
66026 */
66027 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_zero); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__66027; goto __pyx_L1_error;}
66028 __Pyx_GOTREF(__pyx_t_14);
66029 __pyx_t_15 = NULL((void*)0);
66030 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
66031 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
66032 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
66033 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
66034 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
66035 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66036 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66037 }
66038 }
66039 if (!__pyx_t_15) {
66040 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__66040; goto __pyx_L1_error;}
66041 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66042 __Pyx_GOTREF(__pyx_t_7);
66043 } else {
66044 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__66044; goto __pyx_L1_error;}
66045 __Pyx_GOTREF(__pyx_t_13);
66046 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
66047 __Pyx_GIVEREF(__pyx_t_14);
66048 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
66049 __pyx_t_14 = 0;
66050 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2087; __pyx_clineno = __LINE__66050; goto __pyx_L1_error;}
66051 __Pyx_GOTREF(__pyx_t_7);
66052 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66053 }
66054 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66055 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_zero, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2088; __pyx_clineno = __LINE__66055; goto __pyx_L1_error;}
66056 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66057 PyType_Modified(__pyx_ptype_5rados_WriteOp);
66058
66059 /* "rados.pyx":2104
66060 * rados_write_op_zero(self.write_op, _length, _offset)
66061 *
66062 * @requires(('offset', int)) # <<<<<<<<<<<<<<
66063 * def truncate(self, offset):
66064 * """
66065 */
66066 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66066; goto __pyx_L1_error;}
66067 __Pyx_GOTREF(__pyx_t_13);
66068 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66068; goto __pyx_L1_error;}
66069 __Pyx_GOTREF(__pyx_t_14);
66070 __Pyx_INCREF(__pyx_n_s_offset)( ((PyObject*)(__pyx_n_s_offset))->ob_refcnt++);
66071 __Pyx_GIVEREF(__pyx_n_s_offset);
66072 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_offset)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_offset
)
;
66073 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
66074 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
66075 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
66076 __pyx_t_15 = NULL((void*)0);
66077 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
66078 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
66079 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
66080 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
66081 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
66082 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66083 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66084 }
66085 }
66086 if (!__pyx_t_15) {
66087 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66087; goto __pyx_L1_error;}
66088 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66089 __Pyx_GOTREF(__pyx_t_5);
66090 } else {
66091 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66091; goto __pyx_L1_error;}
66092 __Pyx_GOTREF(__pyx_t_8);
66093 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
66094 __Pyx_GIVEREF(__pyx_t_14);
66095 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
66096 __pyx_t_14 = 0;
66097 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66097; goto __pyx_L1_error;}
66098 __Pyx_GOTREF(__pyx_t_5);
66099 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
66100 }
66101 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66102
66103 /* "rados.pyx":2105
66104 *
66105 * @requires(('offset', int))
66106 * def truncate(self, offset): # <<<<<<<<<<<<<<
66107 * """
66108 * Truncate an object.
66109 */
66110 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_WriteOp, __pyx_n_s_truncate); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2105; __pyx_clineno = __LINE__66110; goto __pyx_L1_error;}
66111 __Pyx_GOTREF(__pyx_t_13);
66112 __pyx_t_8 = NULL((void*)0);
66113 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
66114 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
66115 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
66116 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
66117 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
66118 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66119 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66120 }
66121 }
66122 if (!__pyx_t_8) {
66123 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66123; goto __pyx_L1_error;}
66124 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66125 __Pyx_GOTREF(__pyx_t_7);
66126 } else {
66127 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66127; goto __pyx_L1_error;}
66128 __Pyx_GOTREF(__pyx_t_14);
66129 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
66130 __Pyx_GIVEREF(__pyx_t_13);
66131 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_13
)
;
66132 __pyx_t_13 = 0;
66133 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2104; __pyx_clineno = __LINE__66133; goto __pyx_L1_error;}
66134 __Pyx_GOTREF(__pyx_t_7);
66135 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66136 }
66137 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66138 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_WriteOp->tp_dict, __pyx_n_s_truncate, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2105; __pyx_clineno = __LINE__66138; goto __pyx_L1_error;}
66139 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66140 PyType_Modified(__pyx_ptype_5rados_WriteOp);
66141
66142 /* "rados.pyx":2119
66143 *
66144 *
66145 * class WriteOpCtx(WriteOp, OpCtx): # <<<<<<<<<<<<<<
66146 * """write operation context manager"""
66147 *
66148 */
66149 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_OpCtx); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__66149; goto __pyx_L1_error;}
66150 __Pyx_GOTREF(__pyx_t_7);
66151 __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__66151; goto __pyx_L1_error;}
66152 __Pyx_GOTREF(__pyx_t_5);
66153 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_WriteOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_WriteOp)))->
ob_refcnt++)
;
66154 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_WriteOp));
66155 PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_ptype_5rados_WriteOp))(((PyTupleObject *)(__pyx_t_5))->ob_item[0] = ((PyObject *
)__pyx_ptype_5rados_WriteOp))
;
66156 __Pyx_GIVEREF(__pyx_t_7);
66157 PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)(((PyTupleObject *)(__pyx_t_5))->ob_item[1] = __pyx_t_7);
66158 __pyx_t_7 = 0;
66159 __pyx_t_7 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_5); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__66159; goto __pyx_L1_error;}
66160 __Pyx_GOTREF(__pyx_t_7);
66161 __pyx_t_14 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_t_5, __pyx_n_s_WriteOpCtx, __pyx_n_s_WriteOpCtx, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_write_operation_context_manager); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__66161; goto __pyx_L1_error;}
66162 __Pyx_GOTREF(__pyx_t_14);
66163 __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_WriteOpCtx, __pyx_t_5, __pyx_t_14, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__66163; goto __pyx_L1_error;}
66164 __Pyx_GOTREF(__pyx_t_13);
66165 if (PyDict_SetItem(__pyx_d, __pyx_n_s_WriteOpCtx, __pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2119; __pyx_clineno = __LINE__66165; goto __pyx_L1_error;}
66166 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66167 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66168 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66169 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66170
66171 /* "rados.pyx":2136
66172 *
66173 * @requires(('flags', int))
66174 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
66175 * """
66176 * Set flags for the last operation added to this read_op.
66177 */
66178 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_LIBRADOS_OPERATION_NOFLAG); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2136; __pyx_clineno = __LINE__66178; goto __pyx_L1_error;}
66179 __Pyx_GOTREF(__pyx_t_5);
66180 __pyx_k__49 = __pyx_t_5;
66181 __Pyx_GIVEREF(__pyx_t_5);
66182 __pyx_t_5 = 0;
66183
66184 /* "rados.pyx":2135
66185 * rados_release_read_op(self.read_op)
66186 *
66187 * @requires(('flags', int)) # <<<<<<<<<<<<<<
66188 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG):
66189 * """
66190 */
66191 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66191; goto __pyx_L1_error;}
66192 __Pyx_GOTREF(__pyx_t_14);
66193 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66193; goto __pyx_L1_error;}
66194 __Pyx_GOTREF(__pyx_t_13);
66195 __Pyx_INCREF(__pyx_n_s_flags)( ((PyObject*)(__pyx_n_s_flags))->ob_refcnt++);
66196 __Pyx_GIVEREF(__pyx_n_s_flags);
66197 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_flags)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_flags
)
;
66198 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
66199 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
66200 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
66201 __pyx_t_8 = NULL((void*)0);
66202 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
66203 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
66204 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
66205 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
66206 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
66207 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66208 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66209 }
66210 }
66211 if (!__pyx_t_8) {
66212 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66212; goto __pyx_L1_error;}
66213 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66214 __Pyx_GOTREF(__pyx_t_7);
66215 } else {
66216 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66216; goto __pyx_L1_error;}
66217 __Pyx_GOTREF(__pyx_t_15);
66218 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
66219 __Pyx_GIVEREF(__pyx_t_13);
66220 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_13
)
;
66221 __pyx_t_13 = 0;
66222 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66222; goto __pyx_L1_error;}
66223 __Pyx_GOTREF(__pyx_t_7);
66224 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
66225 }
66226 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66227
66228 /* "rados.pyx":2136
66229 *
66230 * @requires(('flags', int))
66231 * def set_flags(self, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
66232 * """
66233 * Set flags for the last operation added to this read_op.
66234 */
66235 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_ReadOp, __pyx_n_s_set_flags); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2136; __pyx_clineno = __LINE__66235; goto __pyx_L1_error;}
66236 __Pyx_GOTREF(__pyx_t_14);
66237 __pyx_t_15 = NULL((void*)0);
66238 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_7))__builtin_expect(!!(((__pyx_t_7)->ob_type == &PyMethod_Type
)), 0)
) {
66239 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_self);
66240 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
66241 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7)(((PyMethodObject *)__pyx_t_7) -> im_func);
66242 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
66243 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66244 __Pyx_DECREF_SET(__pyx_t_7, function)do { PyObject *tmp = (PyObject *) __pyx_t_7; __pyx_t_7 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66245 }
66246 }
66247 if (!__pyx_t_15) {
66248 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66248; goto __pyx_L1_error;}
66249 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66250 __Pyx_GOTREF(__pyx_t_5);
66251 } else {
66252 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66252; goto __pyx_L1_error;}
66253 __Pyx_GOTREF(__pyx_t_13);
66254 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
66255 __Pyx_GIVEREF(__pyx_t_14);
66256 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
66257 __pyx_t_14 = 0;
66258 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__66258; goto __pyx_L1_error;}
66259 __Pyx_GOTREF(__pyx_t_5);
66260 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66261 }
66262 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66263 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_ReadOp->tp_dict, __pyx_n_s_set_flags, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2136; __pyx_clineno = __LINE__66263; goto __pyx_L1_error;}
66264 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66265 PyType_Modified(__pyx_ptype_5rados_ReadOp);
66266
66267 /* "rados.pyx":2150
66268 *
66269 *
66270 * class ReadOpCtx(ReadOp, OpCtx): # <<<<<<<<<<<<<<
66271 * """read operation context manager"""
66272 *
66273 */
66274 __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_OpCtx); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__66274; goto __pyx_L1_error;}
66275 __Pyx_GOTREF(__pyx_t_5);
66276 __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__66276; goto __pyx_L1_error;}
66277 __Pyx_GOTREF(__pyx_t_7);
66278 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_ReadOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_ReadOp)))->
ob_refcnt++)
;
66279 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_ReadOp));
66280 PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_ptype_5rados_ReadOp))(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = ((PyObject *
)__pyx_ptype_5rados_ReadOp))
;
66281 __Pyx_GIVEREF(__pyx_t_5);
66282 PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_5)(((PyTupleObject *)(__pyx_t_7))->ob_item[1] = __pyx_t_5);
66283 __pyx_t_5 = 0;
66284 __pyx_t_5 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__66284; goto __pyx_L1_error;}
66285 __Pyx_GOTREF(__pyx_t_5);
66286 __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_7, __pyx_n_s_ReadOpCtx, __pyx_n_s_ReadOpCtx, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_read_operation_context_manager); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__66286; goto __pyx_L1_error;}
66287 __Pyx_GOTREF(__pyx_t_13);
66288 __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_n_s_ReadOpCtx, __pyx_t_7, __pyx_t_13, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__66288; goto __pyx_L1_error;}
66289 __Pyx_GOTREF(__pyx_t_14);
66290 if (PyDict_SetItem(__pyx_d, __pyx_n_s_ReadOpCtx, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__66290; goto __pyx_L1_error;}
66291 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66292 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66293 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66294 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66295
66296 /* "rados.pyx":2241
66297 * return completion_obj
66298 *
66299 * @requires(('object_name', str_type), ('oncomplete', opt(Callable))) # <<<<<<<<<<<<<<
66300 * def aio_stat(self, object_name, oncomplete):
66301 * """
66302 */
66303 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66303; goto __pyx_L1_error;}
66304 __Pyx_GOTREF(__pyx_t_13);
66305 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66305; goto __pyx_L1_error;}
66306 __Pyx_GOTREF(__pyx_t_14);
66307 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66307; goto __pyx_L1_error;}
66308 __Pyx_GOTREF(__pyx_t_15);
66309 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
66310 __Pyx_GIVEREF(__pyx_n_s_object_name);
66311 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_object_name
)
;
66312 __Pyx_GIVEREF(__pyx_t_14);
66313 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_14);
66314 __pyx_t_14 = 0;
66315 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66315; goto __pyx_L1_error;}
66316 __Pyx_GOTREF(__pyx_t_8);
66317 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66317; goto __pyx_L1_error;}
66318 __Pyx_GOTREF(__pyx_t_16);
66319 __pyx_t_1 = NULL((void*)0);
66320 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
66321 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
66322 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
66323 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
66324 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
66325 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66326 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66327 }
66328 }
66329 if (!__pyx_t_1) {
66330 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_16); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66330; goto __pyx_L1_error;}
66331 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
66332 __Pyx_GOTREF(__pyx_t_14);
66333 } else {
66334 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66334; goto __pyx_L1_error;}
66335 __Pyx_GOTREF(__pyx_t_9);
66336 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
66337 __Pyx_GIVEREF(__pyx_t_16);
66338 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_16
)
;
66339 __pyx_t_16 = 0;
66340 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66340; goto __pyx_L1_error;}
66341 __Pyx_GOTREF(__pyx_t_14);
66342 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
66343 }
66344 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
66345 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66345; goto __pyx_L1_error;}
66346 __Pyx_GOTREF(__pyx_t_8);
66347 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
66348 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
66349 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_oncomplete
)
;
66350 __Pyx_GIVEREF(__pyx_t_14);
66351 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_14);
66352 __pyx_t_14 = 0;
66353 __pyx_t_14 = NULL((void*)0);
66354 __pyx_t_17 = 0;
66355 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
66356 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
66357 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
66358 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
66359 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
66360 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66361 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66362 __pyx_t_17 = 1;
66363 }
66364 }
66365 __pyx_t_9 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66365; goto __pyx_L1_error;}
66366 __Pyx_GOTREF(__pyx_t_9);
66367 if (__pyx_t_14) {
66368 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
66369 }
66370 __Pyx_GIVEREF(__pyx_t_15);
66371 PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+__pyx_t_17] = __pyx_t_15
)
;
66372 __Pyx_GIVEREF(__pyx_t_8);
66373 PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
66374 __pyx_t_15 = 0;
66375 __pyx_t_8 = 0;
66376 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66376; goto __pyx_L1_error;}
66377 __Pyx_GOTREF(__pyx_t_5);
66378 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
66379 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66380
66381 /* "rados.pyx":2242
66382 *
66383 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)))
66384 * def aio_stat(self, object_name, oncomplete): # <<<<<<<<<<<<<<
66385 * """
66386 * Asynchronously get object stats (size/mtime)
66387 */
66388 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_aio_stat); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__66388; goto __pyx_L1_error;}
66389 __Pyx_GOTREF(__pyx_t_13);
66390 __pyx_t_9 = NULL((void*)0);
66391 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
66392 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
66393 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
66394 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
66395 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
66396 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66397 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66398 }
66399 }
66400 if (!__pyx_t_9) {
66401 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66401; goto __pyx_L1_error;}
66402 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66403 __Pyx_GOTREF(__pyx_t_7);
66404 } else {
66405 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66405; goto __pyx_L1_error;}
66406 __Pyx_GOTREF(__pyx_t_8);
66407 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
66408 __Pyx_GIVEREF(__pyx_t_13);
66409 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_13
)
;
66410 __pyx_t_13 = 0;
66411 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__66411; goto __pyx_L1_error;}
66412 __Pyx_GOTREF(__pyx_t_7);
66413 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
66414 }
66415 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66416 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_aio_stat, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__66416; goto __pyx_L1_error;}
66417 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66418 PyType_Modified(__pyx_ptype_5rados_Ioctx);
66419
66420 /* "rados.pyx":2287
66421 * return completion
66422 *
66423 * @requires(('object_name', str_type), ('to_write', bytes), ('offset', int), # <<<<<<<<<<<<<<
66424 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
66425 * def aio_write(self, object_name, to_write, offset=0,
66426 */
66427 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66427; goto __pyx_L1_error;}
66428 __Pyx_GOTREF(__pyx_t_8);
66429 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66429; goto __pyx_L1_error;}
66430 __Pyx_GOTREF(__pyx_t_13);
66431 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66431; goto __pyx_L1_error;}
66432 __Pyx_GOTREF(__pyx_t_9);
66433 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
66434 __Pyx_GIVEREF(__pyx_n_s_object_name);
66435 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_object_name
)
;
66436 __Pyx_GIVEREF(__pyx_t_13);
66437 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_13);
66438 __pyx_t_13 = 0;
66439 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66439; goto __pyx_L1_error;}
66440 __Pyx_GOTREF(__pyx_t_13);
66441 __Pyx_INCREF(__pyx_n_s_to_write)( ((PyObject*)(__pyx_n_s_to_write))->ob_refcnt++);
66442 __Pyx_GIVEREF(__pyx_n_s_to_write);
66443 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_to_write)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_to_write
)
;
66444 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
66445 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
66446 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
66447 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66447; goto __pyx_L1_error;}
66448 __Pyx_GOTREF(__pyx_t_15);
66449 __Pyx_INCREF(__pyx_n_s_offset)( ((PyObject*)(__pyx_n_s_offset))->ob_refcnt++);
66450 __Pyx_GIVEREF(__pyx_n_s_offset);
66451 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_offset)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_offset
)
;
66452 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
66453 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
66454 PyTuple_SET_ITEM(__pyx_t_15, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
66455
66456 /* "rados.pyx":2288
66457 *
66458 * @requires(('object_name', str_type), ('to_write', bytes), ('offset', int),
66459 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable))) # <<<<<<<<<<<<<<
66460 * def aio_write(self, object_name, to_write, offset=0,
66461 * oncomplete=None, onsafe=None):
66462 */
66463 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66463; goto __pyx_L1_error;}
66464 __Pyx_GOTREF(__pyx_t_16);
66465 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66465; goto __pyx_L1_error;}
66466 __Pyx_GOTREF(__pyx_t_1);
66467 __pyx_t_11 = NULL((void*)0);
66468 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_16))__builtin_expect(!!(((__pyx_t_16)->ob_type == &PyMethod_Type
)), 0)
) {
66469 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_self);
66470 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
66471 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_func);
66472 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
66473 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66474 __Pyx_DECREF_SET(__pyx_t_16, function)do { PyObject *tmp = (PyObject *) __pyx_t_16; __pyx_t_16 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66475 }
66476 }
66477 if (!__pyx_t_11) {
66478 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66478; goto __pyx_L1_error;}
66479 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
66480 __Pyx_GOTREF(__pyx_t_14);
66481 } else {
66482 __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66482; goto __pyx_L1_error;}
66483 __Pyx_GOTREF(__pyx_t_12);
66484 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
66485 __Pyx_GIVEREF(__pyx_t_1);
66486 PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_12))->ob_item[0+1] = __pyx_t_1
)
;
66487 __pyx_t_1 = 0;
66488 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66488; goto __pyx_L1_error;}
66489 __Pyx_GOTREF(__pyx_t_14);
66490 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
66491 }
66492 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
66493 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66493; goto __pyx_L1_error;}
66494 __Pyx_GOTREF(__pyx_t_16);
66495 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
66496 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
66497 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_oncomplete
)
;
66498 __Pyx_GIVEREF(__pyx_t_14);
66499 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_14);
66500 __pyx_t_14 = 0;
66501 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66501; goto __pyx_L1_error;}
66502 __Pyx_GOTREF(__pyx_t_12);
66503 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66503; goto __pyx_L1_error;}
66504 __Pyx_GOTREF(__pyx_t_1);
66505 __pyx_t_11 = NULL((void*)0);
66506 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_12))__builtin_expect(!!(((__pyx_t_12)->ob_type == &PyMethod_Type
)), 0)
) {
66507 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_self);
66508 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
66509 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_func);
66510 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
66511 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66512 __Pyx_DECREF_SET(__pyx_t_12, function)do { PyObject *tmp = (PyObject *) __pyx_t_12; __pyx_t_12 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66513 }
66514 }
66515 if (!__pyx_t_11) {
66516 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66516; goto __pyx_L1_error;}
66517 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
66518 __Pyx_GOTREF(__pyx_t_14);
66519 } else {
66520 __pyx_t_18 = PyTuple_New(1+1); if (unlikely(!__pyx_t_18)__builtin_expect(!!(!__pyx_t_18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66520; goto __pyx_L1_error;}
66521 __Pyx_GOTREF(__pyx_t_18);
66522 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_18))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
66523 __Pyx_GIVEREF(__pyx_t_1);
66524 PyTuple_SET_ITEM(__pyx_t_18, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_18))->ob_item[0+1] = __pyx_t_1
)
;
66525 __pyx_t_1 = 0;
66526 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_18, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66526; goto __pyx_L1_error;}
66527 __Pyx_GOTREF(__pyx_t_14);
66528 __Pyx_DECREF(__pyx_t_18)do { if ( --((PyObject*)(__pyx_t_18))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_18)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_18)))); } while
(0)
; __pyx_t_18 = 0;
66529 }
66530 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
66531 __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2288; __pyx_clineno = __LINE__66531; goto __pyx_L1_error;}
66532 __Pyx_GOTREF(__pyx_t_12);
66533 __Pyx_INCREF(__pyx_n_s_onsafe)( ((PyObject*)(__pyx_n_s_onsafe))->ob_refcnt++);
66534 __Pyx_GIVEREF(__pyx_n_s_onsafe);
66535 PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_n_s_onsafe)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_n_s_onsafe
)
;
66536 __Pyx_GIVEREF(__pyx_t_14);
66537 PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_12))->ob_item[1] = __pyx_t_14);
66538 __pyx_t_14 = 0;
66539 __pyx_t_14 = NULL((void*)0);
66540 __pyx_t_17 = 0;
66541 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
66542 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
66543 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
66544 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
66545 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
66546 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66547 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66548 __pyx_t_17 = 1;
66549 }
66550 }
66551 __pyx_t_18 = PyTuple_New(5+__pyx_t_17); if (unlikely(!__pyx_t_18)__builtin_expect(!!(!__pyx_t_18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66551; goto __pyx_L1_error;}
66552 __Pyx_GOTREF(__pyx_t_18);
66553 if (__pyx_t_14) {
66554 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_18))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
66555 }
66556 __Pyx_GIVEREF(__pyx_t_9);
66557 PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_18))->ob_item[0+__pyx_t_17] = __pyx_t_9
)
;
66558 __Pyx_GIVEREF(__pyx_t_13);
66559 PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_18))->ob_item[1+__pyx_t_17] = __pyx_t_13
)
;
66560 __Pyx_GIVEREF(__pyx_t_15);
66561 PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_18))->ob_item[2+__pyx_t_17] = __pyx_t_15
)
;
66562 __Pyx_GIVEREF(__pyx_t_16);
66563 PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_17, __pyx_t_16)(((PyTupleObject *)(__pyx_t_18))->ob_item[3+__pyx_t_17] = __pyx_t_16
)
;
66564 __Pyx_GIVEREF(__pyx_t_12);
66565 PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_17, __pyx_t_12)(((PyTupleObject *)(__pyx_t_18))->ob_item[4+__pyx_t_17] = __pyx_t_12
)
;
66566 __pyx_t_9 = 0;
66567 __pyx_t_13 = 0;
66568 __pyx_t_15 = 0;
66569 __pyx_t_16 = 0;
66570 __pyx_t_12 = 0;
66571 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66571; goto __pyx_L1_error;}
66572 __Pyx_GOTREF(__pyx_t_5);
66573 __Pyx_DECREF(__pyx_t_18)do { if ( --((PyObject*)(__pyx_t_18))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_18)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_18)))); } while
(0)
; __pyx_t_18 = 0;
66574 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
66575
66576 /* "rados.pyx":2289
66577 * @requires(('object_name', str_type), ('to_write', bytes), ('offset', int),
66578 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
66579 * def aio_write(self, object_name, to_write, offset=0, # <<<<<<<<<<<<<<
66580 * oncomplete=None, onsafe=None):
66581 * """
66582 */
66583 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_aio_write); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__66583; goto __pyx_L1_error;}
66584 __Pyx_GOTREF(__pyx_t_8);
66585 __pyx_t_18 = NULL((void*)0);
66586 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
66587 __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
66588 if (likely(__pyx_t_18)__builtin_expect(!!(__pyx_t_18), 1)) {
66589 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
66590 __Pyx_INCREF(__pyx_t_18)( ((PyObject*)(__pyx_t_18))->ob_refcnt++);
66591 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66592 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66593 }
66594 }
66595 if (!__pyx_t_18) {
66596 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66596; goto __pyx_L1_error;}
66597 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
66598 __Pyx_GOTREF(__pyx_t_7);
66599 } else {
66600 __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66600; goto __pyx_L1_error;}
66601 __Pyx_GOTREF(__pyx_t_12);
66602 __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_18)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_18); __pyx_t_18 = NULL((void*)0);
66603 __Pyx_GIVEREF(__pyx_t_8);
66604 PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_12))->ob_item[0+1] = __pyx_t_8
)
;
66605 __pyx_t_8 = 0;
66606 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2287; __pyx_clineno = __LINE__66606; goto __pyx_L1_error;}
66607 __Pyx_GOTREF(__pyx_t_7);
66608 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
66609 }
66610 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66611 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_aio_write, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__66611; goto __pyx_L1_error;}
66612 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66613 PyType_Modified(__pyx_ptype_5rados_Ioctx);
66614
66615 /* "rados.pyx":2332
66616 * return completion
66617 *
66618 * @requires(('object_name', str_type), ('to_write', bytes), ('oncomplete', opt(Callable)), # <<<<<<<<<<<<<<
66619 * ('onsafe', opt(Callable)))
66620 * def aio_write_full(self, object_name, to_write,
66621 */
66622 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66622; goto __pyx_L1_error;}
66623 __Pyx_GOTREF(__pyx_t_12);
66624 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66624; goto __pyx_L1_error;}
66625 __Pyx_GOTREF(__pyx_t_8);
66626 __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)__builtin_expect(!!(!__pyx_t_18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66626; goto __pyx_L1_error;}
66627 __Pyx_GOTREF(__pyx_t_18);
66628 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
66629 __Pyx_GIVEREF(__pyx_n_s_object_name);
66630 PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_18))->ob_item[0] = __pyx_n_s_object_name
)
;
66631 __Pyx_GIVEREF(__pyx_t_8);
66632 PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_18))->ob_item[1] = __pyx_t_8);
66633 __pyx_t_8 = 0;
66634 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66634; goto __pyx_L1_error;}
66635 __Pyx_GOTREF(__pyx_t_8);
66636 __Pyx_INCREF(__pyx_n_s_to_write)( ((PyObject*)(__pyx_n_s_to_write))->ob_refcnt++);
66637 __Pyx_GIVEREF(__pyx_n_s_to_write);
66638 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_to_write)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_to_write
)
;
66639 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
66640 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
66641 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
66642 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66642; goto __pyx_L1_error;}
66643 __Pyx_GOTREF(__pyx_t_15);
66644 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66644; goto __pyx_L1_error;}
66645 __Pyx_GOTREF(__pyx_t_13);
66646 __pyx_t_9 = NULL((void*)0);
66647 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
66648 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
66649 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
66650 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
66651 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
66652 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66653 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66654 }
66655 }
66656 if (!__pyx_t_9) {
66657 __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_13); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66657; goto __pyx_L1_error;}
66658 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66659 __Pyx_GOTREF(__pyx_t_16);
66660 } else {
66661 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66661; goto __pyx_L1_error;}
66662 __Pyx_GOTREF(__pyx_t_14);
66663 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
66664 __Pyx_GIVEREF(__pyx_t_13);
66665 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_13
)
;
66666 __pyx_t_13 = 0;
66667 __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66667; goto __pyx_L1_error;}
66668 __Pyx_GOTREF(__pyx_t_16);
66669 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66670 }
66671 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
66672 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66672; goto __pyx_L1_error;}
66673 __Pyx_GOTREF(__pyx_t_15);
66674 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
66675 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
66676 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_oncomplete
)
;
66677 __Pyx_GIVEREF(__pyx_t_16);
66678 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_16);
66679 __pyx_t_16 = 0;
66680
66681 /* "rados.pyx":2333
66682 *
66683 * @requires(('object_name', str_type), ('to_write', bytes), ('oncomplete', opt(Callable)),
66684 * ('onsafe', opt(Callable))) # <<<<<<<<<<<<<<
66685 * def aio_write_full(self, object_name, to_write,
66686 * oncomplete=None, onsafe=None):
66687 */
66688 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2333; __pyx_clineno = __LINE__66688; goto __pyx_L1_error;}
66689 __Pyx_GOTREF(__pyx_t_14);
66690 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2333; __pyx_clineno = __LINE__66690; goto __pyx_L1_error;}
66691 __Pyx_GOTREF(__pyx_t_13);
66692 __pyx_t_9 = NULL((void*)0);
66693 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
66694 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
66695 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
66696 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
66697 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
66698 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66699 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66700 }
66701 }
66702 if (!__pyx_t_9) {
66703 __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2333; __pyx_clineno = __LINE__66703; goto __pyx_L1_error;}
66704 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66705 __Pyx_GOTREF(__pyx_t_16);
66706 } else {
66707 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2333; __pyx_clineno = __LINE__66707; goto __pyx_L1_error;}
66708 __Pyx_GOTREF(__pyx_t_1);
66709 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
66710 __Pyx_GIVEREF(__pyx_t_13);
66711 PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = __pyx_t_13
)
;
66712 __pyx_t_13 = 0;
66713 __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2333; __pyx_clineno = __LINE__66713; goto __pyx_L1_error;}
66714 __Pyx_GOTREF(__pyx_t_16);
66715 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
66716 }
66717 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66718 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2333; __pyx_clineno = __LINE__66718; goto __pyx_L1_error;}
66719 __Pyx_GOTREF(__pyx_t_14);
66720 __Pyx_INCREF(__pyx_n_s_onsafe)( ((PyObject*)(__pyx_n_s_onsafe))->ob_refcnt++);
66721 __Pyx_GIVEREF(__pyx_n_s_onsafe);
66722 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_onsafe)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_onsafe
)
;
66723 __Pyx_GIVEREF(__pyx_t_16);
66724 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_16);
66725 __pyx_t_16 = 0;
66726 __pyx_t_16 = NULL((void*)0);
66727 __pyx_t_17 = 0;
66728 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_12))__builtin_expect(!!(((__pyx_t_12)->ob_type == &PyMethod_Type
)), 0)
) {
66729 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_self);
66730 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
66731 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_func);
66732 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
66733 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66734 __Pyx_DECREF_SET(__pyx_t_12, function)do { PyObject *tmp = (PyObject *) __pyx_t_12; __pyx_t_12 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66735 __pyx_t_17 = 1;
66736 }
66737 }
66738 __pyx_t_1 = PyTuple_New(4+__pyx_t_17); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66738; goto __pyx_L1_error;}
66739 __Pyx_GOTREF(__pyx_t_1);
66740 if (__pyx_t_16) {
66741 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
66742 }
66743 __Pyx_GIVEREF(__pyx_t_18);
66744 PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_17, __pyx_t_18)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+__pyx_t_17] = __pyx_t_18
)
;
66745 __Pyx_GIVEREF(__pyx_t_8);
66746 PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_1))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
66747 __Pyx_GIVEREF(__pyx_t_15);
66748 PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_1))->ob_item[2+__pyx_t_17] = __pyx_t_15
)
;
66749 __Pyx_GIVEREF(__pyx_t_14);
66750 PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_1))->ob_item[3+__pyx_t_17] = __pyx_t_14
)
;
66751 __pyx_t_18 = 0;
66752 __pyx_t_8 = 0;
66753 __pyx_t_15 = 0;
66754 __pyx_t_14 = 0;
66755 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66755; goto __pyx_L1_error;}
66756 __Pyx_GOTREF(__pyx_t_5);
66757 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
66758 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
66759
66760 /* "rados.pyx":2334
66761 * @requires(('object_name', str_type), ('to_write', bytes), ('oncomplete', opt(Callable)),
66762 * ('onsafe', opt(Callable)))
66763 * def aio_write_full(self, object_name, to_write, # <<<<<<<<<<<<<<
66764 * oncomplete=None, onsafe=None):
66765 * """
66766 */
66767 __pyx_t_12 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_aio_write_full); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__66767; goto __pyx_L1_error;}
66768 __Pyx_GOTREF(__pyx_t_12);
66769 __pyx_t_1 = NULL((void*)0);
66770 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
66771 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
66772 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
66773 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
66774 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
66775 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66776 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66777 }
66778 }
66779 if (!__pyx_t_1) {
66780 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_12); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66780; goto __pyx_L1_error;}
66781 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
66782 __Pyx_GOTREF(__pyx_t_7);
66783 } else {
66784 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66784; goto __pyx_L1_error;}
66785 __Pyx_GOTREF(__pyx_t_14);
66786 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
66787 __Pyx_GIVEREF(__pyx_t_12);
66788 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_12
)
;
66789 __pyx_t_12 = 0;
66790 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__66790; goto __pyx_L1_error;}
66791 __Pyx_GOTREF(__pyx_t_7);
66792 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66793 }
66794 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66795 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_aio_write_full, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__66795; goto __pyx_L1_error;}
66796 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66797 PyType_Modified(__pyx_ptype_5rados_Ioctx);
66798
66799 /* "rados.pyx":2377
66800 * return completion
66801 *
66802 * @requires(('object_name', str_type), ('to_append', bytes), ('oncomplete', opt(Callable)), # <<<<<<<<<<<<<<
66803 * ('onsafe', opt(Callable)))
66804 * def aio_append(self, object_name, to_append, oncomplete=None, onsafe=None):
66805 */
66806 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66806; goto __pyx_L1_error;}
66807 __Pyx_GOTREF(__pyx_t_14);
66808 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66808; goto __pyx_L1_error;}
66809 __Pyx_GOTREF(__pyx_t_12);
66810 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66810; goto __pyx_L1_error;}
66811 __Pyx_GOTREF(__pyx_t_1);
66812 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
66813 __Pyx_GIVEREF(__pyx_n_s_object_name);
66814 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_object_name
)
;
66815 __Pyx_GIVEREF(__pyx_t_12);
66816 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_12);
66817 __pyx_t_12 = 0;
66818 __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66818; goto __pyx_L1_error;}
66819 __Pyx_GOTREF(__pyx_t_12);
66820 __Pyx_INCREF(__pyx_n_s_to_append)( ((PyObject*)(__pyx_n_s_to_append))->ob_refcnt++);
66821 __Pyx_GIVEREF(__pyx_n_s_to_append);
66822 PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_n_s_to_append)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_n_s_to_append
)
;
66823 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
66824 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
66825 PyTuple_SET_ITEM(__pyx_t_12, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_12))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
66826 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66826; goto __pyx_L1_error;}
66827 __Pyx_GOTREF(__pyx_t_8);
66828 __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_18)__builtin_expect(!!(!__pyx_t_18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66828; goto __pyx_L1_error;}
66829 __Pyx_GOTREF(__pyx_t_18);
66830 __pyx_t_16 = NULL((void*)0);
66831 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
66832 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
66833 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
66834 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
66835 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
66836 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66837 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66838 }
66839 }
66840 if (!__pyx_t_16) {
66841 __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_18); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66841; goto __pyx_L1_error;}
66842 __Pyx_DECREF(__pyx_t_18)do { if ( --((PyObject*)(__pyx_t_18))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_18)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_18)))); } while
(0)
; __pyx_t_18 = 0;
66843 __Pyx_GOTREF(__pyx_t_15);
66844 } else {
66845 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66845; goto __pyx_L1_error;}
66846 __Pyx_GOTREF(__pyx_t_13);
66847 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
66848 __Pyx_GIVEREF(__pyx_t_18);
66849 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_18)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_18
)
;
66850 __pyx_t_18 = 0;
66851 __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66851; goto __pyx_L1_error;}
66852 __Pyx_GOTREF(__pyx_t_15);
66853 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66854 }
66855 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
66856 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66856; goto __pyx_L1_error;}
66857 __Pyx_GOTREF(__pyx_t_8);
66858 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
66859 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
66860 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_oncomplete
)
;
66861 __Pyx_GIVEREF(__pyx_t_15);
66862 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_15);
66863 __pyx_t_15 = 0;
66864
66865 /* "rados.pyx":2378
66866 *
66867 * @requires(('object_name', str_type), ('to_append', bytes), ('oncomplete', opt(Callable)),
66868 * ('onsafe', opt(Callable))) # <<<<<<<<<<<<<<
66869 * def aio_append(self, object_name, to_append, oncomplete=None, onsafe=None):
66870 * """
66871 */
66872 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__66872; goto __pyx_L1_error;}
66873 __Pyx_GOTREF(__pyx_t_13);
66874 __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_18)__builtin_expect(!!(!__pyx_t_18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__66874; goto __pyx_L1_error;}
66875 __Pyx_GOTREF(__pyx_t_18);
66876 __pyx_t_16 = NULL((void*)0);
66877 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
66878 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
66879 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
66880 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
66881 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
66882 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66883 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66884 }
66885 }
66886 if (!__pyx_t_16) {
66887 __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_18); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__66887; goto __pyx_L1_error;}
66888 __Pyx_DECREF(__pyx_t_18)do { if ( --((PyObject*)(__pyx_t_18))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_18)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_18)))); } while
(0)
; __pyx_t_18 = 0;
66889 __Pyx_GOTREF(__pyx_t_15);
66890 } else {
66891 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__66891; goto __pyx_L1_error;}
66892 __Pyx_GOTREF(__pyx_t_9);
66893 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
66894 __Pyx_GIVEREF(__pyx_t_18);
66895 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_18)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_18
)
;
66896 __pyx_t_18 = 0;
66897 __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__66897; goto __pyx_L1_error;}
66898 __Pyx_GOTREF(__pyx_t_15);
66899 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
66900 }
66901 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66902 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__66902; goto __pyx_L1_error;}
66903 __Pyx_GOTREF(__pyx_t_13);
66904 __Pyx_INCREF(__pyx_n_s_onsafe)( ((PyObject*)(__pyx_n_s_onsafe))->ob_refcnt++);
66905 __Pyx_GIVEREF(__pyx_n_s_onsafe);
66906 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_onsafe)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_onsafe
)
;
66907 __Pyx_GIVEREF(__pyx_t_15);
66908 PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = __pyx_t_15);
66909 __pyx_t_15 = 0;
66910 __pyx_t_15 = NULL((void*)0);
66911 __pyx_t_17 = 0;
66912 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
66913 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
66914 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
66915 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
66916 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
66917 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66918 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66919 __pyx_t_17 = 1;
66920 }
66921 }
66922 __pyx_t_9 = PyTuple_New(4+__pyx_t_17); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66922; goto __pyx_L1_error;}
66923 __Pyx_GOTREF(__pyx_t_9);
66924 if (__pyx_t_15) {
66925 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
66926 }
66927 __Pyx_GIVEREF(__pyx_t_1);
66928 PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+__pyx_t_17] = __pyx_t_1
)
;
66929 __Pyx_GIVEREF(__pyx_t_12);
66930 PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_17, __pyx_t_12)(((PyTupleObject *)(__pyx_t_9))->ob_item[1+__pyx_t_17] = __pyx_t_12
)
;
66931 __Pyx_GIVEREF(__pyx_t_8);
66932 PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[2+__pyx_t_17] = __pyx_t_8
)
;
66933 __Pyx_GIVEREF(__pyx_t_13);
66934 PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_9))->ob_item[3+__pyx_t_17] = __pyx_t_13
)
;
66935 __pyx_t_1 = 0;
66936 __pyx_t_12 = 0;
66937 __pyx_t_8 = 0;
66938 __pyx_t_13 = 0;
66939 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66939; goto __pyx_L1_error;}
66940 __Pyx_GOTREF(__pyx_t_5);
66941 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
66942 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66943
66944 /* "rados.pyx":2379
66945 * @requires(('object_name', str_type), ('to_append', bytes), ('oncomplete', opt(Callable)),
66946 * ('onsafe', opt(Callable)))
66947 * def aio_append(self, object_name, to_append, oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
66948 * """
66949 * Asynchronously append data to an object
66950 */
66951 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_aio_append); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2379; __pyx_clineno = __LINE__66951; goto __pyx_L1_error;}
66952 __Pyx_GOTREF(__pyx_t_14);
66953 __pyx_t_9 = NULL((void*)0);
66954 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
66955 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
66956 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
66957 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
66958 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
66959 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
66960 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
66961 }
66962 }
66963 if (!__pyx_t_9) {
66964 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66964; goto __pyx_L1_error;}
66965 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
66966 __Pyx_GOTREF(__pyx_t_7);
66967 } else {
66968 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66968; goto __pyx_L1_error;}
66969 __Pyx_GOTREF(__pyx_t_13);
66970 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
66971 __Pyx_GIVEREF(__pyx_t_14);
66972 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
66973 __pyx_t_14 = 0;
66974 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__66974; goto __pyx_L1_error;}
66975 __Pyx_GOTREF(__pyx_t_7);
66976 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
66977 }
66978 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
66979 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_aio_append, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2379; __pyx_clineno = __LINE__66979; goto __pyx_L1_error;}
66980 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
66981 PyType_Modified(__pyx_ptype_5rados_Ioctx);
66982
66983 /* "rados.pyx":2431
66984 * raise make_ex(ret, "error flushing")
66985 *
66986 * @requires(('object_name', str_type), ('length', int), ('offset', int), # <<<<<<<<<<<<<<
66987 * ('oncomplete', opt(Callable)))
66988 * def aio_read(self, object_name, length, offset, oncomplete):
66989 */
66990 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__66990; goto __pyx_L1_error;}
66991 __Pyx_GOTREF(__pyx_t_13);
66992 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__66992; goto __pyx_L1_error;}
66993 __Pyx_GOTREF(__pyx_t_14);
66994 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__66994; goto __pyx_L1_error;}
66995 __Pyx_GOTREF(__pyx_t_9);
66996 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
66997 __Pyx_GIVEREF(__pyx_n_s_object_name);
66998 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_object_name
)
;
66999 __Pyx_GIVEREF(__pyx_t_14);
67000 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_14);
67001 __pyx_t_14 = 0;
67002 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__67002; goto __pyx_L1_error;}
67003 __Pyx_GOTREF(__pyx_t_14);
67004 __Pyx_INCREF(__pyx_n_s_length)( ((PyObject*)(__pyx_n_s_length))->ob_refcnt++);
67005 __Pyx_GIVEREF(__pyx_n_s_length);
67006 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_length)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_length
)
;
67007 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
67008 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
67009 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
67010 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__67010; goto __pyx_L1_error;}
67011 __Pyx_GOTREF(__pyx_t_8);
67012 __Pyx_INCREF(__pyx_n_s_offset)( ((PyObject*)(__pyx_n_s_offset))->ob_refcnt++);
67013 __Pyx_GIVEREF(__pyx_n_s_offset);
67014 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_offset)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_offset
)
;
67015 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
67016 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
67017 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
67018
67019 /* "rados.pyx":2432
67020 *
67021 * @requires(('object_name', str_type), ('length', int), ('offset', int),
67022 * ('oncomplete', opt(Callable))) # <<<<<<<<<<<<<<
67023 * def aio_read(self, object_name, length, offset, oncomplete):
67024 * """
67025 */
67026 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2432; __pyx_clineno = __LINE__67026; goto __pyx_L1_error;}
67027 __Pyx_GOTREF(__pyx_t_1);
67028 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2432; __pyx_clineno = __LINE__67028; goto __pyx_L1_error;}
67029 __Pyx_GOTREF(__pyx_t_15);
67030 __pyx_t_18 = NULL((void*)0);
67031 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
67032 __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
67033 if (likely(__pyx_t_18)__builtin_expect(!!(__pyx_t_18), 1)) {
67034 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
67035 __Pyx_INCREF(__pyx_t_18)( ((PyObject*)(__pyx_t_18))->ob_refcnt++);
67036 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67037 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67038 }
67039 }
67040 if (!__pyx_t_18) {
67041 __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2432; __pyx_clineno = __LINE__67041; goto __pyx_L1_error;}
67042 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
67043 __Pyx_GOTREF(__pyx_t_12);
67044 } else {
67045 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2432; __pyx_clineno = __LINE__67045; goto __pyx_L1_error;}
67046 __Pyx_GOTREF(__pyx_t_16);
67047 __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_18)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_18); __pyx_t_18 = NULL((void*)0);
67048 __Pyx_GIVEREF(__pyx_t_15);
67049 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_15
)
;
67050 __pyx_t_15 = 0;
67051 __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2432; __pyx_clineno = __LINE__67051; goto __pyx_L1_error;}
67052 __Pyx_GOTREF(__pyx_t_12);
67053 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
67054 }
67055 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
67056 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2432; __pyx_clineno = __LINE__67056; goto __pyx_L1_error;}
67057 __Pyx_GOTREF(__pyx_t_1);
67058 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
67059 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
67060 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_oncomplete
)
;
67061 __Pyx_GIVEREF(__pyx_t_12);
67062 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_12);
67063 __pyx_t_12 = 0;
67064 __pyx_t_12 = NULL((void*)0);
67065 __pyx_t_17 = 0;
67066 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
67067 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
67068 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
67069 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
67070 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
67071 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67072 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67073 __pyx_t_17 = 1;
67074 }
67075 }
67076 __pyx_t_16 = PyTuple_New(4+__pyx_t_17); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__67076; goto __pyx_L1_error;}
67077 __Pyx_GOTREF(__pyx_t_16);
67078 if (__pyx_t_12) {
67079 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
67080 }
67081 __Pyx_GIVEREF(__pyx_t_9);
67082 PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+__pyx_t_17] = __pyx_t_9
)
;
67083 __Pyx_GIVEREF(__pyx_t_14);
67084 PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_16))->ob_item[1+__pyx_t_17] = __pyx_t_14
)
;
67085 __Pyx_GIVEREF(__pyx_t_8);
67086 PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_16))->ob_item[2+__pyx_t_17] = __pyx_t_8
)
;
67087 __Pyx_GIVEREF(__pyx_t_1);
67088 PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_16))->ob_item[3+__pyx_t_17] = __pyx_t_1
)
;
67089 __pyx_t_9 = 0;
67090 __pyx_t_14 = 0;
67091 __pyx_t_8 = 0;
67092 __pyx_t_1 = 0;
67093 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__67093; goto __pyx_L1_error;}
67094 __Pyx_GOTREF(__pyx_t_5);
67095 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
67096 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
67097
67098 /* "rados.pyx":2433
67099 * @requires(('object_name', str_type), ('length', int), ('offset', int),
67100 * ('oncomplete', opt(Callable)))
67101 * def aio_read(self, object_name, length, offset, oncomplete): # <<<<<<<<<<<<<<
67102 * """
67103 * Asynchronously read data from an object
67104 */
67105 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_aio_read); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__67105; goto __pyx_L1_error;}
67106 __Pyx_GOTREF(__pyx_t_13);
67107 __pyx_t_16 = NULL((void*)0);
67108 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67109 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67110 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
67111 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67112 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
67113 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67114 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67115 }
67116 }
67117 if (!__pyx_t_16) {
67118 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__67118; goto __pyx_L1_error;}
67119 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
67120 __Pyx_GOTREF(__pyx_t_7);
67121 } else {
67122 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__67122; goto __pyx_L1_error;}
67123 __Pyx_GOTREF(__pyx_t_1);
67124 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
67125 __Pyx_GIVEREF(__pyx_t_13);
67126 PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = __pyx_t_13
)
;
67127 __pyx_t_13 = 0;
67128 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2431; __pyx_clineno = __LINE__67128; goto __pyx_L1_error;}
67129 __Pyx_GOTREF(__pyx_t_7);
67130 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
67131 }
67132 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67133 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_aio_read, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2433; __pyx_clineno = __LINE__67133; goto __pyx_L1_error;}
67134 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67135 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67136
67137 /* "rados.pyx":2484
67138 * return completion
67139 *
67140 * @requires(('object_name', str_type), ('cls', str_type), ('method', str_type), # <<<<<<<<<<<<<<
67141 * ('data', bytes), ('length', int),
67142 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
67143 */
67144 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67144; goto __pyx_L1_error;}
67145 __Pyx_GOTREF(__pyx_t_1);
67146 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67146; goto __pyx_L1_error;}
67147 __Pyx_GOTREF(__pyx_t_13);
67148 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67148; goto __pyx_L1_error;}
67149 __Pyx_GOTREF(__pyx_t_16);
67150 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
67151 __Pyx_GIVEREF(__pyx_n_s_object_name);
67152 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_object_name
)
;
67153 __Pyx_GIVEREF(__pyx_t_13);
67154 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_13);
67155 __pyx_t_13 = 0;
67156 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67156; goto __pyx_L1_error;}
67157 __Pyx_GOTREF(__pyx_t_13);
67158 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67158; goto __pyx_L1_error;}
67159 __Pyx_GOTREF(__pyx_t_8);
67160 __Pyx_INCREF(__pyx_n_s_cls)( ((PyObject*)(__pyx_n_s_cls))->ob_refcnt++);
67161 __Pyx_GIVEREF(__pyx_n_s_cls);
67162 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_cls)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_cls
)
;
67163 __Pyx_GIVEREF(__pyx_t_13);
67164 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_13);
67165 __pyx_t_13 = 0;
67166 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67166; goto __pyx_L1_error;}
67167 __Pyx_GOTREF(__pyx_t_13);
67168 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67168; goto __pyx_L1_error;}
67169 __Pyx_GOTREF(__pyx_t_14);
67170 __Pyx_INCREF(__pyx_n_s_method)( ((PyObject*)(__pyx_n_s_method))->ob_refcnt++);
67171 __Pyx_GIVEREF(__pyx_n_s_method);
67172 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_method)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_method
)
;
67173 __Pyx_GIVEREF(__pyx_t_13);
67174 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_13);
67175 __pyx_t_13 = 0;
67176
67177 /* "rados.pyx":2485
67178 *
67179 * @requires(('object_name', str_type), ('cls', str_type), ('method', str_type),
67180 * ('data', bytes), ('length', int), # <<<<<<<<<<<<<<
67181 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
67182 * def aio_execute(self, object_name, cls, method, data,
67183 */
67184 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__67184; goto __pyx_L1_error;}
67185 __Pyx_GOTREF(__pyx_t_13);
67186 __Pyx_INCREF(__pyx_n_s_data)( ((PyObject*)(__pyx_n_s_data))->ob_refcnt++);
67187 __Pyx_GIVEREF(__pyx_n_s_data);
67188 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_data)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_data
)
;
67189 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
67190 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
67191 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
67192 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2485; __pyx_clineno = __LINE__67192; goto __pyx_L1_error;}
67193 __Pyx_GOTREF(__pyx_t_9);
67194 __Pyx_INCREF(__pyx_n_s_length)( ((PyObject*)(__pyx_n_s_length))->ob_refcnt++);
67195 __Pyx_GIVEREF(__pyx_n_s_length);
67196 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_length)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_length
)
;
67197 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
67198 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
67199 PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
67200
67201 /* "rados.pyx":2486
67202 * @requires(('object_name', str_type), ('cls', str_type), ('method', str_type),
67203 * ('data', bytes), ('length', int),
67204 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable))) # <<<<<<<<<<<<<<
67205 * def aio_execute(self, object_name, cls, method, data,
67206 * length=8192, oncomplete=None, onsafe=None):
67207 */
67208 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67208; goto __pyx_L1_error;}
67209 __Pyx_GOTREF(__pyx_t_15);
67210 __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_18)__builtin_expect(!!(!__pyx_t_18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67210; goto __pyx_L1_error;}
67211 __Pyx_GOTREF(__pyx_t_18);
67212 __pyx_t_11 = NULL((void*)0);
67213 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
67214 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
67215 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
67216 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
67217 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
67218 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67219 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67220 }
67221 }
67222 if (!__pyx_t_11) {
67223 __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_18); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67223; goto __pyx_L1_error;}
67224 __Pyx_DECREF(__pyx_t_18)do { if ( --((PyObject*)(__pyx_t_18))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_18)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_18)))); } while
(0)
; __pyx_t_18 = 0;
67225 __Pyx_GOTREF(__pyx_t_12);
67226 } else {
67227 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67227; goto __pyx_L1_error;}
67228 __Pyx_GOTREF(__pyx_t_19);
67229 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
67230 __Pyx_GIVEREF(__pyx_t_18);
67231 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_18)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_18
)
;
67232 __pyx_t_18 = 0;
67233 __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67233; goto __pyx_L1_error;}
67234 __Pyx_GOTREF(__pyx_t_12);
67235 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67236 }
67237 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
67238 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67238; goto __pyx_L1_error;}
67239 __Pyx_GOTREF(__pyx_t_15);
67240 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
67241 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
67242 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_oncomplete
)
;
67243 __Pyx_GIVEREF(__pyx_t_12);
67244 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_12);
67245 __pyx_t_12 = 0;
67246 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67246; goto __pyx_L1_error;}
67247 __Pyx_GOTREF(__pyx_t_19);
67248 __pyx_t_18 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_18)__builtin_expect(!!(!__pyx_t_18), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67248; goto __pyx_L1_error;}
67249 __Pyx_GOTREF(__pyx_t_18);
67250 __pyx_t_11 = NULL((void*)0);
67251 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
67252 __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
67253 if (likely(__pyx_t_11)__builtin_expect(!!(__pyx_t_11), 1)) {
67254 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
67255 __Pyx_INCREF(__pyx_t_11)( ((PyObject*)(__pyx_t_11))->ob_refcnt++);
67256 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67257 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67258 }
67259 }
67260 if (!__pyx_t_11) {
67261 __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_18); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67261; goto __pyx_L1_error;}
67262 __Pyx_DECREF(__pyx_t_18)do { if ( --((PyObject*)(__pyx_t_18))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_18)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_18)))); } while
(0)
; __pyx_t_18 = 0;
67263 __Pyx_GOTREF(__pyx_t_12);
67264 } else {
67265 __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67265; goto __pyx_L1_error;}
67266 __Pyx_GOTREF(__pyx_t_20);
67267 __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_11)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_11); __pyx_t_11 = NULL((void*)0);
67268 __Pyx_GIVEREF(__pyx_t_18);
67269 PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_t_18)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+1] = __pyx_t_18
)
;
67270 __pyx_t_18 = 0;
67271 __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67271; goto __pyx_L1_error;}
67272 __Pyx_GOTREF(__pyx_t_12);
67273 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
67274 }
67275 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67276 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2486; __pyx_clineno = __LINE__67276; goto __pyx_L1_error;}
67277 __Pyx_GOTREF(__pyx_t_19);
67278 __Pyx_INCREF(__pyx_n_s_onsafe)( ((PyObject*)(__pyx_n_s_onsafe))->ob_refcnt++);
67279 __Pyx_GIVEREF(__pyx_n_s_onsafe);
67280 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_onsafe)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_onsafe
)
;
67281 __Pyx_GIVEREF(__pyx_t_12);
67282 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_12);
67283 __pyx_t_12 = 0;
67284 __pyx_t_12 = NULL((void*)0);
67285 __pyx_t_17 = 0;
67286 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
67287 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
67288 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
67289 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
67290 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
67291 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67292 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67293 __pyx_t_17 = 1;
67294 }
67295 }
67296 __pyx_t_20 = PyTuple_New(7+__pyx_t_17); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67296; goto __pyx_L1_error;}
67297 __Pyx_GOTREF(__pyx_t_20);
67298 if (__pyx_t_12) {
67299 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
67300 }
67301 __Pyx_GIVEREF(__pyx_t_16);
67302 PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_17, __pyx_t_16)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+__pyx_t_17] = __pyx_t_16
)
;
67303 __Pyx_GIVEREF(__pyx_t_8);
67304 PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_20))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
67305 __Pyx_GIVEREF(__pyx_t_14);
67306 PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_20))->ob_item[2+__pyx_t_17] = __pyx_t_14
)
;
67307 __Pyx_GIVEREF(__pyx_t_13);
67308 PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_20))->ob_item[3+__pyx_t_17] = __pyx_t_13
)
;
67309 __Pyx_GIVEREF(__pyx_t_9);
67310 PyTuple_SET_ITEM(__pyx_t_20, 4+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_20))->ob_item[4+__pyx_t_17] = __pyx_t_9
)
;
67311 __Pyx_GIVEREF(__pyx_t_15);
67312 PyTuple_SET_ITEM(__pyx_t_20, 5+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_20))->ob_item[5+__pyx_t_17] = __pyx_t_15
)
;
67313 __Pyx_GIVEREF(__pyx_t_19);
67314 PyTuple_SET_ITEM(__pyx_t_20, 6+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_20))->ob_item[6+__pyx_t_17] = __pyx_t_19
)
;
67315 __pyx_t_16 = 0;
67316 __pyx_t_8 = 0;
67317 __pyx_t_14 = 0;
67318 __pyx_t_13 = 0;
67319 __pyx_t_9 = 0;
67320 __pyx_t_15 = 0;
67321 __pyx_t_19 = 0;
67322 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67322; goto __pyx_L1_error;}
67323 __Pyx_GOTREF(__pyx_t_5);
67324 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
67325 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
67326
67327 /* "rados.pyx":2487
67328 * ('data', bytes), ('length', int),
67329 * ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
67330 * def aio_execute(self, object_name, cls, method, data, # <<<<<<<<<<<<<<
67331 * length=8192, oncomplete=None, onsafe=None):
67332 * """
67333 */
67334 __pyx_t_1 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_aio_execute); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__67334; goto __pyx_L1_error;}
67335 __Pyx_GOTREF(__pyx_t_1);
67336 __pyx_t_20 = NULL((void*)0);
67337 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67338 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67339 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
67340 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67341 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
67342 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67343 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67344 }
67345 }
67346 if (!__pyx_t_20) {
67347 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67347; goto __pyx_L1_error;}
67348 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
67349 __Pyx_GOTREF(__pyx_t_7);
67350 } else {
67351 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67351; goto __pyx_L1_error;}
67352 __Pyx_GOTREF(__pyx_t_19);
67353 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
67354 __Pyx_GIVEREF(__pyx_t_1);
67355 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_1
)
;
67356 __pyx_t_1 = 0;
67357 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2484; __pyx_clineno = __LINE__67357; goto __pyx_L1_error;}
67358 __Pyx_GOTREF(__pyx_t_7);
67359 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67360 }
67361 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67362 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_aio_execute, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2487; __pyx_clineno = __LINE__67362; goto __pyx_L1_error;}
67363 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67364 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67365
67366 /* "rados.pyx":2555
67367 * return completion
67368 *
67369 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable))) # <<<<<<<<<<<<<<
67370 * def aio_remove(self, object_name, oncomplete=None, onsafe=None):
67371 * """
67372 */
67373 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67373; goto __pyx_L1_error;}
67374 __Pyx_GOTREF(__pyx_t_19);
67375 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67375; goto __pyx_L1_error;}
67376 __Pyx_GOTREF(__pyx_t_1);
67377 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67377; goto __pyx_L1_error;}
67378 __Pyx_GOTREF(__pyx_t_20);
67379 __Pyx_INCREF(__pyx_n_s_object_name)( ((PyObject*)(__pyx_n_s_object_name))->ob_refcnt++);
67380 __Pyx_GIVEREF(__pyx_n_s_object_name);
67381 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_object_name)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_object_name
)
;
67382 __Pyx_GIVEREF(__pyx_t_1);
67383 PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = __pyx_t_1);
67384 __pyx_t_1 = 0;
67385 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67385; goto __pyx_L1_error;}
67386 __Pyx_GOTREF(__pyx_t_15);
67387 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67387; goto __pyx_L1_error;}
67388 __Pyx_GOTREF(__pyx_t_9);
67389 __pyx_t_13 = NULL((void*)0);
67390 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
67391 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
67392 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
67393 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
67394 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
67395 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67396 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67397 }
67398 }
67399 if (!__pyx_t_13) {
67400 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_9); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67400; goto __pyx_L1_error;}
67401 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
67402 __Pyx_GOTREF(__pyx_t_1);
67403 } else {
67404 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67404; goto __pyx_L1_error;}
67405 __Pyx_GOTREF(__pyx_t_14);
67406 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
67407 __Pyx_GIVEREF(__pyx_t_9);
67408 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_9
)
;
67409 __pyx_t_9 = 0;
67410 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67410; goto __pyx_L1_error;}
67411 __Pyx_GOTREF(__pyx_t_1);
67412 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67413 }
67414 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
67415 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67415; goto __pyx_L1_error;}
67416 __Pyx_GOTREF(__pyx_t_15);
67417 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
67418 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
67419 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_oncomplete
)
;
67420 __Pyx_GIVEREF(__pyx_t_1);
67421 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_1);
67422 __pyx_t_1 = 0;
67423 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67423; goto __pyx_L1_error;}
67424 __Pyx_GOTREF(__pyx_t_14);
67425 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67425; goto __pyx_L1_error;}
67426 __Pyx_GOTREF(__pyx_t_9);
67427 __pyx_t_13 = NULL((void*)0);
67428 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
67429 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
67430 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
67431 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
67432 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
67433 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67434 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67435 }
67436 }
67437 if (!__pyx_t_13) {
67438 __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_9); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67438; goto __pyx_L1_error;}
67439 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
67440 __Pyx_GOTREF(__pyx_t_1);
67441 } else {
67442 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67442; goto __pyx_L1_error;}
67443 __Pyx_GOTREF(__pyx_t_8);
67444 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
67445 __Pyx_GIVEREF(__pyx_t_9);
67446 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_9);
67447 __pyx_t_9 = 0;
67448 __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67448; goto __pyx_L1_error;}
67449 __Pyx_GOTREF(__pyx_t_1);
67450 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
67451 }
67452 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67453 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67453; goto __pyx_L1_error;}
67454 __Pyx_GOTREF(__pyx_t_14);
67455 __Pyx_INCREF(__pyx_n_s_onsafe)( ((PyObject*)(__pyx_n_s_onsafe))->ob_refcnt++);
67456 __Pyx_GIVEREF(__pyx_n_s_onsafe);
67457 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_onsafe)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_onsafe
)
;
67458 __Pyx_GIVEREF(__pyx_t_1);
67459 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_1);
67460 __pyx_t_1 = 0;
67461 __pyx_t_1 = NULL((void*)0);
67462 __pyx_t_17 = 0;
67463 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
67464 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
67465 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
67466 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
67467 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
67468 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67469 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67470 __pyx_t_17 = 1;
67471 }
67472 }
67473 __pyx_t_8 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67473; goto __pyx_L1_error;}
67474 __Pyx_GOTREF(__pyx_t_8);
67475 if (__pyx_t_1) {
67476 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
67477 }
67478 __Pyx_GIVEREF(__pyx_t_20);
67479 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_17, __pyx_t_20)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_17] = __pyx_t_20
)
;
67480 __Pyx_GIVEREF(__pyx_t_15);
67481 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_17] = __pyx_t_15
)
;
67482 __Pyx_GIVEREF(__pyx_t_14);
67483 PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[2+__pyx_t_17] = __pyx_t_14
)
;
67484 __pyx_t_20 = 0;
67485 __pyx_t_15 = 0;
67486 __pyx_t_14 = 0;
67487 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67487; goto __pyx_L1_error;}
67488 __Pyx_GOTREF(__pyx_t_5);
67489 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
67490 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67491
67492 /* "rados.pyx":2556
67493 *
67494 * @requires(('object_name', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)))
67495 * def aio_remove(self, object_name, oncomplete=None, onsafe=None): # <<<<<<<<<<<<<<
67496 * """
67497 * Asynchronously remove an object
67498 */
67499 __pyx_t_19 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_aio_remove); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__67499; goto __pyx_L1_error;}
67500 __Pyx_GOTREF(__pyx_t_19);
67501 __pyx_t_8 = NULL((void*)0);
67502 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67503 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67504 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
67505 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67506 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
67507 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67508 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67509 }
67510 }
67511 if (!__pyx_t_8) {
67512 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67512; goto __pyx_L1_error;}
67513 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67514 __Pyx_GOTREF(__pyx_t_7);
67515 } else {
67516 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67516; goto __pyx_L1_error;}
67517 __Pyx_GOTREF(__pyx_t_14);
67518 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
67519 __Pyx_GIVEREF(__pyx_t_19);
67520 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_19
)
;
67521 __pyx_t_19 = 0;
67522 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2555; __pyx_clineno = __LINE__67522; goto __pyx_L1_error;}
67523 __Pyx_GOTREF(__pyx_t_7);
67524 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67525 }
67526 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67527 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_aio_remove, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2556; __pyx_clineno = __LINE__67527; goto __pyx_L1_error;}
67528 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67529 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67530
67531 /* "rados.pyx":2597
67532 * raise IoctxStateError("The pool is %s" % self.state)
67533 *
67534 * @requires(('loc_key', str_type)) # <<<<<<<<<<<<<<
67535 * def set_locator_key(self, loc_key):
67536 * """
67537 */
67538 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67538; goto __pyx_L1_error;}
67539 __Pyx_GOTREF(__pyx_t_14);
67540 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67540; goto __pyx_L1_error;}
67541 __Pyx_GOTREF(__pyx_t_19);
67542 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67542; goto __pyx_L1_error;}
67543 __Pyx_GOTREF(__pyx_t_8);
67544 __Pyx_INCREF(__pyx_n_s_loc_key)( ((PyObject*)(__pyx_n_s_loc_key))->ob_refcnt++);
67545 __Pyx_GIVEREF(__pyx_n_s_loc_key);
67546 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_loc_key)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_loc_key
)
;
67547 __Pyx_GIVEREF(__pyx_t_19);
67548 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_19);
67549 __pyx_t_19 = 0;
67550 __pyx_t_19 = NULL((void*)0);
67551 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
67552 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
67553 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
67554 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
67555 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
67556 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67557 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67558 }
67559 }
67560 if (!__pyx_t_19) {
67561 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_8); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67561; goto __pyx_L1_error;}
67562 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
67563 __Pyx_GOTREF(__pyx_t_5);
67564 } else {
67565 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67565; goto __pyx_L1_error;}
67566 __Pyx_GOTREF(__pyx_t_15);
67567 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
67568 __Pyx_GIVEREF(__pyx_t_8);
67569 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_8
)
;
67570 __pyx_t_8 = 0;
67571 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67571; goto __pyx_L1_error;}
67572 __Pyx_GOTREF(__pyx_t_5);
67573 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
67574 }
67575 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67576
67577 /* "rados.pyx":2598
67578 *
67579 * @requires(('loc_key', str_type))
67580 * def set_locator_key(self, loc_key): # <<<<<<<<<<<<<<
67581 * """
67582 * Set the key for mapping objects to pgs within an io context.
67583 */
67584 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_set_locator_key); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2598; __pyx_clineno = __LINE__67584; goto __pyx_L1_error;}
67585 __Pyx_GOTREF(__pyx_t_14);
67586 __pyx_t_15 = NULL((void*)0);
67587 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67588 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67589 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
67590 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67591 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
67592 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67593 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67594 }
67595 }
67596 if (!__pyx_t_15) {
67597 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67597; goto __pyx_L1_error;}
67598 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67599 __Pyx_GOTREF(__pyx_t_7);
67600 } else {
67601 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67601; goto __pyx_L1_error;}
67602 __Pyx_GOTREF(__pyx_t_8);
67603 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
67604 __Pyx_GIVEREF(__pyx_t_14);
67605 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_14
)
;
67606 __pyx_t_14 = 0;
67607 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2597; __pyx_clineno = __LINE__67607; goto __pyx_L1_error;}
67608 __Pyx_GOTREF(__pyx_t_7);
67609 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
67610 }
67611 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67612 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_set_locator_key, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2598; __pyx_clineno = __LINE__67612; goto __pyx_L1_error;}
67613 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67614 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67615
67616 /* "rados.pyx":2628
67617 * return self.locator_key
67618 *
67619 * @requires(('snap_id', long)) # <<<<<<<<<<<<<<
67620 * def set_read(self, snap_id):
67621 * """
67622 */
67623 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67623; goto __pyx_L1_error;}
67624 __Pyx_GOTREF(__pyx_t_8);
67625 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67625; goto __pyx_L1_error;}
67626 __Pyx_GOTREF(__pyx_t_14);
67627 __Pyx_INCREF(__pyx_n_s_snap_id)( ((PyObject*)(__pyx_n_s_snap_id))->ob_refcnt++);
67628 __Pyx_GIVEREF(__pyx_n_s_snap_id);
67629 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_snap_id)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_snap_id
)
;
67630 __Pyx_INCREF(((PyObject *)(&PyLong_Type)))( ((PyObject*)(((PyObject *)(&PyLong_Type))))->ob_refcnt
++)
;
67631 __Pyx_GIVEREF(((PyObject *)(&PyLong_Type)));
67632 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyLong_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyLong_Type)))
;
67633 __pyx_t_15 = NULL((void*)0);
67634 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
67635 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
67636 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
67637 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
67638 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
67639 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67640 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67641 }
67642 }
67643 if (!__pyx_t_15) {
67644 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67644; goto __pyx_L1_error;}
67645 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67646 __Pyx_GOTREF(__pyx_t_5);
67647 } else {
67648 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67648; goto __pyx_L1_error;}
67649 __Pyx_GOTREF(__pyx_t_19);
67650 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
67651 __Pyx_GIVEREF(__pyx_t_14);
67652 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_14
)
;
67653 __pyx_t_14 = 0;
67654 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67654; goto __pyx_L1_error;}
67655 __Pyx_GOTREF(__pyx_t_5);
67656 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67657 }
67658 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
67659
67660 /* "rados.pyx":2629
67661 *
67662 * @requires(('snap_id', long))
67663 * def set_read(self, snap_id): # <<<<<<<<<<<<<<
67664 * """
67665 * Set the snapshot for reading objects.
67666 */
67667 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_set_read); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2629; __pyx_clineno = __LINE__67667; goto __pyx_L1_error;}
67668 __Pyx_GOTREF(__pyx_t_8);
67669 __pyx_t_19 = NULL((void*)0);
67670 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67671 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67672 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
67673 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67674 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
67675 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67676 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67677 }
67678 }
67679 if (!__pyx_t_19) {
67680 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67680; goto __pyx_L1_error;}
67681 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
67682 __Pyx_GOTREF(__pyx_t_7);
67683 } else {
67684 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67684; goto __pyx_L1_error;}
67685 __Pyx_GOTREF(__pyx_t_14);
67686 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
67687 __Pyx_GIVEREF(__pyx_t_8);
67688 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_8
)
;
67689 __pyx_t_8 = 0;
67690 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__67690; goto __pyx_L1_error;}
67691 __Pyx_GOTREF(__pyx_t_7);
67692 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67693 }
67694 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67695 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_set_read, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2629; __pyx_clineno = __LINE__67695; goto __pyx_L1_error;}
67696 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67697 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67698
67699 /* "rados.pyx":2645
67700 * rados_ioctx_snap_set_read(self.io, _snap_id)
67701 *
67702 * @requires(('nspace', str_type)) # <<<<<<<<<<<<<<
67703 * def set_namespace(self, nspace):
67704 * """
67705 */
67706 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67706; goto __pyx_L1_error;}
67707 __Pyx_GOTREF(__pyx_t_14);
67708 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67708; goto __pyx_L1_error;}
67709 __Pyx_GOTREF(__pyx_t_8);
67710 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67710; goto __pyx_L1_error;}
67711 __Pyx_GOTREF(__pyx_t_19);
67712 __Pyx_INCREF(__pyx_n_s_nspace)( ((PyObject*)(__pyx_n_s_nspace))->ob_refcnt++);
67713 __Pyx_GIVEREF(__pyx_n_s_nspace);
67714 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_nspace)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_nspace
)
;
67715 __Pyx_GIVEREF(__pyx_t_8);
67716 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_8);
67717 __pyx_t_8 = 0;
67718 __pyx_t_8 = NULL((void*)0);
67719 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
67720 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
67721 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
67722 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
67723 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
67724 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67725 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67726 }
67727 }
67728 if (!__pyx_t_8) {
67729 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_19); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67729; goto __pyx_L1_error;}
67730 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67731 __Pyx_GOTREF(__pyx_t_5);
67732 } else {
67733 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67733; goto __pyx_L1_error;}
67734 __Pyx_GOTREF(__pyx_t_15);
67735 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
67736 __Pyx_GIVEREF(__pyx_t_19);
67737 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_19
)
;
67738 __pyx_t_19 = 0;
67739 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67739; goto __pyx_L1_error;}
67740 __Pyx_GOTREF(__pyx_t_5);
67741 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
67742 }
67743 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67744
67745 /* "rados.pyx":2646
67746 *
67747 * @requires(('nspace', str_type))
67748 * def set_namespace(self, nspace): # <<<<<<<<<<<<<<
67749 * """
67750 * Set the namespace for objects within an io context.
67751 */
67752 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_set_namespace); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2646; __pyx_clineno = __LINE__67752; goto __pyx_L1_error;}
67753 __Pyx_GOTREF(__pyx_t_14);
67754 __pyx_t_15 = NULL((void*)0);
67755 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67756 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67757 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
67758 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67759 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
67760 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67761 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67762 }
67763 }
67764 if (!__pyx_t_15) {
67765 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67765; goto __pyx_L1_error;}
67766 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67767 __Pyx_GOTREF(__pyx_t_7);
67768 } else {
67769 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67769; goto __pyx_L1_error;}
67770 __Pyx_GOTREF(__pyx_t_19);
67771 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
67772 __Pyx_GIVEREF(__pyx_t_14);
67773 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_14
)
;
67774 __pyx_t_14 = 0;
67775 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2645; __pyx_clineno = __LINE__67775; goto __pyx_L1_error;}
67776 __Pyx_GOTREF(__pyx_t_7);
67777 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67778 }
67779 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67780 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_set_namespace, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2646; __pyx_clineno = __LINE__67780; goto __pyx_L1_error;}
67781 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67782 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67783
67784 /* "rados.pyx":2693
67785 *
67786 *
67787 * @requires(('key', str_type), ('data', bytes)) # <<<<<<<<<<<<<<
67788 * def write(self, key, data, offset=0):
67789 * """
67790 */
67791 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67791; goto __pyx_L1_error;}
67792 __Pyx_GOTREF(__pyx_t_19);
67793 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67793; goto __pyx_L1_error;}
67794 __Pyx_GOTREF(__pyx_t_14);
67795 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67795; goto __pyx_L1_error;}
67796 __Pyx_GOTREF(__pyx_t_15);
67797 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
67798 __Pyx_GIVEREF(__pyx_n_s_key);
67799 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_key
)
;
67800 __Pyx_GIVEREF(__pyx_t_14);
67801 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_14);
67802 __pyx_t_14 = 0;
67803 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67803; goto __pyx_L1_error;}
67804 __Pyx_GOTREF(__pyx_t_14);
67805 __Pyx_INCREF(__pyx_n_s_data)( ((PyObject*)(__pyx_n_s_data))->ob_refcnt++);
67806 __Pyx_GIVEREF(__pyx_n_s_data);
67807 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_data)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_data
)
;
67808 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
67809 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
67810 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
67811 __pyx_t_8 = NULL((void*)0);
67812 __pyx_t_17 = 0;
67813 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
67814 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
67815 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
67816 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
67817 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
67818 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67819 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67820 __pyx_t_17 = 1;
67821 }
67822 }
67823 __pyx_t_20 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67823; goto __pyx_L1_error;}
67824 __Pyx_GOTREF(__pyx_t_20);
67825 if (__pyx_t_8) {
67826 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
67827 }
67828 __Pyx_GIVEREF(__pyx_t_15);
67829 PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+__pyx_t_17] = __pyx_t_15
)
;
67830 __Pyx_GIVEREF(__pyx_t_14);
67831 PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_20))->ob_item[1+__pyx_t_17] = __pyx_t_14
)
;
67832 __pyx_t_15 = 0;
67833 __pyx_t_14 = 0;
67834 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67834; goto __pyx_L1_error;}
67835 __Pyx_GOTREF(__pyx_t_5);
67836 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
67837 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67838
67839 /* "rados.pyx":2694
67840 *
67841 * @requires(('key', str_type), ('data', bytes))
67842 * def write(self, key, data, offset=0): # <<<<<<<<<<<<<<
67843 * """
67844 * Write data to an object synchronously
67845 */
67846 __pyx_t_19 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_write); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__67846; goto __pyx_L1_error;}
67847 __Pyx_GOTREF(__pyx_t_19);
67848 __pyx_t_20 = NULL((void*)0);
67849 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67850 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67851 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
67852 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67853 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
67854 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67855 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67856 }
67857 }
67858 if (!__pyx_t_20) {
67859 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67859; goto __pyx_L1_error;}
67860 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67861 __Pyx_GOTREF(__pyx_t_7);
67862 } else {
67863 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67863; goto __pyx_L1_error;}
67864 __Pyx_GOTREF(__pyx_t_14);
67865 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
67866 __Pyx_GIVEREF(__pyx_t_19);
67867 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_19
)
;
67868 __pyx_t_19 = 0;
67869 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2693; __pyx_clineno = __LINE__67869; goto __pyx_L1_error;}
67870 __Pyx_GOTREF(__pyx_t_7);
67871 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67872 }
67873 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67874 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_write, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__67874; goto __pyx_L1_error;}
67875 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67876 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67877
67878 /* "rados.pyx":2729
67879 * returned %d, but should return zero on success." % (self.name, ret))
67880 *
67881 * @requires(('key', str_type), ('data', bytes)) # <<<<<<<<<<<<<<
67882 * def write_full(self, key, data):
67883 * """
67884 */
67885 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67885; goto __pyx_L1_error;}
67886 __Pyx_GOTREF(__pyx_t_14);
67887 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67887; goto __pyx_L1_error;}
67888 __Pyx_GOTREF(__pyx_t_19);
67889 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67889; goto __pyx_L1_error;}
67890 __Pyx_GOTREF(__pyx_t_20);
67891 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
67892 __Pyx_GIVEREF(__pyx_n_s_key);
67893 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_key
)
;
67894 __Pyx_GIVEREF(__pyx_t_19);
67895 PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = __pyx_t_19);
67896 __pyx_t_19 = 0;
67897 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67897; goto __pyx_L1_error;}
67898 __Pyx_GOTREF(__pyx_t_19);
67899 __Pyx_INCREF(__pyx_n_s_data)( ((PyObject*)(__pyx_n_s_data))->ob_refcnt++);
67900 __Pyx_GIVEREF(__pyx_n_s_data);
67901 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_data)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_data
)
;
67902 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
67903 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
67904 PyTuple_SET_ITEM(__pyx_t_19, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
67905 __pyx_t_15 = NULL((void*)0);
67906 __pyx_t_17 = 0;
67907 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
67908 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
67909 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
67910 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
67911 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
67912 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67913 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67914 __pyx_t_17 = 1;
67915 }
67916 }
67917 __pyx_t_8 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67917; goto __pyx_L1_error;}
67918 __Pyx_GOTREF(__pyx_t_8);
67919 if (__pyx_t_15) {
67920 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
67921 }
67922 __Pyx_GIVEREF(__pyx_t_20);
67923 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_17, __pyx_t_20)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_17] = __pyx_t_20
)
;
67924 __Pyx_GIVEREF(__pyx_t_19);
67925 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_17] = __pyx_t_19
)
;
67926 __pyx_t_20 = 0;
67927 __pyx_t_19 = 0;
67928 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67928; goto __pyx_L1_error;}
67929 __Pyx_GOTREF(__pyx_t_5);
67930 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
67931 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67932
67933 /* "rados.pyx":2730
67934 *
67935 * @requires(('key', str_type), ('data', bytes))
67936 * def write_full(self, key, data): # <<<<<<<<<<<<<<
67937 * """
67938 * Write an entire object synchronously.
67939 */
67940 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_write_full); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__67940; goto __pyx_L1_error;}
67941 __Pyx_GOTREF(__pyx_t_14);
67942 __pyx_t_8 = NULL((void*)0);
67943 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
67944 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
67945 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
67946 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
67947 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
67948 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
67949 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
67950 }
67951 }
67952 if (!__pyx_t_8) {
67953 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67953; goto __pyx_L1_error;}
67954 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
67955 __Pyx_GOTREF(__pyx_t_7);
67956 } else {
67957 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67957; goto __pyx_L1_error;}
67958 __Pyx_GOTREF(__pyx_t_19);
67959 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
67960 __Pyx_GIVEREF(__pyx_t_14);
67961 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_14
)
;
67962 __pyx_t_14 = 0;
67963 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2729; __pyx_clineno = __LINE__67963; goto __pyx_L1_error;}
67964 __Pyx_GOTREF(__pyx_t_7);
67965 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
67966 }
67967 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
67968 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_write_full, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2730; __pyx_clineno = __LINE__67968; goto __pyx_L1_error;}
67969 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
67970 PyType_Modified(__pyx_ptype_5rados_Ioctx);
67971
67972 /* "rados.pyx":2764
67973 * returned %d, but should return zero on success." % (self.name, ret))
67974 *
67975 * @requires(('key', str_type), ('data', bytes)) # <<<<<<<<<<<<<<
67976 * def append(self, key, data):
67977 * """
67978 */
67979 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__67979; goto __pyx_L1_error;}
67980 __Pyx_GOTREF(__pyx_t_19);
67981 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__67981; goto __pyx_L1_error;}
67982 __Pyx_GOTREF(__pyx_t_14);
67983 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__67983; goto __pyx_L1_error;}
67984 __Pyx_GOTREF(__pyx_t_8);
67985 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
67986 __Pyx_GIVEREF(__pyx_n_s_key);
67987 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_key
)
;
67988 __Pyx_GIVEREF(__pyx_t_14);
67989 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_14);
67990 __pyx_t_14 = 0;
67991 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__67991; goto __pyx_L1_error;}
67992 __Pyx_GOTREF(__pyx_t_14);
67993 __Pyx_INCREF(__pyx_n_s_data)( ((PyObject*)(__pyx_n_s_data))->ob_refcnt++);
67994 __Pyx_GIVEREF(__pyx_n_s_data);
67995 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_data)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_data
)
;
67996 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
67997 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
67998 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
67999 __pyx_t_20 = NULL((void*)0);
68000 __pyx_t_17 = 0;
68001 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
68002 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
68003 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
68004 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
68005 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
68006 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68007 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68008 __pyx_t_17 = 1;
68009 }
68010 }
68011 __pyx_t_15 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__68011; goto __pyx_L1_error;}
68012 __Pyx_GOTREF(__pyx_t_15);
68013 if (__pyx_t_20) {
68014 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
68015 }
68016 __Pyx_GIVEREF(__pyx_t_8);
68017 PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+__pyx_t_17] = __pyx_t_8
)
;
68018 __Pyx_GIVEREF(__pyx_t_14);
68019 PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[1+__pyx_t_17] = __pyx_t_14
)
;
68020 __pyx_t_8 = 0;
68021 __pyx_t_14 = 0;
68022 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__68022; goto __pyx_L1_error;}
68023 __Pyx_GOTREF(__pyx_t_5);
68024 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68025 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
68026
68027 /* "rados.pyx":2765
68028 *
68029 * @requires(('key', str_type), ('data', bytes))
68030 * def append(self, key, data): # <<<<<<<<<<<<<<
68031 * """
68032 * Append data to an object synchronously
68033 */
68034 __pyx_t_19 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_append); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2765; __pyx_clineno = __LINE__68034; goto __pyx_L1_error;}
68035 __Pyx_GOTREF(__pyx_t_19);
68036 __pyx_t_15 = NULL((void*)0);
68037 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68038 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68039 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
68040 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68041 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
68042 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68043 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68044 }
68045 }
68046 if (!__pyx_t_15) {
68047 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__68047; goto __pyx_L1_error;}
68048 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
68049 __Pyx_GOTREF(__pyx_t_7);
68050 } else {
68051 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__68051; goto __pyx_L1_error;}
68052 __Pyx_GOTREF(__pyx_t_14);
68053 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
68054 __Pyx_GIVEREF(__pyx_t_19);
68055 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_19
)
;
68056 __pyx_t_19 = 0;
68057 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__68057; goto __pyx_L1_error;}
68058 __Pyx_GOTREF(__pyx_t_7);
68059 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68060 }
68061 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68062 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_append, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2765; __pyx_clineno = __LINE__68062; goto __pyx_L1_error;}
68063 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68064 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68065
68066 /* "rados.pyx":2796
68067 * returned %d, but should return zero on success." % (self.name, ret))
68068 *
68069 * @requires(('key', str_type)) # <<<<<<<<<<<<<<
68070 * def read(self, key, length=8192, offset=0):
68071 * """
68072 */
68073 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68073; goto __pyx_L1_error;}
68074 __Pyx_GOTREF(__pyx_t_14);
68075 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68075; goto __pyx_L1_error;}
68076 __Pyx_GOTREF(__pyx_t_19);
68077 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68077; goto __pyx_L1_error;}
68078 __Pyx_GOTREF(__pyx_t_15);
68079 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68080 __Pyx_GIVEREF(__pyx_n_s_key);
68081 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_key
)
;
68082 __Pyx_GIVEREF(__pyx_t_19);
68083 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_19);
68084 __pyx_t_19 = 0;
68085 __pyx_t_19 = NULL((void*)0);
68086 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
68087 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
68088 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
68089 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
68090 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
68091 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68092 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68093 }
68094 }
68095 if (!__pyx_t_19) {
68096 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68096; goto __pyx_L1_error;}
68097 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68098 __Pyx_GOTREF(__pyx_t_5);
68099 } else {
68100 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68100; goto __pyx_L1_error;}
68101 __Pyx_GOTREF(__pyx_t_8);
68102 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
68103 __Pyx_GIVEREF(__pyx_t_15);
68104 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_15
)
;
68105 __pyx_t_15 = 0;
68106 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68106; goto __pyx_L1_error;}
68107 __Pyx_GOTREF(__pyx_t_5);
68108 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
68109 }
68110 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68111
68112 /* "rados.pyx":2797
68113 *
68114 * @requires(('key', str_type))
68115 * def read(self, key, length=8192, offset=0): # <<<<<<<<<<<<<<
68116 * """
68117 * Read data from an object synchronously
68118 */
68119 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_read); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__68119; goto __pyx_L1_error;}
68120 __Pyx_GOTREF(__pyx_t_14);
68121 __pyx_t_8 = NULL((void*)0);
68122 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68123 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68124 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
68125 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68126 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
68127 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68128 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68129 }
68130 }
68131 if (!__pyx_t_8) {
68132 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68132; goto __pyx_L1_error;}
68133 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68134 __Pyx_GOTREF(__pyx_t_7);
68135 } else {
68136 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68136; goto __pyx_L1_error;}
68137 __Pyx_GOTREF(__pyx_t_15);
68138 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
68139 __Pyx_GIVEREF(__pyx_t_14);
68140 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_14
)
;
68141 __pyx_t_14 = 0;
68142 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2796; __pyx_clineno = __LINE__68142; goto __pyx_L1_error;}
68143 __Pyx_GOTREF(__pyx_t_7);
68144 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68145 }
68146 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68147 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_read, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2797; __pyx_clineno = __LINE__68147; goto __pyx_L1_error;}
68148 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68149 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68150
68151 /* "rados.pyx":2840
68152 * ref.Py_XDECREF(ret_s)
68153 *
68154 * @requires(('key', str_type), ('cls', str_type), ('method', str_type), ('data', bytes)) # <<<<<<<<<<<<<<
68155 * def execute(self, key, cls, method, data, length=8192):
68156 * """
68157 */
68158 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68158; goto __pyx_L1_error;}
68159 __Pyx_GOTREF(__pyx_t_15);
68160 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68160; goto __pyx_L1_error;}
68161 __Pyx_GOTREF(__pyx_t_14);
68162 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68162; goto __pyx_L1_error;}
68163 __Pyx_GOTREF(__pyx_t_8);
68164 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68165 __Pyx_GIVEREF(__pyx_n_s_key);
68166 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_key
)
;
68167 __Pyx_GIVEREF(__pyx_t_14);
68168 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_14);
68169 __pyx_t_14 = 0;
68170 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68170; goto __pyx_L1_error;}
68171 __Pyx_GOTREF(__pyx_t_14);
68172 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68172; goto __pyx_L1_error;}
68173 __Pyx_GOTREF(__pyx_t_19);
68174 __Pyx_INCREF(__pyx_n_s_cls)( ((PyObject*)(__pyx_n_s_cls))->ob_refcnt++);
68175 __Pyx_GIVEREF(__pyx_n_s_cls);
68176 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_cls)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_cls
)
;
68177 __Pyx_GIVEREF(__pyx_t_14);
68178 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_14);
68179 __pyx_t_14 = 0;
68180 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68180; goto __pyx_L1_error;}
68181 __Pyx_GOTREF(__pyx_t_14);
68182 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68182; goto __pyx_L1_error;}
68183 __Pyx_GOTREF(__pyx_t_20);
68184 __Pyx_INCREF(__pyx_n_s_method)( ((PyObject*)(__pyx_n_s_method))->ob_refcnt++);
68185 __Pyx_GIVEREF(__pyx_n_s_method);
68186 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_method)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_method
)
;
68187 __Pyx_GIVEREF(__pyx_t_14);
68188 PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = __pyx_t_14);
68189 __pyx_t_14 = 0;
68190 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68190; goto __pyx_L1_error;}
68191 __Pyx_GOTREF(__pyx_t_14);
68192 __Pyx_INCREF(__pyx_n_s_data)( ((PyObject*)(__pyx_n_s_data))->ob_refcnt++);
68193 __Pyx_GIVEREF(__pyx_n_s_data);
68194 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_data)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_data
)
;
68195 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
68196 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
68197 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
68198 __pyx_t_1 = NULL((void*)0);
68199 __pyx_t_17 = 0;
68200 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
68201 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
68202 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
68203 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
68204 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
68205 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68206 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68207 __pyx_t_17 = 1;
68208 }
68209 }
68210 __pyx_t_9 = PyTuple_New(4+__pyx_t_17); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68210; goto __pyx_L1_error;}
68211 __Pyx_GOTREF(__pyx_t_9);
68212 if (__pyx_t_1) {
68213 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
68214 }
68215 __Pyx_GIVEREF(__pyx_t_8);
68216 PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+__pyx_t_17] = __pyx_t_8
)
;
68217 __Pyx_GIVEREF(__pyx_t_19);
68218 PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_9))->ob_item[1+__pyx_t_17] = __pyx_t_19
)
;
68219 __Pyx_GIVEREF(__pyx_t_20);
68220 PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_17, __pyx_t_20)(((PyTupleObject *)(__pyx_t_9))->ob_item[2+__pyx_t_17] = __pyx_t_20
)
;
68221 __Pyx_GIVEREF(__pyx_t_14);
68222 PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_9))->ob_item[3+__pyx_t_17] = __pyx_t_14
)
;
68223 __pyx_t_8 = 0;
68224 __pyx_t_19 = 0;
68225 __pyx_t_20 = 0;
68226 __pyx_t_14 = 0;
68227 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68227; goto __pyx_L1_error;}
68228 __Pyx_GOTREF(__pyx_t_5);
68229 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68230 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68231
68232 /* "rados.pyx":2841
68233 *
68234 * @requires(('key', str_type), ('cls', str_type), ('method', str_type), ('data', bytes))
68235 * def execute(self, key, cls, method, data, length=8192): # <<<<<<<<<<<<<<
68236 * """
68237 * Execute an OSD class method on an object.
68238 */
68239 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_execute); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2841; __pyx_clineno = __LINE__68239; goto __pyx_L1_error;}
68240 __Pyx_GOTREF(__pyx_t_15);
68241 __pyx_t_9 = NULL((void*)0);
68242 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68243 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68244 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
68245 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68246 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
68247 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68248 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68249 }
68250 }
68251 if (!__pyx_t_9) {
68252 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68252; goto __pyx_L1_error;}
68253 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68254 __Pyx_GOTREF(__pyx_t_7);
68255 } else {
68256 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68256; goto __pyx_L1_error;}
68257 __Pyx_GOTREF(__pyx_t_14);
68258 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
68259 __Pyx_GIVEREF(__pyx_t_15);
68260 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_15
)
;
68261 __pyx_t_15 = 0;
68262 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__68262; goto __pyx_L1_error;}
68263 __Pyx_GOTREF(__pyx_t_7);
68264 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68265 }
68266 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68267 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_execute, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2841; __pyx_clineno = __LINE__68267; goto __pyx_L1_error;}
68268 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68269 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68270
68271 /* "rados.pyx":2946
68272 * "num_wr_kb": stats.num_wr_kb}
68273 *
68274 * @requires(('key', str_type)) # <<<<<<<<<<<<<<
68275 * def remove_object(self, key):
68276 * """
68277 */
68278 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68278; goto __pyx_L1_error;}
68279 __Pyx_GOTREF(__pyx_t_14);
68280 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68280; goto __pyx_L1_error;}
68281 __Pyx_GOTREF(__pyx_t_15);
68282 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68282; goto __pyx_L1_error;}
68283 __Pyx_GOTREF(__pyx_t_9);
68284 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68285 __Pyx_GIVEREF(__pyx_n_s_key);
68286 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_key
)
;
68287 __Pyx_GIVEREF(__pyx_t_15);
68288 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_15);
68289 __pyx_t_15 = 0;
68290 __pyx_t_15 = NULL((void*)0);
68291 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
68292 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
68293 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
68294 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
68295 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
68296 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68297 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68298 }
68299 }
68300 if (!__pyx_t_15) {
68301 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_9); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68301; goto __pyx_L1_error;}
68302 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68303 __Pyx_GOTREF(__pyx_t_5);
68304 } else {
68305 __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68305; goto __pyx_L1_error;}
68306 __Pyx_GOTREF(__pyx_t_20);
68307 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
68308 __Pyx_GIVEREF(__pyx_t_9);
68309 PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+1] = __pyx_t_9
)
;
68310 __pyx_t_9 = 0;
68311 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68311; goto __pyx_L1_error;}
68312 __Pyx_GOTREF(__pyx_t_5);
68313 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
68314 }
68315 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68316
68317 /* "rados.pyx":2947
68318 *
68319 * @requires(('key', str_type))
68320 * def remove_object(self, key): # <<<<<<<<<<<<<<
68321 * """
68322 * Delete an object
68323 */
68324 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_remove_object); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__68324; goto __pyx_L1_error;}
68325 __Pyx_GOTREF(__pyx_t_14);
68326 __pyx_t_20 = NULL((void*)0);
68327 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68328 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68329 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
68330 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68331 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
68332 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68333 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68334 }
68335 }
68336 if (!__pyx_t_20) {
68337 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68337; goto __pyx_L1_error;}
68338 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68339 __Pyx_GOTREF(__pyx_t_7);
68340 } else {
68341 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68341; goto __pyx_L1_error;}
68342 __Pyx_GOTREF(__pyx_t_9);
68343 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
68344 __Pyx_GIVEREF(__pyx_t_14);
68345 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_14
)
;
68346 __pyx_t_14 = 0;
68347 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__68347; goto __pyx_L1_error;}
68348 __Pyx_GOTREF(__pyx_t_7);
68349 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68350 }
68351 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68352 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_remove_object, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__68352; goto __pyx_L1_error;}
68353 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68354 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68355
68356 /* "rados.pyx":2971
68357 * return True
68358 *
68359 * @requires(('key', str_type)) # <<<<<<<<<<<<<<
68360 * def trunc(self, key, size):
68361 * """
68362 */
68363 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68363; goto __pyx_L1_error;}
68364 __Pyx_GOTREF(__pyx_t_9);
68365 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68365; goto __pyx_L1_error;}
68366 __Pyx_GOTREF(__pyx_t_14);
68367 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68367; goto __pyx_L1_error;}
68368 __Pyx_GOTREF(__pyx_t_20);
68369 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68370 __Pyx_GIVEREF(__pyx_n_s_key);
68371 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_key
)
;
68372 __Pyx_GIVEREF(__pyx_t_14);
68373 PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = __pyx_t_14);
68374 __pyx_t_14 = 0;
68375 __pyx_t_14 = NULL((void*)0);
68376 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_9))__builtin_expect(!!(((__pyx_t_9)->ob_type == &PyMethod_Type
)), 0)
) {
68377 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_self);
68378 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
68379 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_func);
68380 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
68381 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68382 __Pyx_DECREF_SET(__pyx_t_9, function)do { PyObject *tmp = (PyObject *) __pyx_t_9; __pyx_t_9 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68383 }
68384 }
68385 if (!__pyx_t_14) {
68386 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_20); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68386; goto __pyx_L1_error;}
68387 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
68388 __Pyx_GOTREF(__pyx_t_5);
68389 } else {
68390 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68390; goto __pyx_L1_error;}
68391 __Pyx_GOTREF(__pyx_t_15);
68392 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
68393 __Pyx_GIVEREF(__pyx_t_20);
68394 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_20
)
;
68395 __pyx_t_20 = 0;
68396 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68396; goto __pyx_L1_error;}
68397 __Pyx_GOTREF(__pyx_t_5);
68398 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68399 }
68400 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68401
68402 /* "rados.pyx":2972
68403 *
68404 * @requires(('key', str_type))
68405 * def trunc(self, key, size): # <<<<<<<<<<<<<<
68406 * """
68407 * Resize an object
68408 */
68409 __pyx_t_9 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_trunc); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2972; __pyx_clineno = __LINE__68409; goto __pyx_L1_error;}
68410 __Pyx_GOTREF(__pyx_t_9);
68411 __pyx_t_15 = NULL((void*)0);
68412 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68413 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68414 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
68415 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68416 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
68417 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68418 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68419 }
68420 }
68421 if (!__pyx_t_15) {
68422 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68422; goto __pyx_L1_error;}
68423 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68424 __Pyx_GOTREF(__pyx_t_7);
68425 } else {
68426 __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68426; goto __pyx_L1_error;}
68427 __Pyx_GOTREF(__pyx_t_20);
68428 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
68429 __Pyx_GIVEREF(__pyx_t_9);
68430 PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+1] = __pyx_t_9
)
;
68431 __pyx_t_9 = 0;
68432 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2971; __pyx_clineno = __LINE__68432; goto __pyx_L1_error;}
68433 __Pyx_GOTREF(__pyx_t_7);
68434 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
68435 }
68436 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68437 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_trunc, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2972; __pyx_clineno = __LINE__68437; goto __pyx_L1_error;}
68438 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68439 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68440
68441 /* "rados.pyx":3001
68442 * return ret
68443 *
68444 * @requires(('key', str_type)) # <<<<<<<<<<<<<<
68445 * def stat(self, key):
68446 * """
68447 */
68448 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68448; goto __pyx_L1_error;}
68449 __Pyx_GOTREF(__pyx_t_20);
68450 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68450; goto __pyx_L1_error;}
68451 __Pyx_GOTREF(__pyx_t_9);
68452 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68452; goto __pyx_L1_error;}
68453 __Pyx_GOTREF(__pyx_t_15);
68454 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68455 __Pyx_GIVEREF(__pyx_n_s_key);
68456 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_key
)
;
68457 __Pyx_GIVEREF(__pyx_t_9);
68458 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_9);
68459 __pyx_t_9 = 0;
68460 __pyx_t_9 = NULL((void*)0);
68461 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_20))__builtin_expect(!!(((__pyx_t_20)->ob_type == &PyMethod_Type
)), 0)
) {
68462 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_self);
68463 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
68464 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_func);
68465 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
68466 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68467 __Pyx_DECREF_SET(__pyx_t_20, function)do { PyObject *tmp = (PyObject *) __pyx_t_20; __pyx_t_20 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68468 }
68469 }
68470 if (!__pyx_t_9) {
68471 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_15); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68471; goto __pyx_L1_error;}
68472 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68473 __Pyx_GOTREF(__pyx_t_5);
68474 } else {
68475 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68475; goto __pyx_L1_error;}
68476 __Pyx_GOTREF(__pyx_t_14);
68477 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
68478 __Pyx_GIVEREF(__pyx_t_15);
68479 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_15
)
;
68480 __pyx_t_15 = 0;
68481 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68481; goto __pyx_L1_error;}
68482 __Pyx_GOTREF(__pyx_t_5);
68483 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68484 }
68485 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
68486
68487 /* "rados.pyx":3002
68488 *
68489 * @requires(('key', str_type))
68490 * def stat(self, key): # <<<<<<<<<<<<<<
68491 * """
68492 * Get object stats (size/mtime)
68493 */
68494 __pyx_t_20 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_stat); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__68494; goto __pyx_L1_error;}
68495 __Pyx_GOTREF(__pyx_t_20);
68496 __pyx_t_14 = NULL((void*)0);
68497 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68498 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68499 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
68500 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68501 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
68502 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68503 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68504 }
68505 }
68506 if (!__pyx_t_14) {
68507 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_20); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68507; goto __pyx_L1_error;}
68508 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
68509 __Pyx_GOTREF(__pyx_t_7);
68510 } else {
68511 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68511; goto __pyx_L1_error;}
68512 __Pyx_GOTREF(__pyx_t_15);
68513 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
68514 __Pyx_GIVEREF(__pyx_t_20);
68515 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_20
)
;
68516 __pyx_t_20 = 0;
68517 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3001; __pyx_clineno = __LINE__68517; goto __pyx_L1_error;}
68518 __Pyx_GOTREF(__pyx_t_7);
68519 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68520 }
68521 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68522 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_stat, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__68522; goto __pyx_L1_error;}
68523 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68524 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68525
68526 /* "rados.pyx":3027
68527 * return psize, time.localtime(pmtime)
68528 *
68529 * @requires(('key', str_type), ('xattr_name', str_type)) # <<<<<<<<<<<<<<
68530 * def get_xattr(self, key, xattr_name):
68531 * """
68532 */
68533 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68533; goto __pyx_L1_error;}
68534 __Pyx_GOTREF(__pyx_t_15);
68535 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68535; goto __pyx_L1_error;}
68536 __Pyx_GOTREF(__pyx_t_20);
68537 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68537; goto __pyx_L1_error;}
68538 __Pyx_GOTREF(__pyx_t_14);
68539 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68540 __Pyx_GIVEREF(__pyx_n_s_key);
68541 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_key
)
;
68542 __Pyx_GIVEREF(__pyx_t_20);
68543 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_20);
68544 __pyx_t_20 = 0;
68545 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68545; goto __pyx_L1_error;}
68546 __Pyx_GOTREF(__pyx_t_20);
68547 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68547; goto __pyx_L1_error;}
68548 __Pyx_GOTREF(__pyx_t_9);
68549 __Pyx_INCREF(__pyx_n_s_xattr_name)( ((PyObject*)(__pyx_n_s_xattr_name))->ob_refcnt++);
68550 __Pyx_GIVEREF(__pyx_n_s_xattr_name);
68551 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_xattr_name)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_xattr_name
)
;
68552 __Pyx_GIVEREF(__pyx_t_20);
68553 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_20);
68554 __pyx_t_20 = 0;
68555 __pyx_t_20 = NULL((void*)0);
68556 __pyx_t_17 = 0;
68557 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
68558 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
68559 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
68560 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
68561 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
68562 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68563 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68564 __pyx_t_17 = 1;
68565 }
68566 }
68567 __pyx_t_19 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68567; goto __pyx_L1_error;}
68568 __Pyx_GOTREF(__pyx_t_19);
68569 if (__pyx_t_20) {
68570 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
68571 }
68572 __Pyx_GIVEREF(__pyx_t_14);
68573 PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+__pyx_t_17] = __pyx_t_14
)
;
68574 __Pyx_GIVEREF(__pyx_t_9);
68575 PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_19))->ob_item[1+__pyx_t_17] = __pyx_t_9
)
;
68576 __pyx_t_14 = 0;
68577 __pyx_t_9 = 0;
68578 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68578; goto __pyx_L1_error;}
68579 __Pyx_GOTREF(__pyx_t_5);
68580 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
68581 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68582
68583 /* "rados.pyx":3028
68584 *
68585 * @requires(('key', str_type), ('xattr_name', str_type))
68586 * def get_xattr(self, key, xattr_name): # <<<<<<<<<<<<<<
68587 * """
68588 * Get the value of an extended attribute on an object.
68589 */
68590 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_get_xattr); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__68590; goto __pyx_L1_error;}
68591 __Pyx_GOTREF(__pyx_t_15);
68592 __pyx_t_19 = NULL((void*)0);
68593 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68594 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68595 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
68596 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68597 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
68598 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68599 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68600 }
68601 }
68602 if (!__pyx_t_19) {
68603 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68603; goto __pyx_L1_error;}
68604 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68605 __Pyx_GOTREF(__pyx_t_7);
68606 } else {
68607 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68607; goto __pyx_L1_error;}
68608 __Pyx_GOTREF(__pyx_t_9);
68609 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
68610 __Pyx_GIVEREF(__pyx_t_15);
68611 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_15
)
;
68612 __pyx_t_15 = 0;
68613 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3027; __pyx_clineno = __LINE__68613; goto __pyx_L1_error;}
68614 __Pyx_GOTREF(__pyx_t_7);
68615 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68616 }
68617 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68618 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_get_xattr, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3028; __pyx_clineno = __LINE__68618; goto __pyx_L1_error;}
68619 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68620 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68621
68622 /* "rados.pyx":3066
68623 * free(ret_buf)
68624 *
68625 * @requires(('oid', str_type)) # <<<<<<<<<<<<<<
68626 * def get_xattrs(self, oid):
68627 * """
68628 */
68629 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68629; goto __pyx_L1_error;}
68630 __Pyx_GOTREF(__pyx_t_9);
68631 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68631; goto __pyx_L1_error;}
68632 __Pyx_GOTREF(__pyx_t_15);
68633 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68633; goto __pyx_L1_error;}
68634 __Pyx_GOTREF(__pyx_t_19);
68635 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
68636 __Pyx_GIVEREF(__pyx_n_s_oid);
68637 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_oid
)
;
68638 __Pyx_GIVEREF(__pyx_t_15);
68639 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_15);
68640 __pyx_t_15 = 0;
68641 __pyx_t_15 = NULL((void*)0);
68642 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_9))__builtin_expect(!!(((__pyx_t_9)->ob_type == &PyMethod_Type
)), 0)
) {
68643 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_self);
68644 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
68645 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_func);
68646 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
68647 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68648 __Pyx_DECREF_SET(__pyx_t_9, function)do { PyObject *tmp = (PyObject *) __pyx_t_9; __pyx_t_9 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68649 }
68650 }
68651 if (!__pyx_t_15) {
68652 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_19); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68652; goto __pyx_L1_error;}
68653 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
68654 __Pyx_GOTREF(__pyx_t_5);
68655 } else {
68656 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68656; goto __pyx_L1_error;}
68657 __Pyx_GOTREF(__pyx_t_14);
68658 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
68659 __Pyx_GIVEREF(__pyx_t_19);
68660 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_19
)
;
68661 __pyx_t_19 = 0;
68662 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68662; goto __pyx_L1_error;}
68663 __Pyx_GOTREF(__pyx_t_5);
68664 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68665 }
68666 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68667
68668 /* "rados.pyx":3067
68669 *
68670 * @requires(('oid', str_type))
68671 * def get_xattrs(self, oid): # <<<<<<<<<<<<<<
68672 * """
68673 * Start iterating over xattrs on an object.
68674 */
68675 __pyx_t_9 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_get_xattrs); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3067; __pyx_clineno = __LINE__68675; goto __pyx_L1_error;}
68676 __Pyx_GOTREF(__pyx_t_9);
68677 __pyx_t_14 = NULL((void*)0);
68678 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68679 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68680 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
68681 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68682 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
68683 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68684 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68685 }
68686 }
68687 if (!__pyx_t_14) {
68688 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68688; goto __pyx_L1_error;}
68689 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68690 __Pyx_GOTREF(__pyx_t_7);
68691 } else {
68692 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68692; goto __pyx_L1_error;}
68693 __Pyx_GOTREF(__pyx_t_19);
68694 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
68695 __Pyx_GIVEREF(__pyx_t_9);
68696 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_9
)
;
68697 __pyx_t_9 = 0;
68698 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3066; __pyx_clineno = __LINE__68698; goto __pyx_L1_error;}
68699 __Pyx_GOTREF(__pyx_t_7);
68700 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
68701 }
68702 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68703 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_get_xattrs, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3067; __pyx_clineno = __LINE__68703; goto __pyx_L1_error;}
68704 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68705 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68706
68707 /* "rados.pyx":3081
68708 * return XattrIterator(self, oid)
68709 *
68710 * @requires(('key', str_type), ('xattr_name', str_type), ('xattr_value', bytes)) # <<<<<<<<<<<<<<
68711 * def set_xattr(self, key, xattr_name, xattr_value):
68712 * """
68713 */
68714 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68714; goto __pyx_L1_error;}
68715 __Pyx_GOTREF(__pyx_t_19);
68716 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68716; goto __pyx_L1_error;}
68717 __Pyx_GOTREF(__pyx_t_9);
68718 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68718; goto __pyx_L1_error;}
68719 __Pyx_GOTREF(__pyx_t_14);
68720 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68721 __Pyx_GIVEREF(__pyx_n_s_key);
68722 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_key
)
;
68723 __Pyx_GIVEREF(__pyx_t_9);
68724 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_9);
68725 __pyx_t_9 = 0;
68726 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68726; goto __pyx_L1_error;}
68727 __Pyx_GOTREF(__pyx_t_9);
68728 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68728; goto __pyx_L1_error;}
68729 __Pyx_GOTREF(__pyx_t_15);
68730 __Pyx_INCREF(__pyx_n_s_xattr_name)( ((PyObject*)(__pyx_n_s_xattr_name))->ob_refcnt++);
68731 __Pyx_GIVEREF(__pyx_n_s_xattr_name);
68732 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_xattr_name)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_xattr_name
)
;
68733 __Pyx_GIVEREF(__pyx_t_9);
68734 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_9);
68735 __pyx_t_9 = 0;
68736 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68736; goto __pyx_L1_error;}
68737 __Pyx_GOTREF(__pyx_t_9);
68738 __Pyx_INCREF(__pyx_n_s_xattr_value)( ((PyObject*)(__pyx_n_s_xattr_value))->ob_refcnt++);
68739 __Pyx_GIVEREF(__pyx_n_s_xattr_value);
68740 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_xattr_value)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_xattr_value
)
;
68741 __Pyx_INCREF(((PyObject *)(&PyBytes_Type)))( ((PyObject*)(((PyObject *)(&PyString_Type))))->ob_refcnt
++)
;
68742 __Pyx_GIVEREF(((PyObject *)(&PyBytes_Type)));
68743 PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)(&PyBytes_Type)))(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = ((PyObject *
)(&PyString_Type)))
;
68744 __pyx_t_20 = NULL((void*)0);
68745 __pyx_t_17 = 0;
68746 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
68747 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
68748 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
68749 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
68750 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
68751 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68752 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68753 __pyx_t_17 = 1;
68754 }
68755 }
68756 __pyx_t_8 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68756; goto __pyx_L1_error;}
68757 __Pyx_GOTREF(__pyx_t_8);
68758 if (__pyx_t_20) {
68759 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
68760 }
68761 __Pyx_GIVEREF(__pyx_t_14);
68762 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_17] = __pyx_t_14
)
;
68763 __Pyx_GIVEREF(__pyx_t_15);
68764 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_17] = __pyx_t_15
)
;
68765 __Pyx_GIVEREF(__pyx_t_9);
68766 PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[2+__pyx_t_17] = __pyx_t_9
)
;
68767 __pyx_t_14 = 0;
68768 __pyx_t_15 = 0;
68769 __pyx_t_9 = 0;
68770 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68770; goto __pyx_L1_error;}
68771 __Pyx_GOTREF(__pyx_t_5);
68772 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
68773 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
68774
68775 /* "rados.pyx":3082
68776 *
68777 * @requires(('key', str_type), ('xattr_name', str_type), ('xattr_value', bytes))
68778 * def set_xattr(self, key, xattr_name, xattr_value): # <<<<<<<<<<<<<<
68779 * """
68780 * Set an extended attribute on an object.
68781 */
68782 __pyx_t_19 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_set_xattr); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__68782; goto __pyx_L1_error;}
68783 __Pyx_GOTREF(__pyx_t_19);
68784 __pyx_t_8 = NULL((void*)0);
68785 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68786 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68787 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
68788 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68789 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
68790 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68791 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68792 }
68793 }
68794 if (!__pyx_t_8) {
68795 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68795; goto __pyx_L1_error;}
68796 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
68797 __Pyx_GOTREF(__pyx_t_7);
68798 } else {
68799 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68799; goto __pyx_L1_error;}
68800 __Pyx_GOTREF(__pyx_t_9);
68801 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
68802 __Pyx_GIVEREF(__pyx_t_19);
68803 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_19
)
;
68804 __pyx_t_19 = 0;
68805 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3081; __pyx_clineno = __LINE__68805; goto __pyx_L1_error;}
68806 __Pyx_GOTREF(__pyx_t_7);
68807 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68808 }
68809 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68810 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_set_xattr, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3082; __pyx_clineno = __LINE__68810; goto __pyx_L1_error;}
68811 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68812 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68813
68814 /* "rados.pyx":3114
68815 * return True
68816 *
68817 * @requires(('key', str_type), ('xattr_name', str_type)) # <<<<<<<<<<<<<<
68818 * def rm_xattr(self, key, xattr_name):
68819 * """
68820 */
68821 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68821; goto __pyx_L1_error;}
68822 __Pyx_GOTREF(__pyx_t_9);
68823 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68823; goto __pyx_L1_error;}
68824 __Pyx_GOTREF(__pyx_t_19);
68825 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68825; goto __pyx_L1_error;}
68826 __Pyx_GOTREF(__pyx_t_8);
68827 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
68828 __Pyx_GIVEREF(__pyx_n_s_key);
68829 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_key
)
;
68830 __Pyx_GIVEREF(__pyx_t_19);
68831 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_19);
68832 __pyx_t_19 = 0;
68833 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68833; goto __pyx_L1_error;}
68834 __Pyx_GOTREF(__pyx_t_19);
68835 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68835; goto __pyx_L1_error;}
68836 __Pyx_GOTREF(__pyx_t_15);
68837 __Pyx_INCREF(__pyx_n_s_xattr_name)( ((PyObject*)(__pyx_n_s_xattr_name))->ob_refcnt++);
68838 __Pyx_GIVEREF(__pyx_n_s_xattr_name);
68839 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_xattr_name)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_xattr_name
)
;
68840 __Pyx_GIVEREF(__pyx_t_19);
68841 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_19);
68842 __pyx_t_19 = 0;
68843 __pyx_t_19 = NULL((void*)0);
68844 __pyx_t_17 = 0;
68845 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_9))__builtin_expect(!!(((__pyx_t_9)->ob_type == &PyMethod_Type
)), 0)
) {
68846 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_self);
68847 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
68848 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_func);
68849 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
68850 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68851 __Pyx_DECREF_SET(__pyx_t_9, function)do { PyObject *tmp = (PyObject *) __pyx_t_9; __pyx_t_9 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68852 __pyx_t_17 = 1;
68853 }
68854 }
68855 __pyx_t_14 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68855; goto __pyx_L1_error;}
68856 __Pyx_GOTREF(__pyx_t_14);
68857 if (__pyx_t_19) {
68858 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
68859 }
68860 __Pyx_GIVEREF(__pyx_t_8);
68861 PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+__pyx_t_17] = __pyx_t_8
)
;
68862 __Pyx_GIVEREF(__pyx_t_15);
68863 PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[1+__pyx_t_17] = __pyx_t_15
)
;
68864 __pyx_t_8 = 0;
68865 __pyx_t_15 = 0;
68866 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68866; goto __pyx_L1_error;}
68867 __Pyx_GOTREF(__pyx_t_5);
68868 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
68869 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68870
68871 /* "rados.pyx":3115
68872 *
68873 * @requires(('key', str_type), ('xattr_name', str_type))
68874 * def rm_xattr(self, key, xattr_name): # <<<<<<<<<<<<<<
68875 * """
68876 * Removes an extended attribute on from an object.
68877 */
68878 __pyx_t_9 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_rm_xattr); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3115; __pyx_clineno = __LINE__68878; goto __pyx_L1_error;}
68879 __Pyx_GOTREF(__pyx_t_9);
68880 __pyx_t_14 = NULL((void*)0);
68881 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68882 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68883 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
68884 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68885 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
68886 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68887 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68888 }
68889 }
68890 if (!__pyx_t_14) {
68891 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68891; goto __pyx_L1_error;}
68892 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
68893 __Pyx_GOTREF(__pyx_t_7);
68894 } else {
68895 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68895; goto __pyx_L1_error;}
68896 __Pyx_GOTREF(__pyx_t_15);
68897 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
68898 __Pyx_GIVEREF(__pyx_t_9);
68899 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_9
)
;
68900 __pyx_t_9 = 0;
68901 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3114; __pyx_clineno = __LINE__68901; goto __pyx_L1_error;}
68902 __Pyx_GOTREF(__pyx_t_7);
68903 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68904 }
68905 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
68906 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_rm_xattr, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3115; __pyx_clineno = __LINE__68906; goto __pyx_L1_error;}
68907 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
68908 PyType_Modified(__pyx_ptype_5rados_Ioctx);
68909
68910 /* "rados.pyx":3143
68911 * return True
68912 *
68913 * @requires(('obj', str_type), ('msg', str_type), ('timeout_ms', int)) # <<<<<<<<<<<<<<
68914 * def notify(self, obj, msg='', timeout_ms=5000):
68915 * """
68916 */
68917 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68917; goto __pyx_L1_error;}
68918 __Pyx_GOTREF(__pyx_t_15);
68919 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68919; goto __pyx_L1_error;}
68920 __Pyx_GOTREF(__pyx_t_9);
68921 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68921; goto __pyx_L1_error;}
68922 __Pyx_GOTREF(__pyx_t_14);
68923 __Pyx_INCREF(__pyx_n_s_obj)( ((PyObject*)(__pyx_n_s_obj))->ob_refcnt++);
68924 __Pyx_GIVEREF(__pyx_n_s_obj);
68925 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_obj)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_obj
)
;
68926 __Pyx_GIVEREF(__pyx_t_9);
68927 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_9);
68928 __pyx_t_9 = 0;
68929 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68929; goto __pyx_L1_error;}
68930 __Pyx_GOTREF(__pyx_t_9);
68931 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68931; goto __pyx_L1_error;}
68932 __Pyx_GOTREF(__pyx_t_8);
68933 __Pyx_INCREF(__pyx_n_s_msg)( ((PyObject*)(__pyx_n_s_msg))->ob_refcnt++);
68934 __Pyx_GIVEREF(__pyx_n_s_msg);
68935 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_msg)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_msg
)
;
68936 __Pyx_GIVEREF(__pyx_t_9);
68937 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_9);
68938 __pyx_t_9 = 0;
68939 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68939; goto __pyx_L1_error;}
68940 __Pyx_GOTREF(__pyx_t_9);
68941 __Pyx_INCREF(__pyx_n_s_timeout_ms)( ((PyObject*)(__pyx_n_s_timeout_ms))->ob_refcnt++);
68942 __Pyx_GIVEREF(__pyx_n_s_timeout_ms);
68943 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_timeout_ms)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_timeout_ms
)
;
68944 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
68945 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
68946 PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
68947 __pyx_t_19 = NULL((void*)0);
68948 __pyx_t_17 = 0;
68949 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
68950 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
68951 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
68952 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
68953 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
68954 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68955 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68956 __pyx_t_17 = 1;
68957 }
68958 }
68959 __pyx_t_20 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68959; goto __pyx_L1_error;}
68960 __Pyx_GOTREF(__pyx_t_20);
68961 if (__pyx_t_19) {
68962 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
68963 }
68964 __Pyx_GIVEREF(__pyx_t_14);
68965 PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+__pyx_t_17] = __pyx_t_14
)
;
68966 __Pyx_GIVEREF(__pyx_t_8);
68967 PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_20))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
68968 __Pyx_GIVEREF(__pyx_t_9);
68969 PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_20))->ob_item[2+__pyx_t_17] = __pyx_t_9
)
;
68970 __pyx_t_14 = 0;
68971 __pyx_t_8 = 0;
68972 __pyx_t_9 = 0;
68973 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68973; goto __pyx_L1_error;}
68974 __Pyx_GOTREF(__pyx_t_5);
68975 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
68976 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
68977
68978 /* "rados.pyx":3144
68979 *
68980 * @requires(('obj', str_type), ('msg', str_type), ('timeout_ms', int))
68981 * def notify(self, obj, msg='', timeout_ms=5000): # <<<<<<<<<<<<<<
68982 * """
68983 * Send a rados notification to an object.
68984 */
68985 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_notify); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3144; __pyx_clineno = __LINE__68985; goto __pyx_L1_error;}
68986 __Pyx_GOTREF(__pyx_t_15);
68987 __pyx_t_20 = NULL((void*)0);
68988 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
68989 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
68990 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
68991 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
68992 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
68993 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
68994 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
68995 }
68996 }
68997 if (!__pyx_t_20) {
68998 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__68998; goto __pyx_L1_error;}
68999 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69000 __Pyx_GOTREF(__pyx_t_7);
69001 } else {
69002 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__69002; goto __pyx_L1_error;}
69003 __Pyx_GOTREF(__pyx_t_9);
69004 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
69005 __Pyx_GIVEREF(__pyx_t_15);
69006 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_15
)
;
69007 __pyx_t_15 = 0;
69008 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3143; __pyx_clineno = __LINE__69008; goto __pyx_L1_error;}
69009 __Pyx_GOTREF(__pyx_t_7);
69010 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69011 }
69012 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69013 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_notify, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3144; __pyx_clineno = __LINE__69013; goto __pyx_L1_error;}
69014 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69015 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69016
69017 /* "rados.pyx":3195
69018 * return SnapIterator(self)
69019 *
69020 * @requires(('snap_name', str_type)) # <<<<<<<<<<<<<<
69021 * def create_snap(self, snap_name):
69022 * """
69023 */
69024 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69024; goto __pyx_L1_error;}
69025 __Pyx_GOTREF(__pyx_t_9);
69026 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69026; goto __pyx_L1_error;}
69027 __Pyx_GOTREF(__pyx_t_15);
69028 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69028; goto __pyx_L1_error;}
69029 __Pyx_GOTREF(__pyx_t_20);
69030 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
69031 __Pyx_GIVEREF(__pyx_n_s_snap_name);
69032 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_snap_name
)
;
69033 __Pyx_GIVEREF(__pyx_t_15);
69034 PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = __pyx_t_15);
69035 __pyx_t_15 = 0;
69036 __pyx_t_15 = NULL((void*)0);
69037 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_9))__builtin_expect(!!(((__pyx_t_9)->ob_type == &PyMethod_Type
)), 0)
) {
69038 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_self);
69039 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
69040 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_func);
69041 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
69042 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69043 __Pyx_DECREF_SET(__pyx_t_9, function)do { PyObject *tmp = (PyObject *) __pyx_t_9; __pyx_t_9 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69044 }
69045 }
69046 if (!__pyx_t_15) {
69047 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_20); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69047; goto __pyx_L1_error;}
69048 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69049 __Pyx_GOTREF(__pyx_t_5);
69050 } else {
69051 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69051; goto __pyx_L1_error;}
69052 __Pyx_GOTREF(__pyx_t_8);
69053 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
69054 __Pyx_GIVEREF(__pyx_t_20);
69055 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_20
)
;
69056 __pyx_t_20 = 0;
69057 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69057; goto __pyx_L1_error;}
69058 __Pyx_GOTREF(__pyx_t_5);
69059 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
69060 }
69061 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69062
69063 /* "rados.pyx":3196
69064 *
69065 * @requires(('snap_name', str_type))
69066 * def create_snap(self, snap_name): # <<<<<<<<<<<<<<
69067 * """
69068 * Create a pool-wide snapshot
69069 */
69070 __pyx_t_9 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_create_snap); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3196; __pyx_clineno = __LINE__69070; goto __pyx_L1_error;}
69071 __Pyx_GOTREF(__pyx_t_9);
69072 __pyx_t_8 = NULL((void*)0);
69073 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69074 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69075 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
69076 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69077 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
69078 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69079 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69080 }
69081 }
69082 if (!__pyx_t_8) {
69083 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69083; goto __pyx_L1_error;}
69084 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69085 __Pyx_GOTREF(__pyx_t_7);
69086 } else {
69087 __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69087; goto __pyx_L1_error;}
69088 __Pyx_GOTREF(__pyx_t_20);
69089 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
69090 __Pyx_GIVEREF(__pyx_t_9);
69091 PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+1] = __pyx_t_9
)
;
69092 __pyx_t_9 = 0;
69093 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3195; __pyx_clineno = __LINE__69093; goto __pyx_L1_error;}
69094 __Pyx_GOTREF(__pyx_t_7);
69095 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69096 }
69097 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69098 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_create_snap, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3196; __pyx_clineno = __LINE__69098; goto __pyx_L1_error;}
69099 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69100 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69101
69102 /* "rados.pyx":3215
69103 * raise make_ex(ret, "Failed to create snap %s" % snap_name)
69104 *
69105 * @requires(('snap_name', str_type)) # <<<<<<<<<<<<<<
69106 * def remove_snap(self, snap_name):
69107 * """
69108 */
69109 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69109; goto __pyx_L1_error;}
69110 __Pyx_GOTREF(__pyx_t_20);
69111 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69111; goto __pyx_L1_error;}
69112 __Pyx_GOTREF(__pyx_t_9);
69113 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69113; goto __pyx_L1_error;}
69114 __Pyx_GOTREF(__pyx_t_8);
69115 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
69116 __Pyx_GIVEREF(__pyx_n_s_snap_name);
69117 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_snap_name
)
;
69118 __Pyx_GIVEREF(__pyx_t_9);
69119 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_9);
69120 __pyx_t_9 = 0;
69121 __pyx_t_9 = NULL((void*)0);
69122 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_20))__builtin_expect(!!(((__pyx_t_20)->ob_type == &PyMethod_Type
)), 0)
) {
69123 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_self);
69124 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
69125 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_func);
69126 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
69127 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69128 __Pyx_DECREF_SET(__pyx_t_20, function)do { PyObject *tmp = (PyObject *) __pyx_t_20; __pyx_t_20 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69129 }
69130 }
69131 if (!__pyx_t_9) {
69132 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_8); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69132; goto __pyx_L1_error;}
69133 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
69134 __Pyx_GOTREF(__pyx_t_5);
69135 } else {
69136 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69136; goto __pyx_L1_error;}
69137 __Pyx_GOTREF(__pyx_t_15);
69138 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
69139 __Pyx_GIVEREF(__pyx_t_8);
69140 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_8
)
;
69141 __pyx_t_8 = 0;
69142 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69142; goto __pyx_L1_error;}
69143 __Pyx_GOTREF(__pyx_t_5);
69144 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69145 }
69146 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69147
69148 /* "rados.pyx":3216
69149 *
69150 * @requires(('snap_name', str_type))
69151 * def remove_snap(self, snap_name): # <<<<<<<<<<<<<<
69152 * """
69153 * Removes a pool-wide snapshot
69154 */
69155 __pyx_t_20 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_remove_snap); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3216; __pyx_clineno = __LINE__69155; goto __pyx_L1_error;}
69156 __Pyx_GOTREF(__pyx_t_20);
69157 __pyx_t_15 = NULL((void*)0);
69158 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69159 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69160 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
69161 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69162 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
69163 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69164 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69165 }
69166 }
69167 if (!__pyx_t_15) {
69168 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_20); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69168; goto __pyx_L1_error;}
69169 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69170 __Pyx_GOTREF(__pyx_t_7);
69171 } else {
69172 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69172; goto __pyx_L1_error;}
69173 __Pyx_GOTREF(__pyx_t_8);
69174 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
69175 __Pyx_GIVEREF(__pyx_t_20);
69176 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_20
)
;
69177 __pyx_t_20 = 0;
69178 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3215; __pyx_clineno = __LINE__69178; goto __pyx_L1_error;}
69179 __Pyx_GOTREF(__pyx_t_7);
69180 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
69181 }
69182 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69183 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_remove_snap, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3216; __pyx_clineno = __LINE__69183; goto __pyx_L1_error;}
69184 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69185 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69186
69187 /* "rados.pyx":3235
69188 * raise make_ex(ret, "Failed to remove snap %s" % snap_name)
69189 *
69190 * @requires(('snap_name', str_type)) # <<<<<<<<<<<<<<
69191 * def lookup_snap(self, snap_name):
69192 * """
69193 */
69194 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69194; goto __pyx_L1_error;}
69195 __Pyx_GOTREF(__pyx_t_8);
69196 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69196; goto __pyx_L1_error;}
69197 __Pyx_GOTREF(__pyx_t_20);
69198 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69198; goto __pyx_L1_error;}
69199 __Pyx_GOTREF(__pyx_t_15);
69200 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
69201 __Pyx_GIVEREF(__pyx_n_s_snap_name);
69202 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_snap_name
)
;
69203 __Pyx_GIVEREF(__pyx_t_20);
69204 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_20);
69205 __pyx_t_20 = 0;
69206 __pyx_t_20 = NULL((void*)0);
69207 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
69208 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
69209 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
69210 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
69211 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
69212 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69213 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69214 }
69215 }
69216 if (!__pyx_t_20) {
69217 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_15); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69217; goto __pyx_L1_error;}
69218 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69219 __Pyx_GOTREF(__pyx_t_5);
69220 } else {
69221 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69221; goto __pyx_L1_error;}
69222 __Pyx_GOTREF(__pyx_t_9);
69223 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
69224 __Pyx_GIVEREF(__pyx_t_15);
69225 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_15
)
;
69226 __pyx_t_15 = 0;
69227 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69227; goto __pyx_L1_error;}
69228 __Pyx_GOTREF(__pyx_t_5);
69229 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69230 }
69231 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
69232
69233 /* "rados.pyx":3236
69234 *
69235 * @requires(('snap_name', str_type))
69236 * def lookup_snap(self, snap_name): # <<<<<<<<<<<<<<
69237 * """
69238 * Get the id of a pool snapshot
69239 */
69240 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_lookup_snap); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__69240; goto __pyx_L1_error;}
69241 __Pyx_GOTREF(__pyx_t_8);
69242 __pyx_t_9 = NULL((void*)0);
69243 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69244 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69245 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
69246 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69247 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
69248 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69249 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69250 }
69251 }
69252 if (!__pyx_t_9) {
69253 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69253; goto __pyx_L1_error;}
69254 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
69255 __Pyx_GOTREF(__pyx_t_7);
69256 } else {
69257 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69257; goto __pyx_L1_error;}
69258 __Pyx_GOTREF(__pyx_t_15);
69259 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
69260 __Pyx_GIVEREF(__pyx_t_8);
69261 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_8
)
;
69262 __pyx_t_8 = 0;
69263 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3235; __pyx_clineno = __LINE__69263; goto __pyx_L1_error;}
69264 __Pyx_GOTREF(__pyx_t_7);
69265 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69266 }
69267 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69268 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_lookup_snap, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__69268; goto __pyx_L1_error;}
69269 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69270 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69271
69272 /* "rados.pyx":3259
69273 * return Snap(self, snap_name, int(snap_id))
69274 *
69275 * @requires(('oid', str_type), ('snap_name', str_type)) # <<<<<<<<<<<<<<
69276 * def snap_rollback(self, oid, snap_name):
69277 * """
69278 */
69279 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69279; goto __pyx_L1_error;}
69280 __Pyx_GOTREF(__pyx_t_15);
69281 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69281; goto __pyx_L1_error;}
69282 __Pyx_GOTREF(__pyx_t_8);
69283 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69283; goto __pyx_L1_error;}
69284 __Pyx_GOTREF(__pyx_t_9);
69285 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
69286 __Pyx_GIVEREF(__pyx_n_s_oid);
69287 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_oid
)
;
69288 __Pyx_GIVEREF(__pyx_t_8);
69289 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_8);
69290 __pyx_t_8 = 0;
69291 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69291; goto __pyx_L1_error;}
69292 __Pyx_GOTREF(__pyx_t_8);
69293 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69293; goto __pyx_L1_error;}
69294 __Pyx_GOTREF(__pyx_t_20);
69295 __Pyx_INCREF(__pyx_n_s_snap_name)( ((PyObject*)(__pyx_n_s_snap_name))->ob_refcnt++);
69296 __Pyx_GIVEREF(__pyx_n_s_snap_name);
69297 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_snap_name)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_snap_name
)
;
69298 __Pyx_GIVEREF(__pyx_t_8);
69299 PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = __pyx_t_8);
69300 __pyx_t_8 = 0;
69301 __pyx_t_8 = NULL((void*)0);
69302 __pyx_t_17 = 0;
69303 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
69304 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
69305 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
69306 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
69307 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
69308 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69309 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69310 __pyx_t_17 = 1;
69311 }
69312 }
69313 __pyx_t_14 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69313; goto __pyx_L1_error;}
69314 __Pyx_GOTREF(__pyx_t_14);
69315 if (__pyx_t_8) {
69316 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
69317 }
69318 __Pyx_GIVEREF(__pyx_t_9);
69319 PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+__pyx_t_17] = __pyx_t_9
)
;
69320 __Pyx_GIVEREF(__pyx_t_20);
69321 PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_17, __pyx_t_20)(((PyTupleObject *)(__pyx_t_14))->ob_item[1+__pyx_t_17] = __pyx_t_20
)
;
69322 __pyx_t_9 = 0;
69323 __pyx_t_20 = 0;
69324 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69324; goto __pyx_L1_error;}
69325 __Pyx_GOTREF(__pyx_t_5);
69326 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
69327 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69328
69329 /* "rados.pyx":3260
69330 *
69331 * @requires(('oid', str_type), ('snap_name', str_type))
69332 * def snap_rollback(self, oid, snap_name): # <<<<<<<<<<<<<<
69333 * """
69334 * Rollback an object to a snapshot
69335 */
69336 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_snap_rollback); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3260; __pyx_clineno = __LINE__69336; goto __pyx_L1_error;}
69337 __Pyx_GOTREF(__pyx_t_15);
69338 __pyx_t_14 = NULL((void*)0);
69339 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69340 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69341 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
69342 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69343 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
69344 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69345 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69346 }
69347 }
69348 if (!__pyx_t_14) {
69349 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69349; goto __pyx_L1_error;}
69350 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69351 __Pyx_GOTREF(__pyx_t_7);
69352 } else {
69353 __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69353; goto __pyx_L1_error;}
69354 __Pyx_GOTREF(__pyx_t_20);
69355 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
69356 __Pyx_GIVEREF(__pyx_t_15);
69357 PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+1] = __pyx_t_15
)
;
69358 __pyx_t_15 = 0;
69359 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3259; __pyx_clineno = __LINE__69359; goto __pyx_L1_error;}
69360 __Pyx_GOTREF(__pyx_t_7);
69361 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69362 }
69363 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69364 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_snap_rollback, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3260; __pyx_clineno = __LINE__69364; goto __pyx_L1_error;}
69365 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69366 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69367
69368 /* "rados.pyx":3301
69369 * return int(_snap_id)
69370 *
69371 * @requires(('snap_id', int)) # <<<<<<<<<<<<<<
69372 * def remove_self_managed_snap(self, snap_id):
69373 * """
69374 */
69375 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69375; goto __pyx_L1_error;}
69376 __Pyx_GOTREF(__pyx_t_20);
69377 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69377; goto __pyx_L1_error;}
69378 __Pyx_GOTREF(__pyx_t_15);
69379 __Pyx_INCREF(__pyx_n_s_snap_id)( ((PyObject*)(__pyx_n_s_snap_id))->ob_refcnt++);
69380 __Pyx_GIVEREF(__pyx_n_s_snap_id);
69381 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_snap_id)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_snap_id
)
;
69382 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
69383 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
69384 PyTuple_SET_ITEM(__pyx_t_15, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
69385 __pyx_t_14 = NULL((void*)0);
69386 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_20))__builtin_expect(!!(((__pyx_t_20)->ob_type == &PyMethod_Type
)), 0)
) {
69387 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_self);
69388 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
69389 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_func);
69390 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
69391 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69392 __Pyx_DECREF_SET(__pyx_t_20, function)do { PyObject *tmp = (PyObject *) __pyx_t_20; __pyx_t_20 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69393 }
69394 }
69395 if (!__pyx_t_14) {
69396 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_15); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69396; goto __pyx_L1_error;}
69397 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69398 __Pyx_GOTREF(__pyx_t_5);
69399 } else {
69400 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69400; goto __pyx_L1_error;}
69401 __Pyx_GOTREF(__pyx_t_9);
69402 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
69403 __Pyx_GIVEREF(__pyx_t_15);
69404 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_15
)
;
69405 __pyx_t_15 = 0;
69406 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69406; goto __pyx_L1_error;}
69407 __Pyx_GOTREF(__pyx_t_5);
69408 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69409 }
69410 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69411
69412 /* "rados.pyx":3302
69413 *
69414 * @requires(('snap_id', int))
69415 * def remove_self_managed_snap(self, snap_id): # <<<<<<<<<<<<<<
69416 * """
69417 * Removes a self-managed snapshot
69418 */
69419 __pyx_t_20 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_remove_self_managed_snap); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__69419; goto __pyx_L1_error;}
69420 __Pyx_GOTREF(__pyx_t_20);
69421 __pyx_t_9 = NULL((void*)0);
69422 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69423 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69424 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
69425 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69426 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
69427 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69428 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69429 }
69430 }
69431 if (!__pyx_t_9) {
69432 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_20); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69432; goto __pyx_L1_error;}
69433 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69434 __Pyx_GOTREF(__pyx_t_7);
69435 } else {
69436 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69436; goto __pyx_L1_error;}
69437 __Pyx_GOTREF(__pyx_t_15);
69438 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
69439 __Pyx_GIVEREF(__pyx_t_20);
69440 PyTuple_SET_ITEM(__pyx_t_15, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = __pyx_t_20
)
;
69441 __pyx_t_20 = 0;
69442 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3301; __pyx_clineno = __LINE__69442; goto __pyx_L1_error;}
69443 __Pyx_GOTREF(__pyx_t_7);
69444 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69445 }
69446 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69447 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_remove_self_managed_snap, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3302; __pyx_clineno = __LINE__69447; goto __pyx_L1_error;}
69448 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69449 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69450
69451 /* "rados.pyx":3356
69452 * free(_snaps)
69453 *
69454 * @requires(('oid', str_type), ('snap_id', int)) # <<<<<<<<<<<<<<
69455 * def rollback_self_managed_snap(self, oid, snap_id):
69456 * """
69457 */
69458 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69458; goto __pyx_L1_error;}
69459 __Pyx_GOTREF(__pyx_t_15);
69460 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69460; goto __pyx_L1_error;}
69461 __Pyx_GOTREF(__pyx_t_20);
69462 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69462; goto __pyx_L1_error;}
69463 __Pyx_GOTREF(__pyx_t_9);
69464 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
69465 __Pyx_GIVEREF(__pyx_n_s_oid);
69466 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_oid
)
;
69467 __Pyx_GIVEREF(__pyx_t_20);
69468 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_20);
69469 __pyx_t_20 = 0;
69470 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69470; goto __pyx_L1_error;}
69471 __Pyx_GOTREF(__pyx_t_20);
69472 __Pyx_INCREF(__pyx_n_s_snap_id)( ((PyObject*)(__pyx_n_s_snap_id))->ob_refcnt++);
69473 __Pyx_GIVEREF(__pyx_n_s_snap_id);
69474 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_snap_id)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_snap_id
)
;
69475 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
69476 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
69477 PyTuple_SET_ITEM(__pyx_t_20, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
69478 __pyx_t_14 = NULL((void*)0);
69479 __pyx_t_17 = 0;
69480 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
69481 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
69482 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
69483 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
69484 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
69485 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69486 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69487 __pyx_t_17 = 1;
69488 }
69489 }
69490 __pyx_t_8 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69490; goto __pyx_L1_error;}
69491 __Pyx_GOTREF(__pyx_t_8);
69492 if (__pyx_t_14) {
69493 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
69494 }
69495 __Pyx_GIVEREF(__pyx_t_9);
69496 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_17] = __pyx_t_9
)
;
69497 __Pyx_GIVEREF(__pyx_t_20);
69498 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_17, __pyx_t_20)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_17] = __pyx_t_20
)
;
69499 __pyx_t_9 = 0;
69500 __pyx_t_20 = 0;
69501 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69501; goto __pyx_L1_error;}
69502 __Pyx_GOTREF(__pyx_t_5);
69503 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
69504 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69505
69506 /* "rados.pyx":3357
69507 *
69508 * @requires(('oid', str_type), ('snap_id', int))
69509 * def rollback_self_managed_snap(self, oid, snap_id): # <<<<<<<<<<<<<<
69510 * """
69511 * Rolls an specific object back to a self-managed snapshot revision
69512 */
69513 __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_rollback_self_managed_snap); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3357; __pyx_clineno = __LINE__69513; goto __pyx_L1_error;}
69514 __Pyx_GOTREF(__pyx_t_15);
69515 __pyx_t_8 = NULL((void*)0);
69516 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69517 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69518 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
69519 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69520 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
69521 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69522 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69523 }
69524 }
69525 if (!__pyx_t_8) {
69526 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69526; goto __pyx_L1_error;}
69527 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69528 __Pyx_GOTREF(__pyx_t_7);
69529 } else {
69530 __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69530; goto __pyx_L1_error;}
69531 __Pyx_GOTREF(__pyx_t_20);
69532 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
69533 __Pyx_GIVEREF(__pyx_t_15);
69534 PyTuple_SET_ITEM(__pyx_t_20, 0+1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_20))->ob_item[0+1] = __pyx_t_15
)
;
69535 __pyx_t_15 = 0;
69536 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3356; __pyx_clineno = __LINE__69536; goto __pyx_L1_error;}
69537 __Pyx_GOTREF(__pyx_t_7);
69538 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69539 }
69540 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69541 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_rollback_self_managed_snap, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3357; __pyx_clineno = __LINE__69541; goto __pyx_L1_error;}
69542 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69543 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69544
69545 /* "rados.pyx":3421
69546 * read_op.release()
69547 *
69548 * @requires(('write_op', WriteOp), ('keys', tuple), ('values', tuple)) # <<<<<<<<<<<<<<
69549 * def set_omap(self, write_op, keys, values):
69550 * """
69551 */
69552 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69552; goto __pyx_L1_error;}
69553 __Pyx_GOTREF(__pyx_t_20);
69554 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69554; goto __pyx_L1_error;}
69555 __Pyx_GOTREF(__pyx_t_15);
69556 __Pyx_INCREF(__pyx_n_s_write_op)( ((PyObject*)(__pyx_n_s_write_op))->ob_refcnt++);
69557 __Pyx_GIVEREF(__pyx_n_s_write_op);
69558 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_write_op)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_write_op
)
;
69559 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_WriteOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_WriteOp)))->
ob_refcnt++)
;
69560 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_WriteOp));
69561 PyTuple_SET_ITEM(__pyx_t_15, 1, ((PyObject *)__pyx_ptype_5rados_WriteOp))(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_WriteOp))
;
69562 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69562; goto __pyx_L1_error;}
69563 __Pyx_GOTREF(__pyx_t_8);
69564 __Pyx_INCREF(__pyx_n_s_keys)( ((PyObject*)(__pyx_n_s_keys))->ob_refcnt++);
69565 __Pyx_GIVEREF(__pyx_n_s_keys);
69566 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_keys)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_keys
)
;
69567 __Pyx_INCREF(((PyObject *)(&PyTuple_Type)))( ((PyObject*)(((PyObject *)(&PyTuple_Type))))->ob_refcnt
++)
;
69568 __Pyx_GIVEREF(((PyObject *)(&PyTuple_Type)));
69569 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)(&PyTuple_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)(&PyTuple_Type)))
;
69570 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69570; goto __pyx_L1_error;}
69571 __Pyx_GOTREF(__pyx_t_9);
69572 __Pyx_INCREF(__pyx_n_s_values)( ((PyObject*)(__pyx_n_s_values))->ob_refcnt++);
69573 __Pyx_GIVEREF(__pyx_n_s_values);
69574 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_values)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_values
)
;
69575 __Pyx_INCREF(((PyObject *)(&PyTuple_Type)))( ((PyObject*)(((PyObject *)(&PyTuple_Type))))->ob_refcnt
++)
;
69576 __Pyx_GIVEREF(((PyObject *)(&PyTuple_Type)));
69577 PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)(&PyTuple_Type)))(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = ((PyObject *
)(&PyTuple_Type)))
;
69578 __pyx_t_14 = NULL((void*)0);
69579 __pyx_t_17 = 0;
69580 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_20))__builtin_expect(!!(((__pyx_t_20)->ob_type == &PyMethod_Type
)), 0)
) {
69581 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_self);
69582 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
69583 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20)(((PyMethodObject *)__pyx_t_20) -> im_func);
69584 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
69585 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69586 __Pyx_DECREF_SET(__pyx_t_20, function)do { PyObject *tmp = (PyObject *) __pyx_t_20; __pyx_t_20 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69587 __pyx_t_17 = 1;
69588 }
69589 }
69590 __pyx_t_19 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69590; goto __pyx_L1_error;}
69591 __Pyx_GOTREF(__pyx_t_19);
69592 if (__pyx_t_14) {
69593 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
69594 }
69595 __Pyx_GIVEREF(__pyx_t_15);
69596 PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+__pyx_t_17] = __pyx_t_15
)
;
69597 __Pyx_GIVEREF(__pyx_t_8);
69598 PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_19))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
69599 __Pyx_GIVEREF(__pyx_t_9);
69600 PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_19))->ob_item[2+__pyx_t_17] = __pyx_t_9
)
;
69601 __pyx_t_15 = 0;
69602 __pyx_t_8 = 0;
69603 __pyx_t_9 = 0;
69604 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69604; goto __pyx_L1_error;}
69605 __Pyx_GOTREF(__pyx_t_5);
69606 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
69607 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69608
69609 /* "rados.pyx":3422
69610 *
69611 * @requires(('write_op', WriteOp), ('keys', tuple), ('values', tuple))
69612 * def set_omap(self, write_op, keys, values): # <<<<<<<<<<<<<<
69613 * """
69614 * set keys values to write_op
69615 */
69616 __pyx_t_20 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_set_omap); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3422; __pyx_clineno = __LINE__69616; goto __pyx_L1_error;}
69617 __Pyx_GOTREF(__pyx_t_20);
69618 __pyx_t_19 = NULL((void*)0);
69619 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69620 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69621 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
69622 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69623 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
69624 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69625 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69626 }
69627 }
69628 if (!__pyx_t_19) {
69629 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_20); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69629; goto __pyx_L1_error;}
69630 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69631 __Pyx_GOTREF(__pyx_t_7);
69632 } else {
69633 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69633; goto __pyx_L1_error;}
69634 __Pyx_GOTREF(__pyx_t_9);
69635 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
69636 __Pyx_GIVEREF(__pyx_t_20);
69637 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_20
)
;
69638 __pyx_t_20 = 0;
69639 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3421; __pyx_clineno = __LINE__69639; goto __pyx_L1_error;}
69640 __Pyx_GOTREF(__pyx_t_7);
69641 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69642 }
69643 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69644 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_set_omap, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3422; __pyx_clineno = __LINE__69644; goto __pyx_L1_error;}
69645 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69646 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69647
69648 /* "rados.pyx":3458
69649 *
69650 * @requires(('write_op', WriteOp), ('oid', str_type), ('mtime', opt(int)), ('flags', opt(int)))
69651 * def operate_write_op(self, write_op, oid, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
69652 * """
69653 * execute the real write operation
69654 */
69655 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_LIBRADOS_OPERATION_NOFLAG); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3458; __pyx_clineno = __LINE__69655; goto __pyx_L1_error;}
69656 __Pyx_GOTREF(__pyx_t_7);
69657 __pyx_k__61 = __pyx_t_7;
69658 __Pyx_GIVEREF(__pyx_t_7);
69659 __pyx_t_7 = 0;
69660
69661 /* "rados.pyx":3457
69662 * free(_lens)
69663 *
69664 * @requires(('write_op', WriteOp), ('oid', str_type), ('mtime', opt(int)), ('flags', opt(int))) # <<<<<<<<<<<<<<
69665 * def operate_write_op(self, write_op, oid, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG):
69666 * """
69667 */
69668 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69668; goto __pyx_L1_error;}
69669 __Pyx_GOTREF(__pyx_t_9);
69670 __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69670; goto __pyx_L1_error;}
69671 __Pyx_GOTREF(__pyx_t_20);
69672 __Pyx_INCREF(__pyx_n_s_write_op)( ((PyObject*)(__pyx_n_s_write_op))->ob_refcnt++);
69673 __Pyx_GIVEREF(__pyx_n_s_write_op);
69674 PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_n_s_write_op)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_n_s_write_op
)
;
69675 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_WriteOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_WriteOp)))->
ob_refcnt++)
;
69676 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_WriteOp));
69677 PyTuple_SET_ITEM(__pyx_t_20, 1, ((PyObject *)__pyx_ptype_5rados_WriteOp))(((PyTupleObject *)(__pyx_t_20))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_WriteOp))
;
69678 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69678; goto __pyx_L1_error;}
69679 __Pyx_GOTREF(__pyx_t_19);
69680 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69680; goto __pyx_L1_error;}
69681 __Pyx_GOTREF(__pyx_t_8);
69682 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
69683 __Pyx_GIVEREF(__pyx_n_s_oid);
69684 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_oid
)
;
69685 __Pyx_GIVEREF(__pyx_t_19);
69686 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_19);
69687 __pyx_t_19 = 0;
69688 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69688; goto __pyx_L1_error;}
69689 __Pyx_GOTREF(__pyx_t_15);
69690 __pyx_t_14 = NULL((void*)0);
69691 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_15))__builtin_expect(!!(((__pyx_t_15)->ob_type == &PyMethod_Type
)), 0)
) {
69692 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_self);
69693 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
69694 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15)(((PyMethodObject *)__pyx_t_15) -> im_func);
69695 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
69696 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69697 __Pyx_DECREF_SET(__pyx_t_15, function)do { PyObject *tmp = (PyObject *) __pyx_t_15; __pyx_t_15 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69698 }
69699 }
69700 if (!__pyx_t_14) {
69701 __pyx_t_19 = __Pyx_PyObject_CallOneArg(__pyx_t_15, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69701; goto __pyx_L1_error;}
69702 __Pyx_GOTREF(__pyx_t_19);
69703 } else {
69704 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69704; goto __pyx_L1_error;}
69705 __Pyx_GOTREF(__pyx_t_1);
69706 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
69707 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
69708 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
69709 PyTuple_SET_ITEM(__pyx_t_1, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
69710 __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69710; goto __pyx_L1_error;}
69711 __Pyx_GOTREF(__pyx_t_19);
69712 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
69713 }
69714 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
69715 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69715; goto __pyx_L1_error;}
69716 __Pyx_GOTREF(__pyx_t_15);
69717 __Pyx_INCREF(__pyx_n_s_mtime)( ((PyObject*)(__pyx_n_s_mtime))->ob_refcnt++);
69718 __Pyx_GIVEREF(__pyx_n_s_mtime);
69719 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_mtime)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_mtime
)
;
69720 __Pyx_GIVEREF(__pyx_t_19);
69721 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_19);
69722 __pyx_t_19 = 0;
69723 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69723; goto __pyx_L1_error;}
69724 __Pyx_GOTREF(__pyx_t_1);
69725 __pyx_t_14 = NULL((void*)0);
69726 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
69727 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
69728 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
69729 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
69730 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
69731 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69732 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69733 }
69734 }
69735 if (!__pyx_t_14) {
69736 __pyx_t_19 = __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69736; goto __pyx_L1_error;}
69737 __Pyx_GOTREF(__pyx_t_19);
69738 } else {
69739 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69739; goto __pyx_L1_error;}
69740 __Pyx_GOTREF(__pyx_t_13);
69741 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
69742 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
69743 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
69744 PyTuple_SET_ITEM(__pyx_t_13, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
69745 __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69745; goto __pyx_L1_error;}
69746 __Pyx_GOTREF(__pyx_t_19);
69747 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
69748 }
69749 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
69750 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69750; goto __pyx_L1_error;}
69751 __Pyx_GOTREF(__pyx_t_1);
69752 __Pyx_INCREF(__pyx_n_s_flags)( ((PyObject*)(__pyx_n_s_flags))->ob_refcnt++);
69753 __Pyx_GIVEREF(__pyx_n_s_flags);
69754 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_flags)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_flags
)
;
69755 __Pyx_GIVEREF(__pyx_t_19);
69756 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_19);
69757 __pyx_t_19 = 0;
69758 __pyx_t_19 = NULL((void*)0);
69759 __pyx_t_17 = 0;
69760 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_9))__builtin_expect(!!(((__pyx_t_9)->ob_type == &PyMethod_Type
)), 0)
) {
69761 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_self);
69762 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
69763 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_func);
69764 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
69765 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69766 __Pyx_DECREF_SET(__pyx_t_9, function)do { PyObject *tmp = (PyObject *) __pyx_t_9; __pyx_t_9 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69767 __pyx_t_17 = 1;
69768 }
69769 }
69770 __pyx_t_13 = PyTuple_New(4+__pyx_t_17); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69770; goto __pyx_L1_error;}
69771 __Pyx_GOTREF(__pyx_t_13);
69772 if (__pyx_t_19) {
69773 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
69774 }
69775 __Pyx_GIVEREF(__pyx_t_20);
69776 PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_17, __pyx_t_20)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+__pyx_t_17] = __pyx_t_20
)
;
69777 __Pyx_GIVEREF(__pyx_t_8);
69778 PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[1+__pyx_t_17] = __pyx_t_8
)
;
69779 __Pyx_GIVEREF(__pyx_t_15);
69780 PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[2+__pyx_t_17] = __pyx_t_15
)
;
69781 __Pyx_GIVEREF(__pyx_t_1);
69782 PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_13))->ob_item[3+__pyx_t_17] = __pyx_t_1
)
;
69783 __pyx_t_20 = 0;
69784 __pyx_t_8 = 0;
69785 __pyx_t_15 = 0;
69786 __pyx_t_1 = 0;
69787 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69787; goto __pyx_L1_error;}
69788 __Pyx_GOTREF(__pyx_t_5);
69789 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
69790 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69791
69792 /* "rados.pyx":3458
69793 *
69794 * @requires(('write_op', WriteOp), ('oid', str_type), ('mtime', opt(int)), ('flags', opt(int)))
69795 * def operate_write_op(self, write_op, oid, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
69796 * """
69797 * execute the real write operation
69798 */
69799 __pyx_t_9 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_operate_write_op); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3458; __pyx_clineno = __LINE__69799; goto __pyx_L1_error;}
69800 __Pyx_GOTREF(__pyx_t_9);
69801 __pyx_t_13 = NULL((void*)0);
69802 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
69803 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
69804 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
69805 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
69806 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
69807 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69808 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69809 }
69810 }
69811 if (!__pyx_t_13) {
69812 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69812; goto __pyx_L1_error;}
69813 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
69814 __Pyx_GOTREF(__pyx_t_7);
69815 } else {
69816 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69816; goto __pyx_L1_error;}
69817 __Pyx_GOTREF(__pyx_t_1);
69818 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
69819 __Pyx_GIVEREF(__pyx_t_9);
69820 PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = __pyx_t_9);
69821 __pyx_t_9 = 0;
69822 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3457; __pyx_clineno = __LINE__69822; goto __pyx_L1_error;}
69823 __Pyx_GOTREF(__pyx_t_7);
69824 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
69825 }
69826 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
69827 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_operate_write_op, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3458; __pyx_clineno = __LINE__69827; goto __pyx_L1_error;}
69828 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
69829 PyType_Modified(__pyx_ptype_5rados_Ioctx);
69830
69831 /* "rados.pyx":3484
69832 *
69833 * @requires(('write_op', WriteOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('mtime', opt(int)), ('flags', opt(int)))
69834 * def operate_aio_write_op(self, write_op, oid, oncomplete=None, onsafe=None, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
69835 * """
69836 * execute the real write operation asynchronously
69837 */
69838 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_LIBRADOS_OPERATION_NOFLAG); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3484; __pyx_clineno = __LINE__69838; goto __pyx_L1_error;}
69839 __Pyx_GOTREF(__pyx_t_7);
69840 __pyx_k__62 = __pyx_t_7;
69841 __Pyx_GIVEREF(__pyx_t_7);
69842 __pyx_t_7 = 0;
69843
69844 /* "rados.pyx":3483
69845 * raise make_ex(ret, "Failed to operate write op for oid %s" % oid)
69846 *
69847 * @requires(('write_op', WriteOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('mtime', opt(int)), ('flags', opt(int))) # <<<<<<<<<<<<<<
69848 * def operate_aio_write_op(self, write_op, oid, oncomplete=None, onsafe=None, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG):
69849 * """
69850 */
69851 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69851; goto __pyx_L1_error;}
69852 __Pyx_GOTREF(__pyx_t_1);
69853 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69853; goto __pyx_L1_error;}
69854 __Pyx_GOTREF(__pyx_t_9);
69855 __Pyx_INCREF(__pyx_n_s_write_op)( ((PyObject*)(__pyx_n_s_write_op))->ob_refcnt++);
69856 __Pyx_GIVEREF(__pyx_n_s_write_op);
69857 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_write_op)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_write_op
)
;
69858 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_WriteOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_WriteOp)))->
ob_refcnt++)
;
69859 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_WriteOp));
69860 PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_ptype_5rados_WriteOp))(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_WriteOp))
;
69861 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69861; goto __pyx_L1_error;}
69862 __Pyx_GOTREF(__pyx_t_13);
69863 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69863; goto __pyx_L1_error;}
69864 __Pyx_GOTREF(__pyx_t_15);
69865 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
69866 __Pyx_GIVEREF(__pyx_n_s_oid);
69867 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_oid
)
;
69868 __Pyx_GIVEREF(__pyx_t_13);
69869 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_13);
69870 __pyx_t_13 = 0;
69871 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69871; goto __pyx_L1_error;}
69872 __Pyx_GOTREF(__pyx_t_8);
69873 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69873; goto __pyx_L1_error;}
69874 __Pyx_GOTREF(__pyx_t_20);
69875 __pyx_t_19 = NULL((void*)0);
69876 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
69877 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
69878 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
69879 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
69880 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
69881 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69882 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69883 }
69884 }
69885 if (!__pyx_t_19) {
69886 __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_20); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69886; goto __pyx_L1_error;}
69887 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69888 __Pyx_GOTREF(__pyx_t_13);
69889 } else {
69890 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69890; goto __pyx_L1_error;}
69891 __Pyx_GOTREF(__pyx_t_14);
69892 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
69893 __Pyx_GIVEREF(__pyx_t_20);
69894 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_20
)
;
69895 __pyx_t_20 = 0;
69896 __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69896; goto __pyx_L1_error;}
69897 __Pyx_GOTREF(__pyx_t_13);
69898 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
69899 }
69900 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
69901 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69901; goto __pyx_L1_error;}
69902 __Pyx_GOTREF(__pyx_t_8);
69903 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
69904 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
69905 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_oncomplete
)
;
69906 __Pyx_GIVEREF(__pyx_t_13);
69907 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_13);
69908 __pyx_t_13 = 0;
69909 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69909; goto __pyx_L1_error;}
69910 __Pyx_GOTREF(__pyx_t_14);
69911 __pyx_t_20 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69911; goto __pyx_L1_error;}
69912 __Pyx_GOTREF(__pyx_t_20);
69913 __pyx_t_19 = NULL((void*)0);
69914 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
69915 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
69916 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
69917 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
69918 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
69919 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69920 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69921 }
69922 }
69923 if (!__pyx_t_19) {
69924 __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_20); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69924; goto __pyx_L1_error;}
69925 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
69926 __Pyx_GOTREF(__pyx_t_13);
69927 } else {
69928 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69928; goto __pyx_L1_error;}
69929 __Pyx_GOTREF(__pyx_t_16);
69930 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
69931 __Pyx_GIVEREF(__pyx_t_20);
69932 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_20)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_20
)
;
69933 __pyx_t_20 = 0;
69934 __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69934; goto __pyx_L1_error;}
69935 __Pyx_GOTREF(__pyx_t_13);
69936 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
69937 }
69938 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
69939 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69939; goto __pyx_L1_error;}
69940 __Pyx_GOTREF(__pyx_t_14);
69941 __Pyx_INCREF(__pyx_n_s_onsafe)( ((PyObject*)(__pyx_n_s_onsafe))->ob_refcnt++);
69942 __Pyx_GIVEREF(__pyx_n_s_onsafe);
69943 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_onsafe)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_onsafe
)
;
69944 __Pyx_GIVEREF(__pyx_t_13);
69945 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_13);
69946 __pyx_t_13 = 0;
69947 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69947; goto __pyx_L1_error;}
69948 __Pyx_GOTREF(__pyx_t_16);
69949 __pyx_t_20 = NULL((void*)0);
69950 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_16))__builtin_expect(!!(((__pyx_t_16)->ob_type == &PyMethod_Type
)), 0)
) {
69951 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_self);
69952 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
69953 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_func);
69954 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
69955 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69956 __Pyx_DECREF_SET(__pyx_t_16, function)do { PyObject *tmp = (PyObject *) __pyx_t_16; __pyx_t_16 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69957 }
69958 }
69959 if (!__pyx_t_20) {
69960 __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_16, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69960; goto __pyx_L1_error;}
69961 __Pyx_GOTREF(__pyx_t_13);
69962 } else {
69963 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69963; goto __pyx_L1_error;}
69964 __Pyx_GOTREF(__pyx_t_19);
69965 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
69966 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
69967 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
69968 PyTuple_SET_ITEM(__pyx_t_19, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
69969 __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69969; goto __pyx_L1_error;}
69970 __Pyx_GOTREF(__pyx_t_13);
69971 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
69972 }
69973 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
69974 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69974; goto __pyx_L1_error;}
69975 __Pyx_GOTREF(__pyx_t_16);
69976 __Pyx_INCREF(__pyx_n_s_mtime)( ((PyObject*)(__pyx_n_s_mtime))->ob_refcnt++);
69977 __Pyx_GIVEREF(__pyx_n_s_mtime);
69978 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_mtime)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_mtime
)
;
69979 __Pyx_GIVEREF(__pyx_t_13);
69980 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_13);
69981 __pyx_t_13 = 0;
69982 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69982; goto __pyx_L1_error;}
69983 __Pyx_GOTREF(__pyx_t_19);
69984 __pyx_t_20 = NULL((void*)0);
69985 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
69986 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
69987 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
69988 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
69989 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
69990 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
69991 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
69992 }
69993 }
69994 if (!__pyx_t_20) {
69995 __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_19, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69995; goto __pyx_L1_error;}
69996 __Pyx_GOTREF(__pyx_t_13);
69997 } else {
69998 __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__69998; goto __pyx_L1_error;}
69999 __Pyx_GOTREF(__pyx_t_12);
70000 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
70001 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
70002 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
70003 PyTuple_SET_ITEM(__pyx_t_12, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_12))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
70004 __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__70004; goto __pyx_L1_error;}
70005 __Pyx_GOTREF(__pyx_t_13);
70006 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
70007 }
70008 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70009 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__70009; goto __pyx_L1_error;}
70010 __Pyx_GOTREF(__pyx_t_19);
70011 __Pyx_INCREF(__pyx_n_s_flags)( ((PyObject*)(__pyx_n_s_flags))->ob_refcnt++);
70012 __Pyx_GIVEREF(__pyx_n_s_flags);
70013 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_flags)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_flags
)
;
70014 __Pyx_GIVEREF(__pyx_t_13);
70015 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_13);
70016 __pyx_t_13 = 0;
70017 __pyx_t_13 = NULL((void*)0);
70018 __pyx_t_17 = 0;
70019 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
70020 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
70021 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
70022 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
70023 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
70024 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70025 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70026 __pyx_t_17 = 1;
70027 }
70028 }
70029 __pyx_t_12 = PyTuple_New(6+__pyx_t_17); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__70029; goto __pyx_L1_error;}
70030 __Pyx_GOTREF(__pyx_t_12);
70031 if (__pyx_t_13) {
70032 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
70033 }
70034 __Pyx_GIVEREF(__pyx_t_9);
70035 PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_12))->ob_item[0+__pyx_t_17] = __pyx_t_9
)
;
70036 __Pyx_GIVEREF(__pyx_t_15);
70037 PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_12))->ob_item[1+__pyx_t_17] = __pyx_t_15
)
;
70038 __Pyx_GIVEREF(__pyx_t_8);
70039 PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_12))->ob_item[2+__pyx_t_17] = __pyx_t_8
)
;
70040 __Pyx_GIVEREF(__pyx_t_14);
70041 PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_12))->ob_item[3+__pyx_t_17] = __pyx_t_14
)
;
70042 __Pyx_GIVEREF(__pyx_t_16);
70043 PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_17, __pyx_t_16)(((PyTupleObject *)(__pyx_t_12))->ob_item[4+__pyx_t_17] = __pyx_t_16
)
;
70044 __Pyx_GIVEREF(__pyx_t_19);
70045 PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_12))->ob_item[5+__pyx_t_17] = __pyx_t_19
)
;
70046 __pyx_t_9 = 0;
70047 __pyx_t_15 = 0;
70048 __pyx_t_8 = 0;
70049 __pyx_t_14 = 0;
70050 __pyx_t_16 = 0;
70051 __pyx_t_19 = 0;
70052 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__70052; goto __pyx_L1_error;}
70053 __Pyx_GOTREF(__pyx_t_5);
70054 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
70055 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
70056
70057 /* "rados.pyx":3484
70058 *
70059 * @requires(('write_op', WriteOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('mtime', opt(int)), ('flags', opt(int)))
70060 * def operate_aio_write_op(self, write_op, oid, oncomplete=None, onsafe=None, mtime=0, flags=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
70061 * """
70062 * execute the real write operation asynchronously
70063 */
70064 __pyx_t_1 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_operate_aio_write_op); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3484; __pyx_clineno = __LINE__70064; goto __pyx_L1_error;}
70065 __Pyx_GOTREF(__pyx_t_1);
70066 __pyx_t_12 = NULL((void*)0);
70067 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70068 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70069 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
70070 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70071 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
70072 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70073 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70074 }
70075 }
70076 if (!__pyx_t_12) {
70077 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__70077; goto __pyx_L1_error;}
70078 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
70079 __Pyx_GOTREF(__pyx_t_7);
70080 } else {
70081 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__70081; goto __pyx_L1_error;}
70082 __Pyx_GOTREF(__pyx_t_19);
70083 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
70084 __Pyx_GIVEREF(__pyx_t_1);
70085 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_1)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_1
)
;
70086 __pyx_t_1 = 0;
70087 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3483; __pyx_clineno = __LINE__70087; goto __pyx_L1_error;}
70088 __Pyx_GOTREF(__pyx_t_7);
70089 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70090 }
70091 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70092 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_operate_aio_write_op, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3484; __pyx_clineno = __LINE__70092; goto __pyx_L1_error;}
70093 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70094 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70095
70096 /* "rados.pyx":3526
70097 *
70098 * @requires(('read_op', ReadOp), ('oid', str_type), ('flag', opt(int)))
70099 * def operate_read_op(self, read_op, oid, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
70100 * """
70101 * execute the real read operation
70102 */
70103 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_LIBRADOS_OPERATION_NOFLAG); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3526; __pyx_clineno = __LINE__70103; goto __pyx_L1_error;}
70104 __Pyx_GOTREF(__pyx_t_7);
70105 __pyx_k__63 = __pyx_t_7;
70106 __Pyx_GIVEREF(__pyx_t_7);
70107 __pyx_t_7 = 0;
70108
70109 /* "rados.pyx":3525
70110 * return completion
70111 *
70112 * @requires(('read_op', ReadOp), ('oid', str_type), ('flag', opt(int))) # <<<<<<<<<<<<<<
70113 * def operate_read_op(self, read_op, oid, flag=LIBRADOS_OPERATION_NOFLAG):
70114 * """
70115 */
70116 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70116; goto __pyx_L1_error;}
70117 __Pyx_GOTREF(__pyx_t_19);
70118 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70118; goto __pyx_L1_error;}
70119 __Pyx_GOTREF(__pyx_t_1);
70120 __Pyx_INCREF(__pyx_n_s_read_op)( ((PyObject*)(__pyx_n_s_read_op))->ob_refcnt++);
70121 __Pyx_GIVEREF(__pyx_n_s_read_op);
70122 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_read_op)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_read_op
)
;
70123 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_ReadOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_ReadOp)))->
ob_refcnt++)
;
70124 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_ReadOp));
70125 PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_ptype_5rados_ReadOp))(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_ReadOp))
;
70126 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70126; goto __pyx_L1_error;}
70127 __Pyx_GOTREF(__pyx_t_12);
70128 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70128; goto __pyx_L1_error;}
70129 __Pyx_GOTREF(__pyx_t_16);
70130 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
70131 __Pyx_GIVEREF(__pyx_n_s_oid);
70132 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_oid
)
;
70133 __Pyx_GIVEREF(__pyx_t_12);
70134 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_12);
70135 __pyx_t_12 = 0;
70136 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70136; goto __pyx_L1_error;}
70137 __Pyx_GOTREF(__pyx_t_14);
70138 __pyx_t_8 = NULL((void*)0);
70139 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
70140 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
70141 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
70142 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
70143 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
70144 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70145 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70146 }
70147 }
70148 if (!__pyx_t_8) {
70149 __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_14, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70149; goto __pyx_L1_error;}
70150 __Pyx_GOTREF(__pyx_t_12);
70151 } else {
70152 __pyx_t_15 = PyTuple_New(1+1); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70152; goto __pyx_L1_error;}
70153 __Pyx_GOTREF(__pyx_t_15);
70154 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
70155 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
70156 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
70157 PyTuple_SET_ITEM(__pyx_t_15, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_15))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
70158 __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70158; goto __pyx_L1_error;}
70159 __Pyx_GOTREF(__pyx_t_12);
70160 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
70161 }
70162 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70163 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70163; goto __pyx_L1_error;}
70164 __Pyx_GOTREF(__pyx_t_14);
70165 __Pyx_INCREF(__pyx_n_s_flag)( ((PyObject*)(__pyx_n_s_flag))->ob_refcnt++);
70166 __Pyx_GIVEREF(__pyx_n_s_flag);
70167 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_flag)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_flag
)
;
70168 __Pyx_GIVEREF(__pyx_t_12);
70169 PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = __pyx_t_12);
70170 __pyx_t_12 = 0;
70171 __pyx_t_12 = NULL((void*)0);
70172 __pyx_t_17 = 0;
70173 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
70174 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
70175 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
70176 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
70177 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
70178 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70179 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70180 __pyx_t_17 = 1;
70181 }
70182 }
70183 __pyx_t_15 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70183; goto __pyx_L1_error;}
70184 __Pyx_GOTREF(__pyx_t_15);
70185 if (__pyx_t_12) {
70186 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
70187 }
70188 __Pyx_GIVEREF(__pyx_t_1);
70189 PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+__pyx_t_17] = __pyx_t_1
)
;
70190 __Pyx_GIVEREF(__pyx_t_16);
70191 PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_17, __pyx_t_16)(((PyTupleObject *)(__pyx_t_15))->ob_item[1+__pyx_t_17] = __pyx_t_16
)
;
70192 __Pyx_GIVEREF(__pyx_t_14);
70193 PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[2+__pyx_t_17] = __pyx_t_14
)
;
70194 __pyx_t_1 = 0;
70195 __pyx_t_16 = 0;
70196 __pyx_t_14 = 0;
70197 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70197; goto __pyx_L1_error;}
70198 __Pyx_GOTREF(__pyx_t_5);
70199 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
70200 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70201
70202 /* "rados.pyx":3526
70203 *
70204 * @requires(('read_op', ReadOp), ('oid', str_type), ('flag', opt(int)))
70205 * def operate_read_op(self, read_op, oid, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
70206 * """
70207 * execute the real read operation
70208 */
70209 __pyx_t_19 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_operate_read_op); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3526; __pyx_clineno = __LINE__70209; goto __pyx_L1_error;}
70210 __Pyx_GOTREF(__pyx_t_19);
70211 __pyx_t_15 = NULL((void*)0);
70212 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70213 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70214 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
70215 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70216 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
70217 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70218 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70219 }
70220 }
70221 if (!__pyx_t_15) {
70222 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70222; goto __pyx_L1_error;}
70223 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70224 __Pyx_GOTREF(__pyx_t_7);
70225 } else {
70226 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70226; goto __pyx_L1_error;}
70227 __Pyx_GOTREF(__pyx_t_14);
70228 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
70229 __Pyx_GIVEREF(__pyx_t_19);
70230 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_19
)
;
70231 __pyx_t_19 = 0;
70232 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3525; __pyx_clineno = __LINE__70232; goto __pyx_L1_error;}
70233 __Pyx_GOTREF(__pyx_t_7);
70234 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70235 }
70236 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70237 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_operate_read_op, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3526; __pyx_clineno = __LINE__70237; goto __pyx_L1_error;}
70238 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70239 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70240
70241 /* "rados.pyx":3548
70242 *
70243 * @requires(('read_op', ReadOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('flag', opt(int)))
70244 * def operate_aio_read_op(self, read_op, oid, oncomplete=None, onsafe=None, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
70245 * """
70246 * execute the real read operation
70247 */
70248 __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_LIBRADOS_OPERATION_NOFLAG); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3548; __pyx_clineno = __LINE__70248; goto __pyx_L1_error;}
70249 __Pyx_GOTREF(__pyx_t_7);
70250 __pyx_k__64 = __pyx_t_7;
70251 __Pyx_GIVEREF(__pyx_t_7);
70252 __pyx_t_7 = 0;
70253
70254 /* "rados.pyx":3547
70255 * raise make_ex(ret, "Failed to operate read op for oid %s" % oid)
70256 *
70257 * @requires(('read_op', ReadOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('flag', opt(int))) # <<<<<<<<<<<<<<
70258 * def operate_aio_read_op(self, read_op, oid, oncomplete=None, onsafe=None, flag=LIBRADOS_OPERATION_NOFLAG):
70259 * """
70260 */
70261 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70261; goto __pyx_L1_error;}
70262 __Pyx_GOTREF(__pyx_t_14);
70263 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70263; goto __pyx_L1_error;}
70264 __Pyx_GOTREF(__pyx_t_19);
70265 __Pyx_INCREF(__pyx_n_s_read_op)( ((PyObject*)(__pyx_n_s_read_op))->ob_refcnt++);
70266 __Pyx_GIVEREF(__pyx_n_s_read_op);
70267 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_read_op)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_read_op
)
;
70268 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_ReadOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_ReadOp)))->
ob_refcnt++)
;
70269 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_ReadOp));
70270 PyTuple_SET_ITEM(__pyx_t_19, 1, ((PyObject *)__pyx_ptype_5rados_ReadOp))(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_ReadOp))
;
70271 __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70271; goto __pyx_L1_error;}
70272 __Pyx_GOTREF(__pyx_t_15);
70273 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70273; goto __pyx_L1_error;}
70274 __Pyx_GOTREF(__pyx_t_16);
70275 __Pyx_INCREF(__pyx_n_s_oid)( ((PyObject*)(__pyx_n_s_oid))->ob_refcnt++);
70276 __Pyx_GIVEREF(__pyx_n_s_oid);
70277 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_oid)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_oid
)
;
70278 __Pyx_GIVEREF(__pyx_t_15);
70279 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_15);
70280 __pyx_t_15 = 0;
70281 __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70281; goto __pyx_L1_error;}
70282 __Pyx_GOTREF(__pyx_t_1);
70283 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70283; goto __pyx_L1_error;}
70284 __Pyx_GOTREF(__pyx_t_12);
70285 __pyx_t_8 = NULL((void*)0);
70286 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_1))__builtin_expect(!!(((__pyx_t_1)->ob_type == &PyMethod_Type
)), 0)
) {
70287 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_self);
70288 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
70289 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1)(((PyMethodObject *)__pyx_t_1) -> im_func);
70290 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
70291 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70292 __Pyx_DECREF_SET(__pyx_t_1, function)do { PyObject *tmp = (PyObject *) __pyx_t_1; __pyx_t_1 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70293 }
70294 }
70295 if (!__pyx_t_8) {
70296 __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70296; goto __pyx_L1_error;}
70297 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
70298 __Pyx_GOTREF(__pyx_t_15);
70299 } else {
70300 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70300; goto __pyx_L1_error;}
70301 __Pyx_GOTREF(__pyx_t_9);
70302 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
70303 __Pyx_GIVEREF(__pyx_t_12);
70304 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_12
)
;
70305 __pyx_t_12 = 0;
70306 __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70306; goto __pyx_L1_error;}
70307 __Pyx_GOTREF(__pyx_t_15);
70308 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
70309 }
70310 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
70311 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70311; goto __pyx_L1_error;}
70312 __Pyx_GOTREF(__pyx_t_1);
70313 __Pyx_INCREF(__pyx_n_s_oncomplete)( ((PyObject*)(__pyx_n_s_oncomplete))->ob_refcnt++);
70314 __Pyx_GIVEREF(__pyx_n_s_oncomplete);
70315 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_oncomplete)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_oncomplete
)
;
70316 __Pyx_GIVEREF(__pyx_t_15);
70317 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_15);
70318 __pyx_t_15 = 0;
70319 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70319; goto __pyx_L1_error;}
70320 __Pyx_GOTREF(__pyx_t_9);
70321 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_Callable); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70321; goto __pyx_L1_error;}
70322 __Pyx_GOTREF(__pyx_t_12);
70323 __pyx_t_8 = NULL((void*)0);
70324 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_9))__builtin_expect(!!(((__pyx_t_9)->ob_type == &PyMethod_Type
)), 0)
) {
70325 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_self);
70326 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
70327 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_func);
70328 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
70329 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70330 __Pyx_DECREF_SET(__pyx_t_9, function)do { PyObject *tmp = (PyObject *) __pyx_t_9; __pyx_t_9 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70331 }
70332 }
70333 if (!__pyx_t_8) {
70334 __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_12); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70334; goto __pyx_L1_error;}
70335 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
70336 __Pyx_GOTREF(__pyx_t_15);
70337 } else {
70338 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70338; goto __pyx_L1_error;}
70339 __Pyx_GOTREF(__pyx_t_13);
70340 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
70341 __Pyx_GIVEREF(__pyx_t_12);
70342 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_12
)
;
70343 __pyx_t_12 = 0;
70344 __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70344; goto __pyx_L1_error;}
70345 __Pyx_GOTREF(__pyx_t_15);
70346 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70347 }
70348 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
70349 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70349; goto __pyx_L1_error;}
70350 __Pyx_GOTREF(__pyx_t_9);
70351 __Pyx_INCREF(__pyx_n_s_onsafe)( ((PyObject*)(__pyx_n_s_onsafe))->ob_refcnt++);
70352 __Pyx_GIVEREF(__pyx_n_s_onsafe);
70353 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_onsafe)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_onsafe
)
;
70354 __Pyx_GIVEREF(__pyx_t_15);
70355 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_15);
70356 __pyx_t_15 = 0;
70357 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70357; goto __pyx_L1_error;}
70358 __Pyx_GOTREF(__pyx_t_13);
70359 __pyx_t_12 = NULL((void*)0);
70360 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
70361 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
70362 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
70363 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
70364 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
70365 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70366 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70367 }
70368 }
70369 if (!__pyx_t_12) {
70370 __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_13, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70370; goto __pyx_L1_error;}
70371 __Pyx_GOTREF(__pyx_t_15);
70372 } else {
70373 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70373; goto __pyx_L1_error;}
70374 __Pyx_GOTREF(__pyx_t_8);
70375 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
70376 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
70377 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
70378 PyTuple_SET_ITEM(__pyx_t_8, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
70379 __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70379; goto __pyx_L1_error;}
70380 __Pyx_GOTREF(__pyx_t_15);
70381 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
70382 }
70383 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70384 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70384; goto __pyx_L1_error;}
70385 __Pyx_GOTREF(__pyx_t_13);
70386 __Pyx_INCREF(__pyx_n_s_flag)( ((PyObject*)(__pyx_n_s_flag))->ob_refcnt++);
70387 __Pyx_GIVEREF(__pyx_n_s_flag);
70388 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_flag)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_flag
)
;
70389 __Pyx_GIVEREF(__pyx_t_15);
70390 PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = __pyx_t_15);
70391 __pyx_t_15 = 0;
70392 __pyx_t_15 = NULL((void*)0);
70393 __pyx_t_17 = 0;
70394 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
70395 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
70396 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
70397 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
70398 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
70399 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70400 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70401 __pyx_t_17 = 1;
70402 }
70403 }
70404 __pyx_t_8 = PyTuple_New(5+__pyx_t_17); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70404; goto __pyx_L1_error;}
70405 __Pyx_GOTREF(__pyx_t_8);
70406 if (__pyx_t_15) {
70407 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
70408 }
70409 __Pyx_GIVEREF(__pyx_t_19);
70410 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_17] = __pyx_t_19
)
;
70411 __Pyx_GIVEREF(__pyx_t_16);
70412 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_17, __pyx_t_16)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_17] = __pyx_t_16
)
;
70413 __Pyx_GIVEREF(__pyx_t_1);
70414 PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[2+__pyx_t_17] = __pyx_t_1
)
;
70415 __Pyx_GIVEREF(__pyx_t_9);
70416 PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_8))->ob_item[3+__pyx_t_17] = __pyx_t_9
)
;
70417 __Pyx_GIVEREF(__pyx_t_13);
70418 PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[4+__pyx_t_17] = __pyx_t_13
)
;
70419 __pyx_t_19 = 0;
70420 __pyx_t_16 = 0;
70421 __pyx_t_1 = 0;
70422 __pyx_t_9 = 0;
70423 __pyx_t_13 = 0;
70424 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70424; goto __pyx_L1_error;}
70425 __Pyx_GOTREF(__pyx_t_5);
70426 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
70427 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70428
70429 /* "rados.pyx":3548
70430 *
70431 * @requires(('read_op', ReadOp), ('oid', str_type), ('oncomplete', opt(Callable)), ('onsafe', opt(Callable)), ('flag', opt(int)))
70432 * def operate_aio_read_op(self, read_op, oid, oncomplete=None, onsafe=None, flag=LIBRADOS_OPERATION_NOFLAG): # <<<<<<<<<<<<<<
70433 * """
70434 * execute the real read operation
70435 */
70436 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_operate_aio_read_op); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3548; __pyx_clineno = __LINE__70436; goto __pyx_L1_error;}
70437 __Pyx_GOTREF(__pyx_t_14);
70438 __pyx_t_8 = NULL((void*)0);
70439 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70440 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70441 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
70442 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70443 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
70444 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70445 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70446 }
70447 }
70448 if (!__pyx_t_8) {
70449 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70449; goto __pyx_L1_error;}
70450 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70451 __Pyx_GOTREF(__pyx_t_7);
70452 } else {
70453 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70453; goto __pyx_L1_error;}
70454 __Pyx_GOTREF(__pyx_t_13);
70455 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
70456 __Pyx_GIVEREF(__pyx_t_14);
70457 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
70458 __pyx_t_14 = 0;
70459 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3547; __pyx_clineno = __LINE__70459; goto __pyx_L1_error;}
70460 __Pyx_GOTREF(__pyx_t_7);
70461 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70462 }
70463 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70464 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_operate_aio_read_op, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3548; __pyx_clineno = __LINE__70464; goto __pyx_L1_error;}
70465 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70466 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70467
70468 /* "rados.pyx":3581
70469 * return completion
70470 *
70471 * @requires(('read_op', ReadOp), ('start_after', str_type), ('filter_prefix', str_type), ('max_return', int)) # <<<<<<<<<<<<<<
70472 * def get_omap_vals(self, read_op, start_after, filter_prefix, max_return):
70473 * """
70474 */
70475 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70475; goto __pyx_L1_error;}
70476 __Pyx_GOTREF(__pyx_t_13);
70477 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70477; goto __pyx_L1_error;}
70478 __Pyx_GOTREF(__pyx_t_14);
70479 __Pyx_INCREF(__pyx_n_s_read_op)( ((PyObject*)(__pyx_n_s_read_op))->ob_refcnt++);
70480 __Pyx_GIVEREF(__pyx_n_s_read_op);
70481 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_read_op)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_read_op
)
;
70482 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_ReadOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_ReadOp)))->
ob_refcnt++)
;
70483 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_ReadOp));
70484 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)__pyx_ptype_5rados_ReadOp))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_ReadOp))
;
70485 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70485; goto __pyx_L1_error;}
70486 __Pyx_GOTREF(__pyx_t_8);
70487 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70487; goto __pyx_L1_error;}
70488 __Pyx_GOTREF(__pyx_t_9);
70489 __Pyx_INCREF(__pyx_n_s_start_after)( ((PyObject*)(__pyx_n_s_start_after))->ob_refcnt++);
70490 __Pyx_GIVEREF(__pyx_n_s_start_after);
70491 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_start_after)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_start_after
)
;
70492 __Pyx_GIVEREF(__pyx_t_8);
70493 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_8);
70494 __pyx_t_8 = 0;
70495 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70495; goto __pyx_L1_error;}
70496 __Pyx_GOTREF(__pyx_t_8);
70497 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70497; goto __pyx_L1_error;}
70498 __Pyx_GOTREF(__pyx_t_1);
70499 __Pyx_INCREF(__pyx_n_s_filter_prefix)( ((PyObject*)(__pyx_n_s_filter_prefix))->ob_refcnt++);
70500 __Pyx_GIVEREF(__pyx_n_s_filter_prefix);
70501 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_filter_prefix)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_filter_prefix
)
;
70502 __Pyx_GIVEREF(__pyx_t_8);
70503 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_8);
70504 __pyx_t_8 = 0;
70505 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70505; goto __pyx_L1_error;}
70506 __Pyx_GOTREF(__pyx_t_8);
70507 __Pyx_INCREF(__pyx_n_s_max_return)( ((PyObject*)(__pyx_n_s_max_return))->ob_refcnt++);
70508 __Pyx_GIVEREF(__pyx_n_s_max_return);
70509 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_max_return)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_max_return
)
;
70510 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
70511 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
70512 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
70513 __pyx_t_16 = NULL((void*)0);
70514 __pyx_t_17 = 0;
70515 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
70516 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
70517 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
70518 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
70519 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
70520 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70521 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70522 __pyx_t_17 = 1;
70523 }
70524 }
70525 __pyx_t_19 = PyTuple_New(4+__pyx_t_17); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70525; goto __pyx_L1_error;}
70526 __Pyx_GOTREF(__pyx_t_19);
70527 if (__pyx_t_16) {
70528 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
70529 }
70530 __Pyx_GIVEREF(__pyx_t_14);
70531 PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+__pyx_t_17] = __pyx_t_14
)
;
70532 __Pyx_GIVEREF(__pyx_t_9);
70533 PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_19))->ob_item[1+__pyx_t_17] = __pyx_t_9
)
;
70534 __Pyx_GIVEREF(__pyx_t_1);
70535 PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_19))->ob_item[2+__pyx_t_17] = __pyx_t_1
)
;
70536 __Pyx_GIVEREF(__pyx_t_8);
70537 PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_19))->ob_item[3+__pyx_t_17] = __pyx_t_8
)
;
70538 __pyx_t_14 = 0;
70539 __pyx_t_9 = 0;
70540 __pyx_t_1 = 0;
70541 __pyx_t_8 = 0;
70542 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70542; goto __pyx_L1_error;}
70543 __Pyx_GOTREF(__pyx_t_5);
70544 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70545 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70546
70547 /* "rados.pyx":3582
70548 *
70549 * @requires(('read_op', ReadOp), ('start_after', str_type), ('filter_prefix', str_type), ('max_return', int))
70550 * def get_omap_vals(self, read_op, start_after, filter_prefix, max_return): # <<<<<<<<<<<<<<
70551 * """
70552 * get the omap values
70553 */
70554 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_get_omap_vals); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3582; __pyx_clineno = __LINE__70554; goto __pyx_L1_error;}
70555 __Pyx_GOTREF(__pyx_t_13);
70556 __pyx_t_19 = NULL((void*)0);
70557 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70558 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70559 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
70560 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70561 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
70562 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70563 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70564 }
70565 }
70566 if (!__pyx_t_19) {
70567 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70567; goto __pyx_L1_error;}
70568 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70569 __Pyx_GOTREF(__pyx_t_7);
70570 } else {
70571 __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70571; goto __pyx_L1_error;}
70572 __Pyx_GOTREF(__pyx_t_8);
70573 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
70574 __Pyx_GIVEREF(__pyx_t_13);
70575 PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+1] = __pyx_t_13
)
;
70576 __pyx_t_13 = 0;
70577 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3581; __pyx_clineno = __LINE__70577; goto __pyx_L1_error;}
70578 __Pyx_GOTREF(__pyx_t_7);
70579 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
70580 }
70581 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70582 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_get_omap_vals, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3582; __pyx_clineno = __LINE__70582; goto __pyx_L1_error;}
70583 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70584 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70585
70586 /* "rados.pyx":3612
70587 * return it, 0 # 0 is meaningless; there for backward-compat
70588 *
70589 * @requires(('read_op', ReadOp), ('start_after', str_type), ('max_return', int)) # <<<<<<<<<<<<<<
70590 * def get_omap_keys(self, read_op, start_after, max_return):
70591 * """
70592 */
70593 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70593; goto __pyx_L1_error;}
70594 __Pyx_GOTREF(__pyx_t_8);
70595 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70595; goto __pyx_L1_error;}
70596 __Pyx_GOTREF(__pyx_t_13);
70597 __Pyx_INCREF(__pyx_n_s_read_op)( ((PyObject*)(__pyx_n_s_read_op))->ob_refcnt++);
70598 __Pyx_GIVEREF(__pyx_n_s_read_op);
70599 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_read_op)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_read_op
)
;
70600 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_ReadOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_ReadOp)))->
ob_refcnt++)
;
70601 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_ReadOp));
70602 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)__pyx_ptype_5rados_ReadOp))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_ReadOp))
;
70603 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70603; goto __pyx_L1_error;}
70604 __Pyx_GOTREF(__pyx_t_19);
70605 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70605; goto __pyx_L1_error;}
70606 __Pyx_GOTREF(__pyx_t_1);
70607 __Pyx_INCREF(__pyx_n_s_start_after)( ((PyObject*)(__pyx_n_s_start_after))->ob_refcnt++);
70608 __Pyx_GIVEREF(__pyx_n_s_start_after);
70609 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_start_after)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_start_after
)
;
70610 __Pyx_GIVEREF(__pyx_t_19);
70611 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_19);
70612 __pyx_t_19 = 0;
70613 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70613; goto __pyx_L1_error;}
70614 __Pyx_GOTREF(__pyx_t_19);
70615 __Pyx_INCREF(__pyx_n_s_max_return)( ((PyObject*)(__pyx_n_s_max_return))->ob_refcnt++);
70616 __Pyx_GIVEREF(__pyx_n_s_max_return);
70617 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_max_return)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_max_return
)
;
70618 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
70619 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
70620 PyTuple_SET_ITEM(__pyx_t_19, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
70621 __pyx_t_9 = NULL((void*)0);
70622 __pyx_t_17 = 0;
70623 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
70624 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
70625 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
70626 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
70627 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
70628 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70629 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70630 __pyx_t_17 = 1;
70631 }
70632 }
70633 __pyx_t_14 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70633; goto __pyx_L1_error;}
70634 __Pyx_GOTREF(__pyx_t_14);
70635 if (__pyx_t_9) {
70636 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
70637 }
70638 __Pyx_GIVEREF(__pyx_t_13);
70639 PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+__pyx_t_17] = __pyx_t_13
)
;
70640 __Pyx_GIVEREF(__pyx_t_1);
70641 PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_14))->ob_item[1+__pyx_t_17] = __pyx_t_1
)
;
70642 __Pyx_GIVEREF(__pyx_t_19);
70643 PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[2+__pyx_t_17] = __pyx_t_19
)
;
70644 __pyx_t_13 = 0;
70645 __pyx_t_1 = 0;
70646 __pyx_t_19 = 0;
70647 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70647; goto __pyx_L1_error;}
70648 __Pyx_GOTREF(__pyx_t_5);
70649 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70650 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
70651
70652 /* "rados.pyx":3613
70653 *
70654 * @requires(('read_op', ReadOp), ('start_after', str_type), ('max_return', int))
70655 * def get_omap_keys(self, read_op, start_after, max_return): # <<<<<<<<<<<<<<
70656 * """
70657 * get the omap keys
70658 */
70659 __pyx_t_8 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_get_omap_keys); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3613; __pyx_clineno = __LINE__70659; goto __pyx_L1_error;}
70660 __Pyx_GOTREF(__pyx_t_8);
70661 __pyx_t_14 = NULL((void*)0);
70662 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70663 __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70664 if (likely(__pyx_t_14)__builtin_expect(!!(__pyx_t_14), 1)) {
70665 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70666 __Pyx_INCREF(__pyx_t_14)( ((PyObject*)(__pyx_t_14))->ob_refcnt++);
70667 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70668 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70669 }
70670 }
70671 if (!__pyx_t_14) {
70672 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70672; goto __pyx_L1_error;}
70673 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
70674 __Pyx_GOTREF(__pyx_t_7);
70675 } else {
70676 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70676; goto __pyx_L1_error;}
70677 __Pyx_GOTREF(__pyx_t_19);
70678 __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_14); __pyx_t_14 = NULL((void*)0);
70679 __Pyx_GIVEREF(__pyx_t_8);
70680 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_8)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_8
)
;
70681 __pyx_t_8 = 0;
70682 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3612; __pyx_clineno = __LINE__70682; goto __pyx_L1_error;}
70683 __Pyx_GOTREF(__pyx_t_7);
70684 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70685 }
70686 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70687 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_get_omap_keys, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3613; __pyx_clineno = __LINE__70687; goto __pyx_L1_error;}
70688 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70689 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70690
70691 /* "rados.pyx":3638
70692 * return it, 0 # 0 is meaningless; there for backward-compat
70693 *
70694 * @requires(('read_op', ReadOp), ('keys', tuple)) # <<<<<<<<<<<<<<
70695 * def get_omap_vals_by_keys(self, read_op, keys):
70696 * """
70697 */
70698 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70698; goto __pyx_L1_error;}
70699 __Pyx_GOTREF(__pyx_t_19);
70700 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70700; goto __pyx_L1_error;}
70701 __Pyx_GOTREF(__pyx_t_8);
70702 __Pyx_INCREF(__pyx_n_s_read_op)( ((PyObject*)(__pyx_n_s_read_op))->ob_refcnt++);
70703 __Pyx_GIVEREF(__pyx_n_s_read_op);
70704 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_read_op)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_read_op
)
;
70705 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_ReadOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_ReadOp)))->
ob_refcnt++)
;
70706 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_ReadOp));
70707 PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_ptype_5rados_ReadOp))(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_ReadOp))
;
70708 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70708; goto __pyx_L1_error;}
70709 __Pyx_GOTREF(__pyx_t_14);
70710 __Pyx_INCREF(__pyx_n_s_keys)( ((PyObject*)(__pyx_n_s_keys))->ob_refcnt++);
70711 __Pyx_GIVEREF(__pyx_n_s_keys);
70712 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_keys)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_keys
)
;
70713 __Pyx_INCREF(((PyObject *)(&PyTuple_Type)))( ((PyObject*)(((PyObject *)(&PyTuple_Type))))->ob_refcnt
++)
;
70714 __Pyx_GIVEREF(((PyObject *)(&PyTuple_Type)));
70715 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyTuple_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyTuple_Type)))
;
70716 __pyx_t_1 = NULL((void*)0);
70717 __pyx_t_17 = 0;
70718 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
70719 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
70720 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
70721 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
70722 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
70723 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70724 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70725 __pyx_t_17 = 1;
70726 }
70727 }
70728 __pyx_t_13 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70728; goto __pyx_L1_error;}
70729 __Pyx_GOTREF(__pyx_t_13);
70730 if (__pyx_t_1) {
70731 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
70732 }
70733 __Pyx_GIVEREF(__pyx_t_8);
70734 PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+__pyx_t_17] = __pyx_t_8
)
;
70735 __Pyx_GIVEREF(__pyx_t_14);
70736 PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[1+__pyx_t_17] = __pyx_t_14
)
;
70737 __pyx_t_8 = 0;
70738 __pyx_t_14 = 0;
70739 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70739; goto __pyx_L1_error;}
70740 __Pyx_GOTREF(__pyx_t_5);
70741 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70742 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70743
70744 /* "rados.pyx":3639
70745 *
70746 * @requires(('read_op', ReadOp), ('keys', tuple))
70747 * def get_omap_vals_by_keys(self, read_op, keys): # <<<<<<<<<<<<<<
70748 * """
70749 * get the omap values by keys
70750 */
70751 __pyx_t_19 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_get_omap_vals_by_keys); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3639; __pyx_clineno = __LINE__70751; goto __pyx_L1_error;}
70752 __Pyx_GOTREF(__pyx_t_19);
70753 __pyx_t_13 = NULL((void*)0);
70754 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70755 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70756 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
70757 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70758 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
70759 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70760 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70761 }
70762 }
70763 if (!__pyx_t_13) {
70764 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70764; goto __pyx_L1_error;}
70765 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70766 __Pyx_GOTREF(__pyx_t_7);
70767 } else {
70768 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70768; goto __pyx_L1_error;}
70769 __Pyx_GOTREF(__pyx_t_14);
70770 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
70771 __Pyx_GIVEREF(__pyx_t_19);
70772 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_19
)
;
70773 __pyx_t_19 = 0;
70774 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3638; __pyx_clineno = __LINE__70774; goto __pyx_L1_error;}
70775 __Pyx_GOTREF(__pyx_t_7);
70776 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70777 }
70778 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70779 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_get_omap_vals_by_keys, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3639; __pyx_clineno = __LINE__70779; goto __pyx_L1_error;}
70780 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70781 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70782
70783 /* "rados.pyx":3666
70784 * free(_keys)
70785 *
70786 * @requires(('write_op', WriteOp), ('keys', tuple)) # <<<<<<<<<<<<<<
70787 * def remove_omap_keys(self, write_op, keys):
70788 * """
70789 */
70790 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70790; goto __pyx_L1_error;}
70791 __Pyx_GOTREF(__pyx_t_14);
70792 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70792; goto __pyx_L1_error;}
70793 __Pyx_GOTREF(__pyx_t_19);
70794 __Pyx_INCREF(__pyx_n_s_write_op)( ((PyObject*)(__pyx_n_s_write_op))->ob_refcnt++);
70795 __Pyx_GIVEREF(__pyx_n_s_write_op);
70796 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_write_op)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_write_op
)
;
70797 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_WriteOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_WriteOp)))->
ob_refcnt++)
;
70798 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_WriteOp));
70799 PyTuple_SET_ITEM(__pyx_t_19, 1, ((PyObject *)__pyx_ptype_5rados_WriteOp))(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_WriteOp))
;
70800 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70800; goto __pyx_L1_error;}
70801 __Pyx_GOTREF(__pyx_t_13);
70802 __Pyx_INCREF(__pyx_n_s_keys)( ((PyObject*)(__pyx_n_s_keys))->ob_refcnt++);
70803 __Pyx_GIVEREF(__pyx_n_s_keys);
70804 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_keys)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_keys
)
;
70805 __Pyx_INCREF(((PyObject *)(&PyTuple_Type)))( ((PyObject*)(((PyObject *)(&PyTuple_Type))))->ob_refcnt
++)
;
70806 __Pyx_GIVEREF(((PyObject *)(&PyTuple_Type)));
70807 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyTuple_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyTuple_Type)))
;
70808 __pyx_t_8 = NULL((void*)0);
70809 __pyx_t_17 = 0;
70810 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
70811 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
70812 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
70813 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
70814 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
70815 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70816 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70817 __pyx_t_17 = 1;
70818 }
70819 }
70820 __pyx_t_1 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70820; goto __pyx_L1_error;}
70821 __Pyx_GOTREF(__pyx_t_1);
70822 if (__pyx_t_8) {
70823 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
70824 }
70825 __Pyx_GIVEREF(__pyx_t_19);
70826 PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+__pyx_t_17] = __pyx_t_19
)
;
70827 __Pyx_GIVEREF(__pyx_t_13);
70828 PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_1))->ob_item[1+__pyx_t_17] = __pyx_t_13
)
;
70829 __pyx_t_19 = 0;
70830 __pyx_t_13 = 0;
70831 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70831; goto __pyx_L1_error;}
70832 __Pyx_GOTREF(__pyx_t_5);
70833 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
70834 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70835
70836 /* "rados.pyx":3667
70837 *
70838 * @requires(('write_op', WriteOp), ('keys', tuple))
70839 * def remove_omap_keys(self, write_op, keys): # <<<<<<<<<<<<<<
70840 * """
70841 * remove omap keys specifiled
70842 */
70843 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_remove_omap_keys); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3667; __pyx_clineno = __LINE__70843; goto __pyx_L1_error;}
70844 __Pyx_GOTREF(__pyx_t_14);
70845 __pyx_t_1 = NULL((void*)0);
70846 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70847 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70848 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
70849 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70850 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
70851 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70852 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70853 }
70854 }
70855 if (!__pyx_t_1) {
70856 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70856; goto __pyx_L1_error;}
70857 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70858 __Pyx_GOTREF(__pyx_t_7);
70859 } else {
70860 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70860; goto __pyx_L1_error;}
70861 __Pyx_GOTREF(__pyx_t_13);
70862 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
70863 __Pyx_GIVEREF(__pyx_t_14);
70864 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
70865 __pyx_t_14 = 0;
70866 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3666; __pyx_clineno = __LINE__70866; goto __pyx_L1_error;}
70867 __Pyx_GOTREF(__pyx_t_7);
70868 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70869 }
70870 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70871 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_remove_omap_keys, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3667; __pyx_clineno = __LINE__70871; goto __pyx_L1_error;}
70872 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70873 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70874
70875 /* "rados.pyx":3688
70876 * free(_keys)
70877 *
70878 * @requires(('write_op', WriteOp)) # <<<<<<<<<<<<<<
70879 * def clear_omap(self, write_op):
70880 * """
70881 */
70882 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70882; goto __pyx_L1_error;}
70883 __Pyx_GOTREF(__pyx_t_13);
70884 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70884; goto __pyx_L1_error;}
70885 __Pyx_GOTREF(__pyx_t_14);
70886 __Pyx_INCREF(__pyx_n_s_write_op)( ((PyObject*)(__pyx_n_s_write_op))->ob_refcnt++);
70887 __Pyx_GIVEREF(__pyx_n_s_write_op);
70888 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_write_op)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_write_op
)
;
70889 __Pyx_INCREF(((PyObject *)__pyx_ptype_5rados_WriteOp))( ((PyObject*)(((PyObject *)__pyx_ptype_5rados_WriteOp)))->
ob_refcnt++)
;
70890 __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5rados_WriteOp));
70891 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)__pyx_ptype_5rados_WriteOp))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)__pyx_ptype_5rados_WriteOp))
;
70892 __pyx_t_1 = NULL((void*)0);
70893 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
70894 __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
70895 if (likely(__pyx_t_1)__builtin_expect(!!(__pyx_t_1), 1)) {
70896 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
70897 __Pyx_INCREF(__pyx_t_1)( ((PyObject*)(__pyx_t_1))->ob_refcnt++);
70898 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70899 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70900 }
70901 }
70902 if (!__pyx_t_1) {
70903 __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70903; goto __pyx_L1_error;}
70904 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70905 __Pyx_GOTREF(__pyx_t_5);
70906 } else {
70907 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70907; goto __pyx_L1_error;}
70908 __Pyx_GOTREF(__pyx_t_19);
70909 __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_1)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_1); __pyx_t_1 = NULL((void*)0);
70910 __Pyx_GIVEREF(__pyx_t_14);
70911 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_14
)
;
70912 __pyx_t_14 = 0;
70913 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70913; goto __pyx_L1_error;}
70914 __Pyx_GOTREF(__pyx_t_5);
70915 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
70916 }
70917 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70918
70919 /* "rados.pyx":3689
70920 *
70921 * @requires(('write_op', WriteOp))
70922 * def clear_omap(self, write_op): # <<<<<<<<<<<<<<
70923 * """
70924 * Remove all key/value pairs from an object
70925 */
70926 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_clear_omap); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3689; __pyx_clineno = __LINE__70926; goto __pyx_L1_error;}
70927 __Pyx_GOTREF(__pyx_t_13);
70928 __pyx_t_19 = NULL((void*)0);
70929 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
70930 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
70931 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
70932 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
70933 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
70934 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
70935 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
70936 }
70937 }
70938 if (!__pyx_t_19) {
70939 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70939; goto __pyx_L1_error;}
70940 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
70941 __Pyx_GOTREF(__pyx_t_7);
70942 } else {
70943 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70943; goto __pyx_L1_error;}
70944 __Pyx_GOTREF(__pyx_t_14);
70945 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
70946 __Pyx_GIVEREF(__pyx_t_13);
70947 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_13
)
;
70948 __pyx_t_13 = 0;
70949 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3688; __pyx_clineno = __LINE__70949; goto __pyx_L1_error;}
70950 __Pyx_GOTREF(__pyx_t_7);
70951 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
70952 }
70953 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
70954 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_clear_omap, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3689; __pyx_clineno = __LINE__70954; goto __pyx_L1_error;}
70955 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
70956 PyType_Modified(__pyx_ptype_5rados_Ioctx);
70957
70958 /* "rados.pyx":3702
70959 * rados_write_op_omap_clear(_write_op.write_op)
70960 *
70961 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('desc', str_type), # <<<<<<<<<<<<<<
70962 * ('duration', opt(int)), ('flags', int))
70963 * def lock_exclusive(self, key, name, cookie, desc="", duration=None, flags=0):
70964 */
70965 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70965; goto __pyx_L1_error;}
70966 __Pyx_GOTREF(__pyx_t_14);
70967 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70967; goto __pyx_L1_error;}
70968 __Pyx_GOTREF(__pyx_t_13);
70969 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70969; goto __pyx_L1_error;}
70970 __Pyx_GOTREF(__pyx_t_19);
70971 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
70972 __Pyx_GIVEREF(__pyx_n_s_key);
70973 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_key
)
;
70974 __Pyx_GIVEREF(__pyx_t_13);
70975 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_13);
70976 __pyx_t_13 = 0;
70977 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70977; goto __pyx_L1_error;}
70978 __Pyx_GOTREF(__pyx_t_13);
70979 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70979; goto __pyx_L1_error;}
70980 __Pyx_GOTREF(__pyx_t_1);
70981 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
70982 __Pyx_GIVEREF(__pyx_n_s_name_2);
70983 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_name_2
)
;
70984 __Pyx_GIVEREF(__pyx_t_13);
70985 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_13);
70986 __pyx_t_13 = 0;
70987 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70987; goto __pyx_L1_error;}
70988 __Pyx_GOTREF(__pyx_t_13);
70989 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70989; goto __pyx_L1_error;}
70990 __Pyx_GOTREF(__pyx_t_8);
70991 __Pyx_INCREF(__pyx_n_s_cookie)( ((PyObject*)(__pyx_n_s_cookie))->ob_refcnt++);
70992 __Pyx_GIVEREF(__pyx_n_s_cookie);
70993 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_cookie)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_cookie
)
;
70994 __Pyx_GIVEREF(__pyx_t_13);
70995 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_13);
70996 __pyx_t_13 = 0;
70997 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70997; goto __pyx_L1_error;}
70998 __Pyx_GOTREF(__pyx_t_13);
70999 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__70999; goto __pyx_L1_error;}
71000 __Pyx_GOTREF(__pyx_t_9);
71001 __Pyx_INCREF(__pyx_n_s_desc)( ((PyObject*)(__pyx_n_s_desc))->ob_refcnt++);
71002 __Pyx_GIVEREF(__pyx_n_s_desc);
71003 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_desc)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_desc
)
;
71004 __Pyx_GIVEREF(__pyx_t_13);
71005 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_13);
71006 __pyx_t_13 = 0;
71007
71008 /* "rados.pyx":3703
71009 *
71010 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('desc', str_type),
71011 * ('duration', opt(int)), ('flags', int)) # <<<<<<<<<<<<<<
71012 * def lock_exclusive(self, key, name, cookie, desc="", duration=None, flags=0):
71013 *
71014 */
71015 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3703; __pyx_clineno = __LINE__71015; goto __pyx_L1_error;}
71016 __Pyx_GOTREF(__pyx_t_16);
71017 __pyx_t_15 = NULL((void*)0);
71018 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_16))__builtin_expect(!!(((__pyx_t_16)->ob_type == &PyMethod_Type
)), 0)
) {
71019 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_self);
71020 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
71021 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_func);
71022 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
71023 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71024 __Pyx_DECREF_SET(__pyx_t_16, function)do { PyObject *tmp = (PyObject *) __pyx_t_16; __pyx_t_16 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71025 }
71026 }
71027 if (!__pyx_t_15) {
71028 __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_16, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3703; __pyx_clineno = __LINE__71028; goto __pyx_L1_error;}
71029 __Pyx_GOTREF(__pyx_t_13);
71030 } else {
71031 __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3703; __pyx_clineno = __LINE__71031; goto __pyx_L1_error;}
71032 __Pyx_GOTREF(__pyx_t_12);
71033 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
71034 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
71035 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
71036 PyTuple_SET_ITEM(__pyx_t_12, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_12))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
71037 __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3703; __pyx_clineno = __LINE__71037; goto __pyx_L1_error;}
71038 __Pyx_GOTREF(__pyx_t_13);
71039 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
71040 }
71041 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
71042 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3703; __pyx_clineno = __LINE__71042; goto __pyx_L1_error;}
71043 __Pyx_GOTREF(__pyx_t_16);
71044 __Pyx_INCREF(__pyx_n_s_duration)( ((PyObject*)(__pyx_n_s_duration))->ob_refcnt++);
71045 __Pyx_GIVEREF(__pyx_n_s_duration);
71046 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_duration)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_duration
)
;
71047 __Pyx_GIVEREF(__pyx_t_13);
71048 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_13);
71049 __pyx_t_13 = 0;
71050 __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3703; __pyx_clineno = __LINE__71050; goto __pyx_L1_error;}
71051 __Pyx_GOTREF(__pyx_t_13);
71052 __Pyx_INCREF(__pyx_n_s_flags)( ((PyObject*)(__pyx_n_s_flags))->ob_refcnt++);
71053 __Pyx_GIVEREF(__pyx_n_s_flags);
71054 PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_n_s_flags)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_n_s_flags
)
;
71055 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
71056 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
71057 PyTuple_SET_ITEM(__pyx_t_13, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_13))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
71058 __pyx_t_12 = NULL((void*)0);
71059 __pyx_t_17 = 0;
71060 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
71061 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
71062 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
71063 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
71064 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
71065 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71066 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71067 __pyx_t_17 = 1;
71068 }
71069 }
71070 __pyx_t_15 = PyTuple_New(6+__pyx_t_17); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__71070; goto __pyx_L1_error;}
71071 __Pyx_GOTREF(__pyx_t_15);
71072 if (__pyx_t_12) {
71073 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
71074 }
71075 __Pyx_GIVEREF(__pyx_t_19);
71076 PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_15))->ob_item[0+__pyx_t_17] = __pyx_t_19
)
;
71077 __Pyx_GIVEREF(__pyx_t_1);
71078 PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_15))->ob_item[1+__pyx_t_17] = __pyx_t_1
)
;
71079 __Pyx_GIVEREF(__pyx_t_8);
71080 PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_15))->ob_item[2+__pyx_t_17] = __pyx_t_8
)
;
71081 __Pyx_GIVEREF(__pyx_t_9);
71082 PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_15))->ob_item[3+__pyx_t_17] = __pyx_t_9
)
;
71083 __Pyx_GIVEREF(__pyx_t_16);
71084 PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_17, __pyx_t_16)(((PyTupleObject *)(__pyx_t_15))->ob_item[4+__pyx_t_17] = __pyx_t_16
)
;
71085 __Pyx_GIVEREF(__pyx_t_13);
71086 PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_17, __pyx_t_13)(((PyTupleObject *)(__pyx_t_15))->ob_item[5+__pyx_t_17] = __pyx_t_13
)
;
71087 __pyx_t_19 = 0;
71088 __pyx_t_1 = 0;
71089 __pyx_t_8 = 0;
71090 __pyx_t_9 = 0;
71091 __pyx_t_16 = 0;
71092 __pyx_t_13 = 0;
71093 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_15, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__71093; goto __pyx_L1_error;}
71094 __Pyx_GOTREF(__pyx_t_5);
71095 __Pyx_DECREF(__pyx_t_15)do { if ( --((PyObject*)(__pyx_t_15))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_15)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_15)))); } while
(0)
; __pyx_t_15 = 0;
71096 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71097
71098 /* "rados.pyx":3704
71099 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('desc', str_type),
71100 * ('duration', opt(int)), ('flags', int))
71101 * def lock_exclusive(self, key, name, cookie, desc="", duration=None, flags=0): # <<<<<<<<<<<<<<
71102 *
71103 * """
71104 */
71105 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_lock_exclusive); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3704; __pyx_clineno = __LINE__71105; goto __pyx_L1_error;}
71106 __Pyx_GOTREF(__pyx_t_14);
71107 __pyx_t_15 = NULL((void*)0);
71108 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
71109 __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
71110 if (likely(__pyx_t_15)__builtin_expect(!!(__pyx_t_15), 1)) {
71111 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
71112 __Pyx_INCREF(__pyx_t_15)( ((PyObject*)(__pyx_t_15))->ob_refcnt++);
71113 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71114 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71115 }
71116 }
71117 if (!__pyx_t_15) {
71118 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__71118; goto __pyx_L1_error;}
71119 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71120 __Pyx_GOTREF(__pyx_t_7);
71121 } else {
71122 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__71122; goto __pyx_L1_error;}
71123 __Pyx_GOTREF(__pyx_t_13);
71124 __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_15); __pyx_t_15 = NULL((void*)0);
71125 __Pyx_GIVEREF(__pyx_t_14);
71126 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_14
)
;
71127 __pyx_t_14 = 0;
71128 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3702; __pyx_clineno = __LINE__71128; goto __pyx_L1_error;}
71129 __Pyx_GOTREF(__pyx_t_7);
71130 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71131 }
71132 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
71133 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_lock_exclusive, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3704; __pyx_clineno = __LINE__71133; goto __pyx_L1_error;}
71134 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
71135 PyType_Modified(__pyx_ptype_5rados_Ioctx);
71136
71137 /* "rados.pyx":3753
71138 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
71139 *
71140 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('tag', str_type), # <<<<<<<<<<<<<<
71141 * ('desc', str_type), ('duration', opt(int)), ('flags', int))
71142 * def lock_shared(self, key, name, cookie, tag, desc="", duration=None, flags=0):
71143 */
71144 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71144; goto __pyx_L1_error;}
71145 __Pyx_GOTREF(__pyx_t_13);
71146 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71146; goto __pyx_L1_error;}
71147 __Pyx_GOTREF(__pyx_t_14);
71148 __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)__builtin_expect(!!(!__pyx_t_15), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71148; goto __pyx_L1_error;}
71149 __Pyx_GOTREF(__pyx_t_15);
71150 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
71151 __Pyx_GIVEREF(__pyx_n_s_key);
71152 PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_15))->ob_item[0] = __pyx_n_s_key
)
;
71153 __Pyx_GIVEREF(__pyx_t_14);
71154 PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_15))->ob_item[1] = __pyx_t_14);
71155 __pyx_t_14 = 0;
71156 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71156; goto __pyx_L1_error;}
71157 __Pyx_GOTREF(__pyx_t_14);
71158 __pyx_t_16 = PyTuple_New(2); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71158; goto __pyx_L1_error;}
71159 __Pyx_GOTREF(__pyx_t_16);
71160 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
71161 __Pyx_GIVEREF(__pyx_n_s_name_2);
71162 PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_n_s_name_2
)
;
71163 __Pyx_GIVEREF(__pyx_t_14);
71164 PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_16))->ob_item[1] = __pyx_t_14);
71165 __pyx_t_14 = 0;
71166 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71166; goto __pyx_L1_error;}
71167 __Pyx_GOTREF(__pyx_t_14);
71168 __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71168; goto __pyx_L1_error;}
71169 __Pyx_GOTREF(__pyx_t_9);
71170 __Pyx_INCREF(__pyx_n_s_cookie)( ((PyObject*)(__pyx_n_s_cookie))->ob_refcnt++);
71171 __Pyx_GIVEREF(__pyx_n_s_cookie);
71172 PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_n_s_cookie)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_n_s_cookie
)
;
71173 __Pyx_GIVEREF(__pyx_t_14);
71174 PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_9))->ob_item[1] = __pyx_t_14);
71175 __pyx_t_14 = 0;
71176 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71176; goto __pyx_L1_error;}
71177 __Pyx_GOTREF(__pyx_t_14);
71178 __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71178; goto __pyx_L1_error;}
71179 __Pyx_GOTREF(__pyx_t_8);
71180 __Pyx_INCREF(__pyx_n_s_tag)( ((PyObject*)(__pyx_n_s_tag))->ob_refcnt++);
71181 __Pyx_GIVEREF(__pyx_n_s_tag);
71182 PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_tag)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_n_s_tag
)
;
71183 __Pyx_GIVEREF(__pyx_t_14);
71184 PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_8))->ob_item[1] = __pyx_t_14);
71185 __pyx_t_14 = 0;
71186
71187 /* "rados.pyx":3754
71188 *
71189 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('tag', str_type),
71190 * ('desc', str_type), ('duration', opt(int)), ('flags', int)) # <<<<<<<<<<<<<<
71191 * def lock_shared(self, key, name, cookie, tag, desc="", duration=None, flags=0):
71192 *
71193 */
71194 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71194; goto __pyx_L1_error;}
71195 __Pyx_GOTREF(__pyx_t_14);
71196 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71196; goto __pyx_L1_error;}
71197 __Pyx_GOTREF(__pyx_t_1);
71198 __Pyx_INCREF(__pyx_n_s_desc)( ((PyObject*)(__pyx_n_s_desc))->ob_refcnt++);
71199 __Pyx_GIVEREF(__pyx_n_s_desc);
71200 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_desc)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_desc
)
;
71201 __Pyx_GIVEREF(__pyx_t_14);
71202 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_14);
71203 __pyx_t_14 = 0;
71204 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_opt); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71204; goto __pyx_L1_error;}
71205 __Pyx_GOTREF(__pyx_t_19);
71206 __pyx_t_12 = NULL((void*)0);
71207 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
71208 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
71209 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
71210 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
71211 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
71212 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71213 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71214 }
71215 }
71216 if (!__pyx_t_12) {
71217 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_19, ((PyObject *)(&PyInt_Type))); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71217; goto __pyx_L1_error;}
71218 __Pyx_GOTREF(__pyx_t_14);
71219 } else {
71220 __pyx_t_20 = PyTuple_New(1+1); if (unlikely(!__pyx_t_20)__builtin_expect(!!(!__pyx_t_20), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71220; goto __pyx_L1_error;}
71221 __Pyx_GOTREF(__pyx_t_20);
71222 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_20))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
71223 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
71224 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
71225 PyTuple_SET_ITEM(__pyx_t_20, 0+1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_20))->ob_item[0+1] = ((PyObject
*)(&PyInt_Type)))
;
71226 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_20, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71226; goto __pyx_L1_error;}
71227 __Pyx_GOTREF(__pyx_t_14);
71228 __Pyx_DECREF(__pyx_t_20)do { if ( --((PyObject*)(__pyx_t_20))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_20)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_20)))); } while
(0)
; __pyx_t_20 = 0;
71229 }
71230 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
71231 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71231; goto __pyx_L1_error;}
71232 __Pyx_GOTREF(__pyx_t_19);
71233 __Pyx_INCREF(__pyx_n_s_duration)( ((PyObject*)(__pyx_n_s_duration))->ob_refcnt++);
71234 __Pyx_GIVEREF(__pyx_n_s_duration);
71235 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_duration)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_duration
)
;
71236 __Pyx_GIVEREF(__pyx_t_14);
71237 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_14);
71238 __pyx_t_14 = 0;
71239 __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3754; __pyx_clineno = __LINE__71239; goto __pyx_L1_error;}
71240 __Pyx_GOTREF(__pyx_t_14);
71241 __Pyx_INCREF(__pyx_n_s_flags)( ((PyObject*)(__pyx_n_s_flags))->ob_refcnt++);
71242 __Pyx_GIVEREF(__pyx_n_s_flags);
71243 PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_n_s_flags)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_n_s_flags
)
;
71244 __Pyx_INCREF(((PyObject *)(&PyInt_Type)))( ((PyObject*)(((PyObject *)(&PyInt_Type))))->ob_refcnt
++)
;
71245 __Pyx_GIVEREF(((PyObject *)(&PyInt_Type)));
71246 PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)(&PyInt_Type)))(((PyTupleObject *)(__pyx_t_14))->ob_item[1] = ((PyObject *
)(&PyInt_Type)))
;
71247 __pyx_t_20 = NULL((void*)0);
71248 __pyx_t_17 = 0;
71249 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
71250 __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
71251 if (likely(__pyx_t_20)__builtin_expect(!!(__pyx_t_20), 1)) {
71252 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
71253 __Pyx_INCREF(__pyx_t_20)( ((PyObject*)(__pyx_t_20))->ob_refcnt++);
71254 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71255 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71256 __pyx_t_17 = 1;
71257 }
71258 }
71259 __pyx_t_12 = PyTuple_New(7+__pyx_t_17); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71259; goto __pyx_L1_error;}
71260 __Pyx_GOTREF(__pyx_t_12);
71261 if (__pyx_t_20) {
71262 __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_20)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_20); __pyx_t_20 = NULL((void*)0);
71263 }
71264 __Pyx_GIVEREF(__pyx_t_15);
71265 PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_17, __pyx_t_15)(((PyTupleObject *)(__pyx_t_12))->ob_item[0+__pyx_t_17] = __pyx_t_15
)
;
71266 __Pyx_GIVEREF(__pyx_t_16);
71267 PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_17, __pyx_t_16)(((PyTupleObject *)(__pyx_t_12))->ob_item[1+__pyx_t_17] = __pyx_t_16
)
;
71268 __Pyx_GIVEREF(__pyx_t_9);
71269 PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_17, __pyx_t_9)(((PyTupleObject *)(__pyx_t_12))->ob_item[2+__pyx_t_17] = __pyx_t_9
)
;
71270 __Pyx_GIVEREF(__pyx_t_8);
71271 PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_17, __pyx_t_8)(((PyTupleObject *)(__pyx_t_12))->ob_item[3+__pyx_t_17] = __pyx_t_8
)
;
71272 __Pyx_GIVEREF(__pyx_t_1);
71273 PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_12))->ob_item[4+__pyx_t_17] = __pyx_t_1
)
;
71274 __Pyx_GIVEREF(__pyx_t_19);
71275 PyTuple_SET_ITEM(__pyx_t_12, 5+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_12))->ob_item[5+__pyx_t_17] = __pyx_t_19
)
;
71276 __Pyx_GIVEREF(__pyx_t_14);
71277 PyTuple_SET_ITEM(__pyx_t_12, 6+__pyx_t_17, __pyx_t_14)(((PyTupleObject *)(__pyx_t_12))->ob_item[6+__pyx_t_17] = __pyx_t_14
)
;
71278 __pyx_t_15 = 0;
71279 __pyx_t_16 = 0;
71280 __pyx_t_9 = 0;
71281 __pyx_t_8 = 0;
71282 __pyx_t_1 = 0;
71283 __pyx_t_19 = 0;
71284 __pyx_t_14 = 0;
71285 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71285; goto __pyx_L1_error;}
71286 __Pyx_GOTREF(__pyx_t_5);
71287 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
71288 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71289
71290 /* "rados.pyx":3755
71291 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type), ('tag', str_type),
71292 * ('desc', str_type), ('duration', opt(int)), ('flags', int))
71293 * def lock_shared(self, key, name, cookie, tag, desc="", duration=None, flags=0): # <<<<<<<<<<<<<<
71294 *
71295 * """
71296 */
71297 __pyx_t_13 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_lock_shared); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3755; __pyx_clineno = __LINE__71297; goto __pyx_L1_error;}
71298 __Pyx_GOTREF(__pyx_t_13);
71299 __pyx_t_12 = NULL((void*)0);
71300 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
71301 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
71302 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
71303 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
71304 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
71305 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71306 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71307 }
71308 }
71309 if (!__pyx_t_12) {
71310 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71310; goto __pyx_L1_error;}
71311 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71312 __Pyx_GOTREF(__pyx_t_7);
71313 } else {
71314 __pyx_t_14 = PyTuple_New(1+1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71314; goto __pyx_L1_error;}
71315 __Pyx_GOTREF(__pyx_t_14);
71316 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_14))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
71317 __Pyx_GIVEREF(__pyx_t_13);
71318 PyTuple_SET_ITEM(__pyx_t_14, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_14))->ob_item[0+1] = __pyx_t_13
)
;
71319 __pyx_t_13 = 0;
71320 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3753; __pyx_clineno = __LINE__71320; goto __pyx_L1_error;}
71321 __Pyx_GOTREF(__pyx_t_7);
71322 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71323 }
71324 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
71325 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_lock_shared, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3755; __pyx_clineno = __LINE__71325; goto __pyx_L1_error;}
71326 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
71327 PyType_Modified(__pyx_ptype_5rados_Ioctx);
71328
71329 /* "rados.pyx":3807
71330 * raise make_ex(ret, "Ioctx.rados_lock_exclusive(%s): failed to set lock %s on %s" % (self.name, name, key))
71331 *
71332 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type)) # <<<<<<<<<<<<<<
71333 * def unlock(self, key, name, cookie):
71334 *
71335 */
71336 __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_requires); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71336; goto __pyx_L1_error;}
71337 __Pyx_GOTREF(__pyx_t_14);
71338 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71338; goto __pyx_L1_error;}
71339 __Pyx_GOTREF(__pyx_t_13);
71340 __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71340; goto __pyx_L1_error;}
71341 __Pyx_GOTREF(__pyx_t_12);
71342 __Pyx_INCREF(__pyx_n_s_key)( ((PyObject*)(__pyx_n_s_key))->ob_refcnt++);
71343 __Pyx_GIVEREF(__pyx_n_s_key);
71344 PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_n_s_key)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_n_s_key
)
;
71345 __Pyx_GIVEREF(__pyx_t_13);
71346 PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_12))->ob_item[1] = __pyx_t_13);
71347 __pyx_t_13 = 0;
71348 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71348; goto __pyx_L1_error;}
71349 __Pyx_GOTREF(__pyx_t_13);
71350 __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71350; goto __pyx_L1_error;}
71351 __Pyx_GOTREF(__pyx_t_19);
71352 __Pyx_INCREF(__pyx_n_s_name_2)( ((PyObject*)(__pyx_n_s_name_2))->ob_refcnt++);
71353 __Pyx_GIVEREF(__pyx_n_s_name_2);
71354 PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_n_s_name_2)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_n_s_name_2
)
;
71355 __Pyx_GIVEREF(__pyx_t_13);
71356 PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_19))->ob_item[1] = __pyx_t_13);
71357 __pyx_t_13 = 0;
71358 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_type); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71358; goto __pyx_L1_error;}
71359 __Pyx_GOTREF(__pyx_t_13);
71360 __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71360; goto __pyx_L1_error;}
71361 __Pyx_GOTREF(__pyx_t_1);
71362 __Pyx_INCREF(__pyx_n_s_cookie)( ((PyObject*)(__pyx_n_s_cookie))->ob_refcnt++);
71363 __Pyx_GIVEREF(__pyx_n_s_cookie);
71364 PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_cookie)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_n_s_cookie
)
;
71365 __Pyx_GIVEREF(__pyx_t_13);
71366 PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_1))->ob_item[1] = __pyx_t_13);
71367 __pyx_t_13 = 0;
71368 __pyx_t_13 = NULL((void*)0);
71369 __pyx_t_17 = 0;
71370 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_14))__builtin_expect(!!(((__pyx_t_14)->ob_type == &PyMethod_Type
)), 0)
) {
71371 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_self);
71372 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
71373 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14)(((PyMethodObject *)__pyx_t_14) -> im_func);
71374 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
71375 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71376 __Pyx_DECREF_SET(__pyx_t_14, function)do { PyObject *tmp = (PyObject *) __pyx_t_14; __pyx_t_14 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71377 __pyx_t_17 = 1;
71378 }
71379 }
71380 __pyx_t_8 = PyTuple_New(3+__pyx_t_17); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71380; goto __pyx_L1_error;}
71381 __Pyx_GOTREF(__pyx_t_8);
71382 if (__pyx_t_13) {
71383 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_8))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
71384 }
71385 __Pyx_GIVEREF(__pyx_t_12);
71386 PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_17, __pyx_t_12)(((PyTupleObject *)(__pyx_t_8))->ob_item[0+__pyx_t_17] = __pyx_t_12
)
;
71387 __Pyx_GIVEREF(__pyx_t_19);
71388 PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_17, __pyx_t_19)(((PyTupleObject *)(__pyx_t_8))->ob_item[1+__pyx_t_17] = __pyx_t_19
)
;
71389 __Pyx_GIVEREF(__pyx_t_1);
71390 PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_17, __pyx_t_1)(((PyTupleObject *)(__pyx_t_8))->ob_item[2+__pyx_t_17] = __pyx_t_1
)
;
71391 __pyx_t_12 = 0;
71392 __pyx_t_19 = 0;
71393 __pyx_t_1 = 0;
71394 __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_8, NULL((void*)0)); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71394; goto __pyx_L1_error;}
71395 __Pyx_GOTREF(__pyx_t_5);
71396 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
71397 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71398
71399 /* "rados.pyx":3808
71400 *
71401 * @requires(('key', str_type), ('name', str_type), ('cookie', str_type))
71402 * def unlock(self, key, name, cookie): # <<<<<<<<<<<<<<
71403 *
71404 * """
71405 */
71406 __pyx_t_14 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_5rados_Ioctx, __pyx_n_s_unlock); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3808; __pyx_clineno = __LINE__71406; goto __pyx_L1_error;}
71407 __Pyx_GOTREF(__pyx_t_14);
71408 __pyx_t_8 = NULL((void*)0);
71409 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_5))__builtin_expect(!!(((__pyx_t_5)->ob_type == &PyMethod_Type
)), 0)
) {
71410 __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_self);
71411 if (likely(__pyx_t_8)__builtin_expect(!!(__pyx_t_8), 1)) {
71412 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5)(((PyMethodObject *)__pyx_t_5) -> im_func);
71413 __Pyx_INCREF(__pyx_t_8)( ((PyObject*)(__pyx_t_8))->ob_refcnt++);
71414 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71415 __Pyx_DECREF_SET(__pyx_t_5, function)do { PyObject *tmp = (PyObject *) __pyx_t_5; __pyx_t_5 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71416 }
71417 }
71418 if (!__pyx_t_8) {
71419 __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71419; goto __pyx_L1_error;}
71420 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71421 __Pyx_GOTREF(__pyx_t_7);
71422 } else {
71423 __pyx_t_1 = PyTuple_New(1+1); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71423; goto __pyx_L1_error;}
71424 __Pyx_GOTREF(__pyx_t_1);
71425 __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8)(((PyTupleObject *)(__pyx_t_1))->ob_item[0] = __pyx_t_8); __pyx_t_8 = NULL((void*)0);
71426 __Pyx_GIVEREF(__pyx_t_14);
71427 PyTuple_SET_ITEM(__pyx_t_1, 0+1, __pyx_t_14)(((PyTupleObject *)(__pyx_t_1))->ob_item[0+1] = __pyx_t_14
)
;
71428 __pyx_t_14 = 0;
71429 __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL((void*)0)); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3807; __pyx_clineno = __LINE__71429; goto __pyx_L1_error;}
71430 __Pyx_GOTREF(__pyx_t_7);
71431 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
71432 }
71433 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
71434 if (PyDict_SetItem((PyObject *)__pyx_ptype_5rados_Ioctx->tp_dict, __pyx_n_s_unlock, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3808; __pyx_clineno = __LINE__71434; goto __pyx_L1_error;}
71435 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
71436 PyType_Modified(__pyx_ptype_5rados_Ioctx);
71437
71438 /* "rados.pyx":4015
71439 *
71440 *
71441 * def set_object_locator(func): # <<<<<<<<<<<<<<
71442 * def retfunc(self, *args, **kwargs):
71443 * if self.locator_key is not None:
71444 */
71445 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_13set_object_locator, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4015; __pyx_clineno = __LINE__71445; goto __pyx_L1_error;}
71446 __Pyx_GOTREF(__pyx_t_7);
71447 if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_object_locator, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4015; __pyx_clineno = __LINE__71447; goto __pyx_L1_error;}
71448 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
71449
71450 /* "rados.pyx":4028
71451 *
71452 *
71453 * def set_object_namespace(func): # <<<<<<<<<<<<<<
71454 * def retfunc(self, *args, **kwargs):
71455 * if self.nspace is None:
71456 */
71457 __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_5rados_15set_object_namespace, NULL((void*)0), __pyx_n_s_rados); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4028; __pyx_clineno = __LINE__71457; goto __pyx_L1_error;}
71458 __Pyx_GOTREF(__pyx_t_7);
71459 if (PyDict_SetItem(__pyx_d, __pyx_n_s_set_object_namespace, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4028; __pyx_clineno = __LINE__71459; goto __pyx_L1_error;}
71460 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
71461
71462 /* "rados.pyx":4040
71463 *
71464 *
71465 * class Object(object): # <<<<<<<<<<<<<<
71466 * """Rados object wrapper, makes the object look like a file"""
71467 * def __init__(self, ioctx, key, locator_key=None, nspace=None):
71468 */
71469 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4040; __pyx_clineno = __LINE__71469; goto __pyx_L1_error;}
71470 __Pyx_GOTREF(__pyx_t_7);
71471 __Pyx_INCREF(__pyx_builtin_object)( ((PyObject*)(__pyx_builtin_object))->ob_refcnt++);
71472 __Pyx_GIVEREF(__pyx_builtin_object);
71473 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_builtin_object
)
;
71474 __pyx_t_5 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4040; __pyx_clineno = __LINE__71474; goto __pyx_L1_error;}
71475 __Pyx_GOTREF(__pyx_t_5);
71476 __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_7, __pyx_n_s_Object, __pyx_n_s_Object, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_Rados_object_wrapper_makes_the_o); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4040; __pyx_clineno = __LINE__71476; goto __pyx_L1_error;}
71477 __Pyx_GOTREF(__pyx_t_1);
71478
71479 /* "rados.pyx":4042
71480 * class Object(object):
71481 * """Rados object wrapper, makes the object look like a file"""
71482 * def __init__(self, ioctx, key, locator_key=None, nspace=None): # <<<<<<<<<<<<<<
71483 * self.key = key
71484 * self.ioctx = ioctx
71485 */
71486 __pyx_t_14 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_1__init__, 0, __pyx_n_s_Object___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__157))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_1__init__
, 0, __pyx_n_s_Object___init, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__157))
; if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__71486; goto __pyx_L1_error;}
71487 __Pyx_GOTREF(__pyx_t_14);
71488 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_tuple__158);
71489 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_init, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4042; __pyx_clineno = __LINE__71489; goto __pyx_L1_error;}
71490 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71491
71492 /* "rados.pyx":4050
71493 * self.nspace = "" if nspace is None else nspace
71494 *
71495 * def __str__(self): # <<<<<<<<<<<<<<
71496 * return "rados.Object(ioctx=%s,key=%s,nspace=%s,locator=%s)" % \
71497 * (str(self.ioctx), self.key, "--default--"
71498 */
71499 __pyx_t_14 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_3__str__, 0, __pyx_n_s_Object___str, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__160))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_3__str__
, 0, __pyx_n_s_Object___str, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__160))
; if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4050; __pyx_clineno = __LINE__71499; goto __pyx_L1_error;}
71500 __Pyx_GOTREF(__pyx_t_14);
71501 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_str, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4050; __pyx_clineno = __LINE__71501; goto __pyx_L1_error;}
71502 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71503
71504 /* "rados.pyx":4055
71505 * if self.nspace is "" else self.nspace, self.locator_key)
71506 *
71507 * def require_object_exists(self): # <<<<<<<<<<<<<<
71508 * if self.state != "exists":
71509 * raise ObjectStateError("The object is %s" % self.state)
71510 */
71511 __pyx_t_14 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_5require_object_exists, 0, __pyx_n_s_Object_require_object_exists, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__162))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_5require_object_exists
, 0, __pyx_n_s_Object_require_object_exists, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__162))
; if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4055; __pyx_clineno = __LINE__71511; goto __pyx_L1_error;}
71512 __Pyx_GOTREF(__pyx_t_14);
71513 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_require_object_exists, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4055; __pyx_clineno = __LINE__71513; goto __pyx_L1_error;}
71514 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71515
71516 /* "rados.pyx":4059
71517 * raise ObjectStateError("The object is %s" % self.state)
71518 *
71519 * @set_object_locator # <<<<<<<<<<<<<<
71520 * @set_object_namespace
71521 * def read(self, length=1024 * 1024):
71522 */
71523 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4059; __pyx_clineno = __LINE__71523; goto __pyx_L1_error;}
71524 __Pyx_GOTREF(__pyx_t_8);
71525
71526 /* "rados.pyx":4060
71527 *
71528 * @set_object_locator
71529 * @set_object_namespace # <<<<<<<<<<<<<<
71530 * def read(self, length=1024 * 1024):
71531 * self.require_object_exists()
71532 */
71533 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4060; __pyx_clineno = __LINE__71533; goto __pyx_L1_error;}
71534 __Pyx_GOTREF(__pyx_t_12);
71535
71536 /* "rados.pyx":4061
71537 * @set_object_locator
71538 * @set_object_namespace
71539 * def read(self, length=1024 * 1024): # <<<<<<<<<<<<<<
71540 * self.require_object_exists()
71541 * ret = self.ioctx.read(self.key, length, self.offset)
71542 */
71543 __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_7read, 0, __pyx_n_s_Object_read, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__164))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_7read
, 0, __pyx_n_s_Object_read, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__164))
; if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4061; __pyx_clineno = __LINE__71543; goto __pyx_L1_error;}
71544 __Pyx_GOTREF(__pyx_t_13);
71545 __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__165);
71546 __pyx_t_9 = NULL((void*)0);
71547 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_12))__builtin_expect(!!(((__pyx_t_12)->ob_type == &PyMethod_Type
)), 0)
) {
71548 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_self);
71549 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
71550 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_func);
71551 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
71552 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71553 __Pyx_DECREF_SET(__pyx_t_12, function)do { PyObject *tmp = (PyObject *) __pyx_t_12; __pyx_t_12 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71554 }
71555 }
71556 if (!__pyx_t_9) {
71557 __pyx_t_19 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4060; __pyx_clineno = __LINE__71557; goto __pyx_L1_error;}
71558 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71559 __Pyx_GOTREF(__pyx_t_19);
71560 } else {
71561 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4060; __pyx_clineno = __LINE__71561; goto __pyx_L1_error;}
71562 __Pyx_GOTREF(__pyx_t_16);
71563 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
71564 __Pyx_GIVEREF(__pyx_t_13);
71565 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_13
)
;
71566 __pyx_t_13 = 0;
71567 __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4060; __pyx_clineno = __LINE__71567; goto __pyx_L1_error;}
71568 __Pyx_GOTREF(__pyx_t_19);
71569 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
71570 }
71571 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
71572 __pyx_t_12 = NULL((void*)0);
71573 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
71574 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
71575 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
71576 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
71577 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
71578 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71579 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71580 }
71581 }
71582 if (!__pyx_t_12) {
71583 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_19); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4059; __pyx_clineno = __LINE__71583; goto __pyx_L1_error;}
71584 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
71585 __Pyx_GOTREF(__pyx_t_14);
71586 } else {
71587 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4059; __pyx_clineno = __LINE__71587; goto __pyx_L1_error;}
71588 __Pyx_GOTREF(__pyx_t_16);
71589 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
71590 __Pyx_GIVEREF(__pyx_t_19);
71591 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_19
)
;
71592 __pyx_t_19 = 0;
71593 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4059; __pyx_clineno = __LINE__71593; goto __pyx_L1_error;}
71594 __Pyx_GOTREF(__pyx_t_14);
71595 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
71596 }
71597 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
71598 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_read, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4061; __pyx_clineno = __LINE__71598; goto __pyx_L1_error;}
71599 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71600
71601 /* "rados.pyx":4067
71602 * return ret
71603 *
71604 * @set_object_locator # <<<<<<<<<<<<<<
71605 * @set_object_namespace
71606 * def write(self, string_to_write):
71607 */
71608 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4067; __pyx_clineno = __LINE__71608; goto __pyx_L1_error;}
71609 __Pyx_GOTREF(__pyx_t_8);
71610
71611 /* "rados.pyx":4068
71612 *
71613 * @set_object_locator
71614 * @set_object_namespace # <<<<<<<<<<<<<<
71615 * def write(self, string_to_write):
71616 * self.require_object_exists()
71617 */
71618 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4068; __pyx_clineno = __LINE__71618; goto __pyx_L1_error;}
71619 __Pyx_GOTREF(__pyx_t_19);
71620
71621 /* "rados.pyx":4069
71622 * @set_object_locator
71623 * @set_object_namespace
71624 * def write(self, string_to_write): # <<<<<<<<<<<<<<
71625 * self.require_object_exists()
71626 * ret = self.ioctx.write(self.key, string_to_write, self.offset)
71627 */
71628 __pyx_t_12 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_9write, 0, __pyx_n_s_Object_write, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__167))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_9write
, 0, __pyx_n_s_Object_write, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__167))
; if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4069; __pyx_clineno = __LINE__71628; goto __pyx_L1_error;}
71629 __Pyx_GOTREF(__pyx_t_12);
71630 __pyx_t_13 = NULL((void*)0);
71631 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
71632 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
71633 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
71634 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
71635 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
71636 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71637 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71638 }
71639 }
71640 if (!__pyx_t_13) {
71641 __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_12); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4068; __pyx_clineno = __LINE__71641; goto __pyx_L1_error;}
71642 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
71643 __Pyx_GOTREF(__pyx_t_16);
71644 } else {
71645 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4068; __pyx_clineno = __LINE__71645; goto __pyx_L1_error;}
71646 __Pyx_GOTREF(__pyx_t_9);
71647 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
71648 __Pyx_GIVEREF(__pyx_t_12);
71649 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_12
)
;
71650 __pyx_t_12 = 0;
71651 __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4068; __pyx_clineno = __LINE__71651; goto __pyx_L1_error;}
71652 __Pyx_GOTREF(__pyx_t_16);
71653 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
71654 }
71655 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
71656 __pyx_t_19 = NULL((void*)0);
71657 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
71658 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
71659 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
71660 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
71661 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
71662 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71663 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71664 }
71665 }
71666 if (!__pyx_t_19) {
71667 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_16); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4067; __pyx_clineno = __LINE__71667; goto __pyx_L1_error;}
71668 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
71669 __Pyx_GOTREF(__pyx_t_14);
71670 } else {
71671 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4067; __pyx_clineno = __LINE__71671; goto __pyx_L1_error;}
71672 __Pyx_GOTREF(__pyx_t_9);
71673 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
71674 __Pyx_GIVEREF(__pyx_t_16);
71675 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_16
)
;
71676 __pyx_t_16 = 0;
71677 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4067; __pyx_clineno = __LINE__71677; goto __pyx_L1_error;}
71678 __Pyx_GOTREF(__pyx_t_14);
71679 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
71680 }
71681 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
71682 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_write, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4069; __pyx_clineno = __LINE__71682; goto __pyx_L1_error;}
71683 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71684
71685 /* "rados.pyx":4076
71686 * return ret
71687 *
71688 * @set_object_locator # <<<<<<<<<<<<<<
71689 * @set_object_namespace
71690 * def remove(self):
71691 */
71692 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4076; __pyx_clineno = __LINE__71692; goto __pyx_L1_error;}
71693 __Pyx_GOTREF(__pyx_t_8);
71694
71695 /* "rados.pyx":4077
71696 *
71697 * @set_object_locator
71698 * @set_object_namespace # <<<<<<<<<<<<<<
71699 * def remove(self):
71700 * self.require_object_exists()
71701 */
71702 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4077; __pyx_clineno = __LINE__71702; goto __pyx_L1_error;}
71703 __Pyx_GOTREF(__pyx_t_16);
71704
71705 /* "rados.pyx":4078
71706 * @set_object_locator
71707 * @set_object_namespace
71708 * def remove(self): # <<<<<<<<<<<<<<
71709 * self.require_object_exists()
71710 * self.ioctx.remove_object(self.key)
71711 */
71712 __pyx_t_19 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_11remove, 0, __pyx_n_s_Object_remove, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__169))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_11remove
, 0, __pyx_n_s_Object_remove, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__169))
; if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4078; __pyx_clineno = __LINE__71712; goto __pyx_L1_error;}
71713 __Pyx_GOTREF(__pyx_t_19);
71714 __pyx_t_12 = NULL((void*)0);
71715 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_16))__builtin_expect(!!(((__pyx_t_16)->ob_type == &PyMethod_Type
)), 0)
) {
71716 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_self);
71717 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
71718 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_func);
71719 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
71720 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71721 __Pyx_DECREF_SET(__pyx_t_16, function)do { PyObject *tmp = (PyObject *) __pyx_t_16; __pyx_t_16 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71722 }
71723 }
71724 if (!__pyx_t_12) {
71725 __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_19); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4077; __pyx_clineno = __LINE__71725; goto __pyx_L1_error;}
71726 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
71727 __Pyx_GOTREF(__pyx_t_9);
71728 } else {
71729 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4077; __pyx_clineno = __LINE__71729; goto __pyx_L1_error;}
71730 __Pyx_GOTREF(__pyx_t_13);
71731 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
71732 __Pyx_GIVEREF(__pyx_t_19);
71733 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_19
)
;
71734 __pyx_t_19 = 0;
71735 __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4077; __pyx_clineno = __LINE__71735; goto __pyx_L1_error;}
71736 __Pyx_GOTREF(__pyx_t_9);
71737 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71738 }
71739 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
71740 __pyx_t_16 = NULL((void*)0);
71741 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
71742 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
71743 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
71744 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
71745 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
71746 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71747 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71748 }
71749 }
71750 if (!__pyx_t_16) {
71751 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4076; __pyx_clineno = __LINE__71751; goto __pyx_L1_error;}
71752 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
71753 __Pyx_GOTREF(__pyx_t_14);
71754 } else {
71755 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4076; __pyx_clineno = __LINE__71755; goto __pyx_L1_error;}
71756 __Pyx_GOTREF(__pyx_t_13);
71757 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
71758 __Pyx_GIVEREF(__pyx_t_9);
71759 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_9
)
;
71760 __pyx_t_9 = 0;
71761 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4076; __pyx_clineno = __LINE__71761; goto __pyx_L1_error;}
71762 __Pyx_GOTREF(__pyx_t_14);
71763 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71764 }
71765 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
71766 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_remove, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4078; __pyx_clineno = __LINE__71766; goto __pyx_L1_error;}
71767 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71768
71769 /* "rados.pyx":4083
71770 * self.state = "removed"
71771 *
71772 * @set_object_locator # <<<<<<<<<<<<<<
71773 * @set_object_namespace
71774 * def stat(self):
71775 */
71776 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4083; __pyx_clineno = __LINE__71776; goto __pyx_L1_error;}
71777 __Pyx_GOTREF(__pyx_t_8);
71778
71779 /* "rados.pyx":4084
71780 *
71781 * @set_object_locator
71782 * @set_object_namespace # <<<<<<<<<<<<<<
71783 * def stat(self):
71784 * self.require_object_exists()
71785 */
71786 __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4084; __pyx_clineno = __LINE__71786; goto __pyx_L1_error;}
71787 __Pyx_GOTREF(__pyx_t_9);
71788
71789 /* "rados.pyx":4085
71790 * @set_object_locator
71791 * @set_object_namespace
71792 * def stat(self): # <<<<<<<<<<<<<<
71793 * self.require_object_exists()
71794 * return self.ioctx.stat(self.key)
71795 */
71796 __pyx_t_16 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_13stat, 0, __pyx_n_s_Object_stat, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__171))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_13stat
, 0, __pyx_n_s_Object_stat, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__171))
; if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4085; __pyx_clineno = __LINE__71796; goto __pyx_L1_error;}
71797 __Pyx_GOTREF(__pyx_t_16);
71798 __pyx_t_19 = NULL((void*)0);
71799 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_9))__builtin_expect(!!(((__pyx_t_9)->ob_type == &PyMethod_Type
)), 0)
) {
71800 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_self);
71801 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
71802 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9)(((PyMethodObject *)__pyx_t_9) -> im_func);
71803 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
71804 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71805 __Pyx_DECREF_SET(__pyx_t_9, function)do { PyObject *tmp = (PyObject *) __pyx_t_9; __pyx_t_9 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71806 }
71807 }
71808 if (!__pyx_t_19) {
71809 __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_16); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4084; __pyx_clineno = __LINE__71809; goto __pyx_L1_error;}
71810 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
71811 __Pyx_GOTREF(__pyx_t_13);
71812 } else {
71813 __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4084; __pyx_clineno = __LINE__71813; goto __pyx_L1_error;}
71814 __Pyx_GOTREF(__pyx_t_12);
71815 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
71816 __Pyx_GIVEREF(__pyx_t_16);
71817 PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_12))->ob_item[0+1] = __pyx_t_16
)
;
71818 __pyx_t_16 = 0;
71819 __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4084; __pyx_clineno = __LINE__71819; goto __pyx_L1_error;}
71820 __Pyx_GOTREF(__pyx_t_13);
71821 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
71822 }
71823 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
71824 __pyx_t_9 = NULL((void*)0);
71825 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
71826 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
71827 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
71828 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
71829 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
71830 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71831 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71832 }
71833 }
71834 if (!__pyx_t_9) {
71835 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_13); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4083; __pyx_clineno = __LINE__71835; goto __pyx_L1_error;}
71836 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71837 __Pyx_GOTREF(__pyx_t_14);
71838 } else {
71839 __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4083; __pyx_clineno = __LINE__71839; goto __pyx_L1_error;}
71840 __Pyx_GOTREF(__pyx_t_12);
71841 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_12))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
71842 __Pyx_GIVEREF(__pyx_t_13);
71843 PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_12))->ob_item[0+1] = __pyx_t_13
)
;
71844 __pyx_t_13 = 0;
71845 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_12, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4083; __pyx_clineno = __LINE__71845; goto __pyx_L1_error;}
71846 __Pyx_GOTREF(__pyx_t_14);
71847 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
71848 }
71849 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
71850 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_stat, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4085; __pyx_clineno = __LINE__71850; goto __pyx_L1_error;}
71851 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71852
71853 /* "rados.pyx":4089
71854 * return self.ioctx.stat(self.key)
71855 *
71856 * def seek(self, position): # <<<<<<<<<<<<<<
71857 * self.require_object_exists()
71858 * self.offset = position
71859 */
71860 __pyx_t_14 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_15seek, 0, __pyx_n_s_Object_seek, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__173))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_15seek
, 0, __pyx_n_s_Object_seek, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__173))
; if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4089; __pyx_clineno = __LINE__71860; goto __pyx_L1_error;}
71861 __Pyx_GOTREF(__pyx_t_14);
71862 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_seek, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4089; __pyx_clineno = __LINE__71862; goto __pyx_L1_error;}
71863 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71864
71865 /* "rados.pyx":4093
71866 * self.offset = position
71867 *
71868 * @set_object_locator # <<<<<<<<<<<<<<
71869 * @set_object_namespace
71870 * def get_xattr(self, xattr_name):
71871 */
71872 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4093; __pyx_clineno = __LINE__71872; goto __pyx_L1_error;}
71873 __Pyx_GOTREF(__pyx_t_8);
71874
71875 /* "rados.pyx":4094
71876 *
71877 * @set_object_locator
71878 * @set_object_namespace # <<<<<<<<<<<<<<
71879 * def get_xattr(self, xattr_name):
71880 * self.require_object_exists()
71881 */
71882 __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4094; __pyx_clineno = __LINE__71882; goto __pyx_L1_error;}
71883 __Pyx_GOTREF(__pyx_t_13);
71884
71885 /* "rados.pyx":4095
71886 * @set_object_locator
71887 * @set_object_namespace
71888 * def get_xattr(self, xattr_name): # <<<<<<<<<<<<<<
71889 * self.require_object_exists()
71890 * return self.ioctx.get_xattr(self.key, xattr_name)
71891 */
71892 __pyx_t_9 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_17get_xattr, 0, __pyx_n_s_Object_get_xattr, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__175))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_17get_xattr
, 0, __pyx_n_s_Object_get_xattr, ((void*)0), __pyx_n_s_rados,
__pyx_d, ((PyObject *)__pyx_codeobj__175))
; if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4095; __pyx_clineno = __LINE__71892; goto __pyx_L1_error;}
71893 __Pyx_GOTREF(__pyx_t_9);
71894 __pyx_t_16 = NULL((void*)0);
71895 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_13))__builtin_expect(!!(((__pyx_t_13)->ob_type == &PyMethod_Type
)), 0)
) {
71896 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_self);
71897 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
71898 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13)(((PyMethodObject *)__pyx_t_13) -> im_func);
71899 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
71900 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71901 __Pyx_DECREF_SET(__pyx_t_13, function)do { PyObject *tmp = (PyObject *) __pyx_t_13; __pyx_t_13 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71902 }
71903 }
71904 if (!__pyx_t_16) {
71905 __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_9); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4094; __pyx_clineno = __LINE__71905; goto __pyx_L1_error;}
71906 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
71907 __Pyx_GOTREF(__pyx_t_12);
71908 } else {
71909 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4094; __pyx_clineno = __LINE__71909; goto __pyx_L1_error;}
71910 __Pyx_GOTREF(__pyx_t_19);
71911 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
71912 __Pyx_GIVEREF(__pyx_t_9);
71913 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_9
)
;
71914 __pyx_t_9 = 0;
71915 __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4094; __pyx_clineno = __LINE__71915; goto __pyx_L1_error;}
71916 __Pyx_GOTREF(__pyx_t_12);
71917 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
71918 }
71919 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71920 __pyx_t_13 = NULL((void*)0);
71921 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
71922 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
71923 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
71924 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
71925 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
71926 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71927 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71928 }
71929 }
71930 if (!__pyx_t_13) {
71931 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4093; __pyx_clineno = __LINE__71931; goto __pyx_L1_error;}
71932 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
71933 __Pyx_GOTREF(__pyx_t_14);
71934 } else {
71935 __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4093; __pyx_clineno = __LINE__71935; goto __pyx_L1_error;}
71936 __Pyx_GOTREF(__pyx_t_19);
71937 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_19))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
71938 __Pyx_GIVEREF(__pyx_t_12);
71939 PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_19))->ob_item[0+1] = __pyx_t_12
)
;
71940 __pyx_t_12 = 0;
71941 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_19, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4093; __pyx_clineno = __LINE__71941; goto __pyx_L1_error;}
71942 __Pyx_GOTREF(__pyx_t_14);
71943 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
71944 }
71945 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
71946 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_get_xattr, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4095; __pyx_clineno = __LINE__71946; goto __pyx_L1_error;}
71947 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
71948
71949 /* "rados.pyx":4099
71950 * return self.ioctx.get_xattr(self.key, xattr_name)
71951 *
71952 * @set_object_locator # <<<<<<<<<<<<<<
71953 * @set_object_namespace
71954 * def get_xattrs(self):
71955 */
71956 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4099; __pyx_clineno = __LINE__71956; goto __pyx_L1_error;}
71957 __Pyx_GOTREF(__pyx_t_8);
71958
71959 /* "rados.pyx":4100
71960 *
71961 * @set_object_locator
71962 * @set_object_namespace # <<<<<<<<<<<<<<
71963 * def get_xattrs(self):
71964 * self.require_object_exists()
71965 */
71966 __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4100; __pyx_clineno = __LINE__71966; goto __pyx_L1_error;}
71967 __Pyx_GOTREF(__pyx_t_12);
71968
71969 /* "rados.pyx":4101
71970 * @set_object_locator
71971 * @set_object_namespace
71972 * def get_xattrs(self): # <<<<<<<<<<<<<<
71973 * self.require_object_exists()
71974 * return self.ioctx.get_xattrs(self.key)
71975 */
71976 __pyx_t_13 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_19get_xattrs, 0, __pyx_n_s_Object_get_xattrs, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__177))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_19get_xattrs
, 0, __pyx_n_s_Object_get_xattrs, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__177))
; if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4101; __pyx_clineno = __LINE__71976; goto __pyx_L1_error;}
71977 __Pyx_GOTREF(__pyx_t_13);
71978 __pyx_t_9 = NULL((void*)0);
71979 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_12))__builtin_expect(!!(((__pyx_t_12)->ob_type == &PyMethod_Type
)), 0)
) {
71980 __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_self);
71981 if (likely(__pyx_t_9)__builtin_expect(!!(__pyx_t_9), 1)) {
71982 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12)(((PyMethodObject *)__pyx_t_12) -> im_func);
71983 __Pyx_INCREF(__pyx_t_9)( ((PyObject*)(__pyx_t_9))->ob_refcnt++);
71984 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
71985 __Pyx_DECREF_SET(__pyx_t_12, function)do { PyObject *tmp = (PyObject *) __pyx_t_12; __pyx_t_12 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
71986 }
71987 }
71988 if (!__pyx_t_9) {
71989 __pyx_t_19 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4100; __pyx_clineno = __LINE__71989; goto __pyx_L1_error;}
71990 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
71991 __Pyx_GOTREF(__pyx_t_19);
71992 } else {
71993 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4100; __pyx_clineno = __LINE__71993; goto __pyx_L1_error;}
71994 __Pyx_GOTREF(__pyx_t_16);
71995 __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_9); __pyx_t_9 = NULL((void*)0);
71996 __Pyx_GIVEREF(__pyx_t_13);
71997 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_13)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_13
)
;
71998 __pyx_t_13 = 0;
71999 __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4100; __pyx_clineno = __LINE__71999; goto __pyx_L1_error;}
72000 __Pyx_GOTREF(__pyx_t_19);
72001 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
72002 }
72003 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
72004 __pyx_t_12 = NULL((void*)0);
72005 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
72006 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
72007 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
72008 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
72009 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
72010 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
72011 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
72012 }
72013 }
72014 if (!__pyx_t_12) {
72015 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_19); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4099; __pyx_clineno = __LINE__72015; goto __pyx_L1_error;}
72016 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
72017 __Pyx_GOTREF(__pyx_t_14);
72018 } else {
72019 __pyx_t_16 = PyTuple_New(1+1); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4099; __pyx_clineno = __LINE__72019; goto __pyx_L1_error;}
72020 __Pyx_GOTREF(__pyx_t_16);
72021 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_16))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
72022 __Pyx_GIVEREF(__pyx_t_19);
72023 PyTuple_SET_ITEM(__pyx_t_16, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_16))->ob_item[0+1] = __pyx_t_19
)
;
72024 __pyx_t_19 = 0;
72025 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_16, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4099; __pyx_clineno = __LINE__72025; goto __pyx_L1_error;}
72026 __Pyx_GOTREF(__pyx_t_14);
72027 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
72028 }
72029 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
72030 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_get_xattrs, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4101; __pyx_clineno = __LINE__72030; goto __pyx_L1_error;}
72031 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
72032
72033 /* "rados.pyx":4105
72034 * return self.ioctx.get_xattrs(self.key)
72035 *
72036 * @set_object_locator # <<<<<<<<<<<<<<
72037 * @set_object_namespace
72038 * def set_xattr(self, xattr_name, xattr_value):
72039 */
72040 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4105; __pyx_clineno = __LINE__72040; goto __pyx_L1_error;}
72041 __Pyx_GOTREF(__pyx_t_8);
72042
72043 /* "rados.pyx":4106
72044 *
72045 * @set_object_locator
72046 * @set_object_namespace # <<<<<<<<<<<<<<
72047 * def set_xattr(self, xattr_name, xattr_value):
72048 * self.require_object_exists()
72049 */
72050 __pyx_t_19 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4106; __pyx_clineno = __LINE__72050; goto __pyx_L1_error;}
72051 __Pyx_GOTREF(__pyx_t_19);
72052
72053 /* "rados.pyx":4107
72054 * @set_object_locator
72055 * @set_object_namespace
72056 * def set_xattr(self, xattr_name, xattr_value): # <<<<<<<<<<<<<<
72057 * self.require_object_exists()
72058 * return self.ioctx.set_xattr(self.key, xattr_name, xattr_value)
72059 */
72060 __pyx_t_12 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_21set_xattr, 0, __pyx_n_s_Object_set_xattr, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__179))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_21set_xattr
, 0, __pyx_n_s_Object_set_xattr, ((void*)0), __pyx_n_s_rados,
__pyx_d, ((PyObject *)__pyx_codeobj__179))
; if (unlikely(!__pyx_t_12)__builtin_expect(!!(!__pyx_t_12), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__72060; goto __pyx_L1_error;}
72061 __Pyx_GOTREF(__pyx_t_12);
72062 __pyx_t_13 = NULL((void*)0);
72063 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_19))__builtin_expect(!!(((__pyx_t_19)->ob_type == &PyMethod_Type
)), 0)
) {
72064 __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_self);
72065 if (likely(__pyx_t_13)__builtin_expect(!!(__pyx_t_13), 1)) {
72066 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19)(((PyMethodObject *)__pyx_t_19) -> im_func);
72067 __Pyx_INCREF(__pyx_t_13)( ((PyObject*)(__pyx_t_13))->ob_refcnt++);
72068 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
72069 __Pyx_DECREF_SET(__pyx_t_19, function)do { PyObject *tmp = (PyObject *) __pyx_t_19; __pyx_t_19 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
72070 }
72071 }
72072 if (!__pyx_t_13) {
72073 __pyx_t_16 = __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_12); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4106; __pyx_clineno = __LINE__72073; goto __pyx_L1_error;}
72074 __Pyx_DECREF(__pyx_t_12)do { if ( --((PyObject*)(__pyx_t_12))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_12)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_12)))); } while
(0)
; __pyx_t_12 = 0;
72075 __Pyx_GOTREF(__pyx_t_16);
72076 } else {
72077 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4106; __pyx_clineno = __LINE__72077; goto __pyx_L1_error;}
72078 __Pyx_GOTREF(__pyx_t_9);
72079 __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_13)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_13); __pyx_t_13 = NULL((void*)0);
72080 __Pyx_GIVEREF(__pyx_t_12);
72081 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_12)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_12
)
;
72082 __pyx_t_12 = 0;
72083 __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4106; __pyx_clineno = __LINE__72083; goto __pyx_L1_error;}
72084 __Pyx_GOTREF(__pyx_t_16);
72085 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
72086 }
72087 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
72088 __pyx_t_19 = NULL((void*)0);
72089 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
72090 __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
72091 if (likely(__pyx_t_19)__builtin_expect(!!(__pyx_t_19), 1)) {
72092 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
72093 __Pyx_INCREF(__pyx_t_19)( ((PyObject*)(__pyx_t_19))->ob_refcnt++);
72094 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
72095 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
72096 }
72097 }
72098 if (!__pyx_t_19) {
72099 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_16); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4105; __pyx_clineno = __LINE__72099; goto __pyx_L1_error;}
72100 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
72101 __Pyx_GOTREF(__pyx_t_14);
72102 } else {
72103 __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4105; __pyx_clineno = __LINE__72103; goto __pyx_L1_error;}
72104 __Pyx_GOTREF(__pyx_t_9);
72105 __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_19)(((PyTupleObject *)(__pyx_t_9))->ob_item[0] = __pyx_t_19); __pyx_t_19 = NULL((void*)0);
72106 __Pyx_GIVEREF(__pyx_t_16);
72107 PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_16)(((PyTupleObject *)(__pyx_t_9))->ob_item[0+1] = __pyx_t_16
)
;
72108 __pyx_t_16 = 0;
72109 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4105; __pyx_clineno = __LINE__72109; goto __pyx_L1_error;}
72110 __Pyx_GOTREF(__pyx_t_14);
72111 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
72112 }
72113 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
72114 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_set_xattr, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4107; __pyx_clineno = __LINE__72114; goto __pyx_L1_error;}
72115 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
72116
72117 /* "rados.pyx":4111
72118 * return self.ioctx.set_xattr(self.key, xattr_name, xattr_value)
72119 *
72120 * @set_object_locator # <<<<<<<<<<<<<<
72121 * @set_object_namespace
72122 * def rm_xattr(self, xattr_name):
72123 */
72124 __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_locator); if (unlikely(!__pyx_t_8)__builtin_expect(!!(!__pyx_t_8), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4111; __pyx_clineno = __LINE__72124; goto __pyx_L1_error;}
72125 __Pyx_GOTREF(__pyx_t_8);
72126
72127 /* "rados.pyx":4112
72128 *
72129 * @set_object_locator
72130 * @set_object_namespace # <<<<<<<<<<<<<<
72131 * def rm_xattr(self, xattr_name):
72132 * self.require_object_exists()
72133 */
72134 __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_set_object_namespace); if (unlikely(!__pyx_t_16)__builtin_expect(!!(!__pyx_t_16), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4112; __pyx_clineno = __LINE__72134; goto __pyx_L1_error;}
72135 __Pyx_GOTREF(__pyx_t_16);
72136
72137 /* "rados.pyx":4113
72138 * @set_object_locator
72139 * @set_object_namespace
72140 * def rm_xattr(self, xattr_name): # <<<<<<<<<<<<<<
72141 * self.require_object_exists()
72142 * return self.ioctx.rm_xattr(self.key, xattr_name)
72143 */
72144 __pyx_t_19 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_6Object_23rm_xattr, 0, __pyx_n_s_Object_rm_xattr, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__181))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_6Object_23rm_xattr
, 0, __pyx_n_s_Object_rm_xattr, ((void*)0), __pyx_n_s_rados, __pyx_d
, ((PyObject *)__pyx_codeobj__181))
; if (unlikely(!__pyx_t_19)__builtin_expect(!!(!__pyx_t_19), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4113; __pyx_clineno = __LINE__72144; goto __pyx_L1_error;}
72145 __Pyx_GOTREF(__pyx_t_19);
72146 __pyx_t_12 = NULL((void*)0);
72147 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_16))__builtin_expect(!!(((__pyx_t_16)->ob_type == &PyMethod_Type
)), 0)
) {
72148 __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_self);
72149 if (likely(__pyx_t_12)__builtin_expect(!!(__pyx_t_12), 1)) {
72150 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16)(((PyMethodObject *)__pyx_t_16) -> im_func);
72151 __Pyx_INCREF(__pyx_t_12)( ((PyObject*)(__pyx_t_12))->ob_refcnt++);
72152 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
72153 __Pyx_DECREF_SET(__pyx_t_16, function)do { PyObject *tmp = (PyObject *) __pyx_t_16; __pyx_t_16 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
72154 }
72155 }
72156 if (!__pyx_t_12) {
72157 __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_19); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4112; __pyx_clineno = __LINE__72157; goto __pyx_L1_error;}
72158 __Pyx_DECREF(__pyx_t_19)do { if ( --((PyObject*)(__pyx_t_19))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_19)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_19)))); } while
(0)
; __pyx_t_19 = 0;
72159 __Pyx_GOTREF(__pyx_t_9);
72160 } else {
72161 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4112; __pyx_clineno = __LINE__72161; goto __pyx_L1_error;}
72162 __Pyx_GOTREF(__pyx_t_13);
72163 __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_12); __pyx_t_12 = NULL((void*)0);
72164 __Pyx_GIVEREF(__pyx_t_19);
72165 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_19)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_19
)
;
72166 __pyx_t_19 = 0;
72167 __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_9)__builtin_expect(!!(!__pyx_t_9), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4112; __pyx_clineno = __LINE__72167; goto __pyx_L1_error;}
72168 __Pyx_GOTREF(__pyx_t_9);
72169 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
72170 }
72171 __Pyx_DECREF(__pyx_t_16)do { if ( --((PyObject*)(__pyx_t_16))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_16)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_16)))); } while
(0)
; __pyx_t_16 = 0;
72172 __pyx_t_16 = NULL((void*)0);
72173 if (CYTHON_COMPILING_IN_CPYTHON1 && unlikely(PyMethod_Check(__pyx_t_8))__builtin_expect(!!(((__pyx_t_8)->ob_type == &PyMethod_Type
)), 0)
) {
72174 __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_self);
72175 if (likely(__pyx_t_16)__builtin_expect(!!(__pyx_t_16), 1)) {
72176 PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8)(((PyMethodObject *)__pyx_t_8) -> im_func);
72177 __Pyx_INCREF(__pyx_t_16)( ((PyObject*)(__pyx_t_16))->ob_refcnt++);
72178 __Pyx_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
72179 __Pyx_DECREF_SET(__pyx_t_8, function)do { PyObject *tmp = (PyObject *) __pyx_t_8; __pyx_t_8 = function
; do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0); } while (0)
;
72180 }
72181 }
72182 if (!__pyx_t_16) {
72183 __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4111; __pyx_clineno = __LINE__72183; goto __pyx_L1_error;}
72184 __Pyx_DECREF(__pyx_t_9)do { if ( --((PyObject*)(__pyx_t_9))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_9)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_9)))); } while (
0)
; __pyx_t_9 = 0;
72185 __Pyx_GOTREF(__pyx_t_14);
72186 } else {
72187 __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)__builtin_expect(!!(!__pyx_t_13), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4111; __pyx_clineno = __LINE__72187; goto __pyx_L1_error;}
72188 __Pyx_GOTREF(__pyx_t_13);
72189 __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_16)(((PyTupleObject *)(__pyx_t_13))->ob_item[0] = __pyx_t_16); __pyx_t_16 = NULL((void*)0);
72190 __Pyx_GIVEREF(__pyx_t_9);
72191 PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_9)(((PyTupleObject *)(__pyx_t_13))->ob_item[0+1] = __pyx_t_9
)
;
72192 __pyx_t_9 = 0;
72193 __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL((void*)0)); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4111; __pyx_clineno = __LINE__72193; goto __pyx_L1_error;}
72194 __Pyx_GOTREF(__pyx_t_14);
72195 __Pyx_DECREF(__pyx_t_13)do { if ( --((PyObject*)(__pyx_t_13))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_13)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_13)))); } while
(0)
; __pyx_t_13 = 0;
72196 }
72197 __Pyx_DECREF(__pyx_t_8)do { if ( --((PyObject*)(__pyx_t_8))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_8)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_8)))); } while (
0)
; __pyx_t_8 = 0;
72198 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_rm_xattr, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4113; __pyx_clineno = __LINE__72198; goto __pyx_L1_error;}
72199 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
72200
72201 /* "rados.pyx":4040
72202 *
72203 *
72204 * class Object(object): # <<<<<<<<<<<<<<
72205 * """Rados object wrapper, makes the object look like a file"""
72206 * def __init__(self, ioctx, key, locator_key=None, nspace=None):
72207 */
72208 __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_n_s_Object, __pyx_t_7, __pyx_t_1, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4040; __pyx_clineno = __LINE__72208; goto __pyx_L1_error;}
72209 __Pyx_GOTREF(__pyx_t_14);
72210 if (PyDict_SetItem(__pyx_d, __pyx_n_s_Object, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4040; __pyx_clineno = __LINE__72210; goto __pyx_L1_error;}
72211 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
72212 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
72213 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
72214 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
72215
72216 /* "rados.pyx":4117
72217 * return self.ioctx.rm_xattr(self.key, xattr_name)
72218 *
72219 * MONITOR_LEVELS = [ # <<<<<<<<<<<<<<
72220 * "debug",
72221 * "info",
72222 */
72223 __pyx_t_7 = PyList_New(7); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4117; __pyx_clineno = __LINE__72223; goto __pyx_L1_error;}
72224 __Pyx_GOTREF(__pyx_t_7);
72225 __Pyx_INCREF(__pyx_n_s_debug)( ((PyObject*)(__pyx_n_s_debug))->ob_refcnt++);
72226 __Pyx_GIVEREF(__pyx_n_s_debug);
72227 PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_debug)(((PyListObject *)(__pyx_t_7))->ob_item[0] = (__pyx_n_s_debug
))
;
72228 __Pyx_INCREF(__pyx_n_s_info)( ((PyObject*)(__pyx_n_s_info))->ob_refcnt++);
72229 __Pyx_GIVEREF(__pyx_n_s_info);
72230 PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_s_info)(((PyListObject *)(__pyx_t_7))->ob_item[1] = (__pyx_n_s_info
))
;
72231 __Pyx_INCREF(__pyx_n_s_warn)( ((PyObject*)(__pyx_n_s_warn))->ob_refcnt++);
72232 __Pyx_GIVEREF(__pyx_n_s_warn);
72233 PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_s_warn)(((PyListObject *)(__pyx_t_7))->ob_item[2] = (__pyx_n_s_warn
))
;
72234 __Pyx_INCREF(__pyx_n_s_warning)( ((PyObject*)(__pyx_n_s_warning))->ob_refcnt++);
72235 __Pyx_GIVEREF(__pyx_n_s_warning);
72236 PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_s_warning)(((PyListObject *)(__pyx_t_7))->ob_item[3] = (__pyx_n_s_warning
))
;
72237 __Pyx_INCREF(__pyx_n_s_err)( ((PyObject*)(__pyx_n_s_err))->ob_refcnt++);
72238 __Pyx_GIVEREF(__pyx_n_s_err);
72239 PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_s_err)(((PyListObject *)(__pyx_t_7))->ob_item[4] = (__pyx_n_s_err
))
;
72240 __Pyx_INCREF(__pyx_n_s_error)( ((PyObject*)(__pyx_n_s_error))->ob_refcnt++);
72241 __Pyx_GIVEREF(__pyx_n_s_error);
72242 PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_s_error)(((PyListObject *)(__pyx_t_7))->ob_item[5] = (__pyx_n_s_error
))
;
72243 __Pyx_INCREF(__pyx_n_s_sec)( ((PyObject*)(__pyx_n_s_sec))->ob_refcnt++);
72244 __Pyx_GIVEREF(__pyx_n_s_sec);
72245 PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_s_sec)(((PyListObject *)(__pyx_t_7))->ob_item[6] = (__pyx_n_s_sec
))
;
72246 if (PyDict_SetItem(__pyx_d, __pyx_n_s_MONITOR_LEVELS, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4117; __pyx_clineno = __LINE__72246; goto __pyx_L1_error;}
72247 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
72248
72249 /* "rados.pyx":4126
72250 *
72251 *
72252 * class MonitorLog(object): # <<<<<<<<<<<<<<
72253 * # NOTE(sileht): Keep this class for backward compat
72254 * # method moved to Rados.monitor_log()
72255 */
72256 __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4126; __pyx_clineno = __LINE__72256; goto __pyx_L1_error;}
72257 __Pyx_GOTREF(__pyx_t_7);
72258 __Pyx_INCREF(__pyx_builtin_object)( ((PyObject*)(__pyx_builtin_object))->ob_refcnt++);
72259 __Pyx_GIVEREF(__pyx_builtin_object);
72260 PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object)(((PyTupleObject *)(__pyx_t_7))->ob_item[0] = __pyx_builtin_object
)
;
72261 __pyx_t_5 = __Pyx_CalculateMetaclass(NULL((void*)0), __pyx_t_7); if (unlikely(!__pyx_t_5)__builtin_expect(!!(!__pyx_t_5), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4126; __pyx_clineno = __LINE__72261; goto __pyx_L1_error;}
72262 __Pyx_GOTREF(__pyx_t_5);
72263 __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_7, __pyx_n_s_MonitorLog, __pyx_n_s_MonitorLog, (PyObject *) NULL((void*)0), __pyx_n_s_rados, __pyx_kp_s_For_watching_cluster_log_messag); if (unlikely(!__pyx_t_1)__builtin_expect(!!(!__pyx_t_1), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4126; __pyx_clineno = __LINE__72263; goto __pyx_L1_error;}
72264 __Pyx_GOTREF(__pyx_t_1);
72265
72266 /* "rados.pyx":4146
72267 * callback's return value is ignored
72268 * """
72269 * def __init__(self, cluster, level, callback, arg): # <<<<<<<<<<<<<<
72270 * self.level = level
72271 * self.callback = callback
72272 */
72273 __pyx_t_14 = __Pyx_CyFunction_NewEx(&__pyx_mdef_5rados_10MonitorLog_1__init__, 0, __pyx_n_s_MonitorLog___init, NULL, __pyx_n_s_rados, __pyx_d, ((PyObject *)__pyx_codeobj__183))__Pyx_CyFunction_New(__pyx_CyFunctionType, &__pyx_mdef_5rados_10MonitorLog_1__init__
, 0, __pyx_n_s_MonitorLog___init, ((void*)0), __pyx_n_s_rados
, __pyx_d, ((PyObject *)__pyx_codeobj__183))
; if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__72273; goto __pyx_L1_error;}
72274 __Pyx_GOTREF(__pyx_t_14);
72275 if (PyObject_SetItem(__pyx_t_1, __pyx_n_s_init, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4146; __pyx_clineno = __LINE__72275; goto __pyx_L1_error;}
72276 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
72277
72278 /* "rados.pyx":4126
72279 *
72280 *
72281 * class MonitorLog(object): # <<<<<<<<<<<<<<
72282 * # NOTE(sileht): Keep this class for backward compat
72283 * # method moved to Rados.monitor_log()
72284 */
72285 __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_n_s_MonitorLog, __pyx_t_7, __pyx_t_1, NULL((void*)0), 0, 1); if (unlikely(!__pyx_t_14)__builtin_expect(!!(!__pyx_t_14), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4126; __pyx_clineno = __LINE__72285; goto __pyx_L1_error;}
72286 __Pyx_GOTREF(__pyx_t_14);
72287 if (PyDict_SetItem(__pyx_d, __pyx_n_s_MonitorLog, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 4126; __pyx_clineno = __LINE__72287; goto __pyx_L1_error;}
72288 __Pyx_DECREF(__pyx_t_14)do { if ( --((PyObject*)(__pyx_t_14))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_14)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_14)))); } while
(0)
; __pyx_t_14 = 0;
72289 __Pyx_DECREF(__pyx_t_1)do { if ( --((PyObject*)(__pyx_t_1))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_1)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_1)))); } while (
0)
; __pyx_t_1 = 0;
72290 __Pyx_DECREF(__pyx_t_5)do { if ( --((PyObject*)(__pyx_t_5))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_5)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_5)))); } while (
0)
; __pyx_t_5 = 0;
72291 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
72292
72293 /* "rados.pyx":1
72294 * # cython: embedsignature=True # <<<<<<<<<<<<<<
72295 * """
72296 * This module is a thin wrapper around librados.
72297 */
72298 __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)__builtin_expect(!!(!__pyx_t_7), 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__72298; goto __pyx_L1_error;}
72299 __Pyx_GOTREF(__pyx_t_7);
72300 if (PyDict_SetItem(__pyx_t_7, __pyx_kp_u_Rados_mon_command_line_1288, __pyx_kp_u_Send_a_command_to_the_mon_mon_c) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__72300; goto __pyx_L1_error;}
72301 if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__72301; goto __pyx_L1_error;}
72302 __Pyx_DECREF(__pyx_t_7)do { if ( --((PyObject*)(__pyx_t_7))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_t_7)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(__pyx_t_7)))); } while (
0)
; __pyx_t_7 = 0;
72303
72304 /*--- Wrapped vars code ---*/
72305
72306 goto __pyx_L0;
72307 __pyx_L1_error:;
72308 __Pyx_XDECREF(__pyx_t_1)do { if ((__pyx_t_1) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_1))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_1)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_1)))); } while (0); } while (0)
;
72309 __Pyx_XDECREF(__pyx_t_5)do { if ((__pyx_t_5) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_5))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_5)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_5)))); } while (0); } while (0)
;
72310 __Pyx_XDECREF(__pyx_t_7)do { if ((__pyx_t_7) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_7))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_7)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_7)))); } while (0); } while (0)
;
72311 __Pyx_XDECREF(__pyx_t_8)do { if ((__pyx_t_8) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_8))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_8)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_8)))); } while (0); } while (0)
;
72312 __Pyx_XDECREF(__pyx_t_9)do { if ((__pyx_t_9) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_9))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(__pyx_t_9)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_9)))); } while (0); } while (0)
;
72313 __Pyx_XDECREF(__pyx_t_11)do { if ((__pyx_t_11) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_11))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_11)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_11)))); } while (0); } while (0)
;
72314 __Pyx_XDECREF(__pyx_t_12)do { if ((__pyx_t_12) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_12))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_12)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_12)))); } while (0); } while (0)
;
72315 __Pyx_XDECREF(__pyx_t_13)do { if ((__pyx_t_13) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_13))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_13)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_13)))); } while (0); } while (0)
;
72316 __Pyx_XDECREF(__pyx_t_14)do { if ((__pyx_t_14) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_14))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_14)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_14)))); } while (0); } while (0)
;
72317 __Pyx_XDECREF(__pyx_t_15)do { if ((__pyx_t_15) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_15))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_15)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_15)))); } while (0); } while (0)
;
72318 __Pyx_XDECREF(__pyx_t_16)do { if ((__pyx_t_16) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_16))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_16)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_16)))); } while (0); } while (0)
;
72319 __Pyx_XDECREF(__pyx_t_18)do { if ((__pyx_t_18) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_18))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_18)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_18)))); } while (0); } while (0)
;
72320 __Pyx_XDECREF(__pyx_t_19)do { if ((__pyx_t_19) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_19))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_19)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_19)))); } while (0); } while (0)
;
72321 __Pyx_XDECREF(__pyx_t_20)do { if ((__pyx_t_20) == ((void*)0)) ; else do { if ( --((PyObject
*)(__pyx_t_20))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(__pyx_t_20)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(__pyx_t_20)))); } while (0); } while (0)
;
72322 if (__pyx_m) {
72323 if (__pyx_d) {
72324 __Pyx_AddTraceback("init rados", __pyx_clineno, __pyx_lineno, __pyx_filename);
72325 }
72326 Py_DECREF(__pyx_m)do { if ( --((PyObject*)(__pyx_m))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(__pyx_m)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(__pyx_m)))); } while (0)
; __pyx_m = 0;
72327 } else if (!PyErr_Occurred()) {
72328 PyErr_SetString(PyExc_ImportError, "init rados");
72329 }
72330 __pyx_L0:;
72331 __Pyx_RefNannyFinishContext();
72332 #if PY_MAJOR_VERSION2 < 3
72333 return;
72334 #else
72335 return __pyx_m;
72336 #endif
72337}
72338
72339/* --- Runtime support code --- */
72340#if CYTHON_REFNANNY0
72341static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
72342 PyObject *m = NULL((void*)0), *p = NULL((void*)0);
72343 void *r = NULL((void*)0);
72344 m = PyImport_ImportModule((char *)modname);
72345 if (!m) goto end;
72346 p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
72347 if (!p) goto end;
72348 r = PyLong_AsVoidPtr(p);
72349end:
72350 Py_XDECREF(p)do { if ((p) == ((void*)0)) ; else do { if ( --((PyObject*)(p
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
p)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(p
)))); } while (0); } while (0)
;
72351 Py_XDECREF(m)do { if ((m) == ((void*)0)) ; else do { if ( --((PyObject*)(m
))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *)(
m)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *)(m
)))); } while (0); } while (0)
;
72352 return (__Pyx_RefNannyAPIStruct *)r;
72353}
72354#endif
72355
72356static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
72357 PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
72358 if (unlikely(!result)__builtin_expect(!!(!result), 0)) {
72359 PyErr_Format(PyExc_NameError,
72360#if PY_MAJOR_VERSION2 >= 3
72361 "name '%U' is not defined", name);
72362#else
72363 "name '%.200s' is not defined", PyString_AS_STRING(name)(((PyStringObject *)(name))->ob_sval));
72364#endif
72365 }
72366 return result;
72367}
72368
72369static void __Pyx_RaiseArgtupleInvalid(
72370 const char* func_name,
72371 int exact,
72372 Py_ssize_t num_min,
72373 Py_ssize_t num_max,
72374 Py_ssize_t num_found)
72375{
72376 Py_ssize_t num_expected;
72377 const char *more_or_less;
72378 if (num_found < num_min) {
72379 num_expected = num_min;
72380 more_or_less = "at least";
72381 } else {
72382 num_expected = num_max;
72383 more_or_less = "at most";
72384 }
72385 if (exact) {
72386 more_or_less = "exactly";
72387 }
72388 PyErr_Format(PyExc_TypeError,
72389 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T"z" "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T"z" "d given)",
72390 func_name, more_or_less, num_expected,
72391 (num_expected == 1) ? "" : "s", num_found);
72392}
72393
72394static void __Pyx_RaiseDoubleKeywordsError(
72395 const char* func_name,
72396 PyObject* kw_name)
72397{
72398 PyErr_Format(PyExc_TypeError,
72399 #if PY_MAJOR_VERSION2 >= 3
72400 "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
72401 #else
72402 "%s() got multiple values for keyword argument '%s'", func_name,
72403 PyString_AsString(kw_name));
72404 #endif
72405}
72406
72407static int __Pyx_ParseOptionalKeywords(
72408 PyObject *kwds,
72409 PyObject **argnames[],
72410 PyObject *kwds2,
72411 PyObject *values[],
72412 Py_ssize_t num_pos_args,
72413 const char* function_name)
72414{
72415 PyObject *key = 0, *value = 0;
72416 Py_ssize_t pos = 0;
72417 PyObject*** name;
72418 PyObject*** first_kw_arg = argnames + num_pos_args;
72419 while (PyDict_Next(kwds, &pos, &key, &value)) {
72420 name = first_kw_arg;
72421 while (*name && (**name != key)) name++;
72422 if (*name) {
72423 values[name-argnames] = value;
72424 continue;
72425 }
72426 name = first_kw_arg;
72427 #if PY_MAJOR_VERSION2 < 3
72428 if (likely(PyString_CheckExact(key))__builtin_expect(!!(((((PyObject*)(key))->ob_type) == &
PyString_Type)), 1)
|| likely(PyString_Check(key))__builtin_expect(!!(((((((PyObject*)(key))->ob_type))->
tp_flags & ((1L<<27))) != 0)), 1)
) {
72429 while (*name) {
72430 if ((CYTHON_COMPILING_IN_PYPY0 || PyString_GET_SIZE(**name)(((PyVarObject*)(**name))->ob_size) == PyString_GET_SIZE(key)(((PyVarObject*)(key))->ob_size))
72431 && _PyString_Eq(**name, key)) {
72432 values[name-argnames] = value;
72433 break;
72434 }
72435 name++;
72436 }
72437 if (*name) continue;
72438 else {
72439 PyObject*** argname = argnames;
72440 while (argname != first_kw_arg) {
72441 if ((**argname == key) || (
72442 (CYTHON_COMPILING_IN_PYPY0 || PyString_GET_SIZE(**argname)(((PyVarObject*)(**argname))->ob_size) == PyString_GET_SIZE(key)(((PyVarObject*)(key))->ob_size))
72443 && _PyString_Eq(**argname, key))) {
72444 goto arg_passed_twice;
72445 }
72446 argname++;
72447 }
72448 }
72449 } else
72450 #endif
72451 if (likely(PyUnicode_Check(key))__builtin_expect(!!(((((((PyObject*)(key))->ob_type))->
tp_flags & ((1L<<28))) != 0)), 1)
) {
72452 while (*name) {
72453 int cmp = (**name == key) ? 0 :
72454 #if !CYTHON_COMPILING_IN_PYPY0 && PY_MAJOR_VERSION2 >= 3
72455 (PyUnicode_GET_SIZE(**name)(((PyUnicodeObject *)(**name))->length) != PyUnicode_GET_SIZE(key)(((PyUnicodeObject *)(key))->length)) ? 1 :
72456 #endif
72457 PyUnicode_ComparePyUnicodeUCS4_Compare(**name, key);
72458 if (cmp < 0 && unlikely(PyErr_Occurred())__builtin_expect(!!(PyErr_Occurred()), 0)) goto bad;
72459 if (cmp == 0) {
72460 values[name-argnames] = value;
72461 break;
72462 }
72463 name++;
72464 }
72465 if (*name) continue;
72466 else {
72467 PyObject*** argname = argnames;
72468 while (argname != first_kw_arg) {
72469 int cmp = (**argname == key) ? 0 :
72470 #if !CYTHON_COMPILING_IN_PYPY0 && PY_MAJOR_VERSION2 >= 3
72471 (PyUnicode_GET_SIZE(**argname)(((PyUnicodeObject *)(**argname))->length) != PyUnicode_GET_SIZE(key)(((PyUnicodeObject *)(key))->length)) ? 1 :
72472 #endif
72473 PyUnicode_ComparePyUnicodeUCS4_Compare(**argname, key);
72474 if (cmp < 0 && unlikely(PyErr_Occurred())__builtin_expect(!!(PyErr_Occurred()), 0)) goto bad;
72475 if (cmp == 0) goto arg_passed_twice;
72476 argname++;
72477 }
72478 }
72479 } else
72480 goto invalid_keyword_type;
72481 if (kwds2) {
72482 if (unlikely(PyDict_SetItem(kwds2, key, value))__builtin_expect(!!(PyDict_SetItem(kwds2, key, value)), 0)) goto bad;
72483 } else {
72484 goto invalid_keyword;
72485 }
72486 }
72487 return 0;
72488arg_passed_twice:
72489 __Pyx_RaiseDoubleKeywordsError(function_name, key);
72490 goto bad;
72491invalid_keyword_type:
72492 PyErr_Format(PyExc_TypeError,
72493 "%.200s() keywords must be strings", function_name);
72494 goto bad;
72495invalid_keyword:
72496 PyErr_Format(PyExc_TypeError,
72497 #if PY_MAJOR_VERSION2 < 3
72498 "%.200s() got an unexpected keyword argument '%.200s'",
72499 function_name, PyString_AsString(key));
72500 #else
72501 "%s() got an unexpected keyword argument '%U'",
72502 function_name, key);
72503 #endif
72504bad:
72505 return -1;
72506}
72507
72508#if CYTHON_COMPILING_IN_CPYTHON1
72509static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
72510 PyObject *result;
72511 ternaryfunc call = func->ob_type->tp_call;
72512 if (unlikely(!call)__builtin_expect(!!(!call), 0))
72513 return PyObject_Call(func, arg, kw);
72514 if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))__builtin_expect(!!(((++((_PyThreadState_Current)->recursion_depth
) > _Py_CheckRecursionLimit) && _Py_CheckRecursiveCall
((char*)" while calling a Python object"))), 0)
)
72515 return NULL((void*)0);
72516 result = (*call)(func, arg, kw);
72517 Py_LeaveRecursiveCall()(--(_PyThreadState_Current)->recursion_depth);
72518 if (unlikely(!result)__builtin_expect(!!(!result), 0) && unlikely(!PyErr_Occurred())__builtin_expect(!!(!PyErr_Occurred()), 0)) {
72519 PyErr_SetString(
72520 PyExc_SystemError,
72521 "NULL result without error in PyObject_Call");
72522 }
72523 return result;
72524}
72525#endif
72526
72527#if CYTHON_COMPILING_IN_CPYTHON1
72528static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
72529 PyObject *self, *result;
72530 PyCFunction cfunc;
72531 cfunc = PyCFunction_GET_FUNCTION(func)(((PyCFunctionObject *)func) -> m_ml -> ml_meth);
72532 self = PyCFunction_GET_SELF(func)(((PyCFunctionObject *)func) -> m_self);
72533 if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))__builtin_expect(!!(((++((_PyThreadState_Current)->recursion_depth
) > _Py_CheckRecursionLimit) && _Py_CheckRecursiveCall
((char*)" while calling a Python object"))), 0)
)
72534 return NULL((void*)0);
72535 result = cfunc(self, arg);
72536 Py_LeaveRecursiveCall()(--(_PyThreadState_Current)->recursion_depth);
72537 if (unlikely(!result)__builtin_expect(!!(!result), 0) && unlikely(!PyErr_Occurred())__builtin_expect(!!(!PyErr_Occurred()), 0)) {
72538 PyErr_SetString(
72539 PyExc_SystemError,
72540 "NULL result without error in PyObject_Call");
72541 }
72542 return result;
72543}
72544#endif
72545
72546#if CYTHON_COMPILING_IN_CPYTHON1
72547static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
72548 PyObject *result;
72549 PyObject *args = PyTuple_New(1);
72550 if (unlikely(!args)__builtin_expect(!!(!args), 0)) return NULL((void*)0);
72551 Py_INCREF(arg)( ((PyObject*)(arg))->ob_refcnt++);
72552 PyTuple_SET_ITEM(args, 0, arg)(((PyTupleObject *)(args))->ob_item[0] = arg);
72553 result = __Pyx_PyObject_Call(func, args, NULL((void*)0));
72554 Py_DECREF(args)do { if ( --((PyObject*)(args))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(args)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(args)))); } while (0)
;
72555 return result;
72556}
72557static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
72558#ifdef __Pyx_CyFunction_USED1
72559 if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))__builtin_expect(!!(((((PyObject*)(func))->ob_type) == &
PyCFunction_Type) || ((((PyObject*)(func))->ob_type) == (__pyx_CyFunctionType
) || PyType_IsSubtype((((PyObject*)(func))->ob_type), (__pyx_CyFunctionType
)))), 1)
) {
72560#else
72561 if (likely(PyCFunction_Check(func))__builtin_expect(!!(((((PyObject*)(func))->ob_type) == &
PyCFunction_Type)), 1)
) {
72562#endif
72563 if (likely(PyCFunction_GET_FLAGS(func) & METH_O)__builtin_expect(!!((((PyCFunctionObject *)func) -> m_ml ->
ml_flags) & 0x0008), 1)
) {
72564 return __Pyx_PyObject_CallMethO(func, arg);
72565 }
72566 }
72567 return __Pyx__PyObject_CallOneArg(func, arg);
72568}
72569#else
72570static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
72571 PyObject *result;
72572 PyObject *args = PyTuple_Pack(1, arg);
72573 if (unlikely(!args)__builtin_expect(!!(!args), 0)) return NULL((void*)0);
72574 result = __Pyx_PyObject_Call(func, args, NULL((void*)0));
72575 Py_DECREF(args)do { if ( --((PyObject*)(args))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(args)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(args)))); } while (0)
;
72576 return result;
72577}
72578#endif
72579
72580#if CYTHON_COMPILING_IN_CPYTHON1
72581static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
72582#ifdef __Pyx_CyFunction_USED1
72583 if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))__builtin_expect(!!(((((PyObject*)(func))->ob_type) == &
PyCFunction_Type) || ((((PyObject*)(func))->ob_type) == (__pyx_CyFunctionType
) || PyType_IsSubtype((((PyObject*)(func))->ob_type), (__pyx_CyFunctionType
)))), 1)
) {
72584#else
72585 if (likely(PyCFunction_Check(func))__builtin_expect(!!(((((PyObject*)(func))->ob_type) == &
PyCFunction_Type)), 1)
) {
72586#endif
72587 if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)__builtin_expect(!!((((PyCFunctionObject *)func) -> m_ml ->
ml_flags) & 0x0004), 1)
) {
72588 return __Pyx_PyObject_CallMethO(func, NULL((void*)0));
72589 }
72590 }
72591 return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL((void*)0));
72592}
72593#endif
72594
72595static CYTHON_INLINE__inline__ PyObject *__Pyx_GetModuleGlobalName(PyObject *name) {
72596 PyObject *result;
72597#if CYTHON_COMPILING_IN_CPYTHON1
72598 result = PyDict_GetItem(__pyx_d, name);
72599 if (likely(result)__builtin_expect(!!(result), 1)) {
72600 Py_INCREF(result)( ((PyObject*)(result))->ob_refcnt++);
72601 } else {
72602#else
72603 result = PyObject_GetItem(__pyx_d, name);
72604 if (!result) {
72605 PyErr_Clear();
72606#endif
72607 result = __Pyx_GetBuiltinName(name);
72608 }
72609 return result;
72610}
72611
72612static CYTHON_INLINE__inline__ int __Pyx_CheckKeywordStrings(
72613 PyObject *kwdict,
72614 const char* function_name,
72615 int kw_allowed)
72616{
72617 PyObject* key = 0;
72618 Py_ssize_t pos = 0;
72619#if CYTHON_COMPILING_IN_PYPY0
72620 if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
72621 goto invalid_keyword;
72622 return 1;
72623#else
72624 while (PyDict_Next(kwdict, &pos, &key, 0)) {
72625 #if PY_MAJOR_VERSION2 < 3
72626 if (unlikely(!PyString_CheckExact(key))__builtin_expect(!!(!((((PyObject*)(key))->ob_type) == &
PyString_Type)), 0)
&& unlikely(!PyString_Check(key))__builtin_expect(!!(!((((((PyObject*)(key))->ob_type))->
tp_flags & ((1L<<27))) != 0)), 0)
)
72627 #endif
72628 if (unlikely(!PyUnicode_Check(key))__builtin_expect(!!(!((((((PyObject*)(key))->ob_type))->
tp_flags & ((1L<<28))) != 0)), 0)
)
72629 goto invalid_keyword_type;
72630 }
72631 if ((!kw_allowed) && unlikely(key)__builtin_expect(!!(key), 0))
72632 goto invalid_keyword;
72633 return 1;
72634invalid_keyword_type:
72635 PyErr_Format(PyExc_TypeError,
72636 "%.200s() keywords must be strings", function_name);
72637 return 0;
72638#endif
72639invalid_keyword:
72640 PyErr_Format(PyExc_TypeError,
72641 #if PY_MAJOR_VERSION2 < 3
72642 "%.200s() got an unexpected keyword argument '%.200s'",
72643 function_name, PyString_AsString(key));
72644 #else
72645 "%s() got an unexpected keyword argument '%U'",
72646 function_name, key);
72647 #endif
72648 return 0;
72649}
72650
72651static CYTHON_INLINE__inline__ void __Pyx_RaiseClosureNameError(const char *varname) {
72652 PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
72653}
72654
72655#if !CYTHON_COMPILING_IN_CPYTHON1
72656static CYTHON_INLINE__inline__ PyObject* __Pyx_PyBytes_Join_PyString_Join(PyObject* sep, PyObject* values) {
72657 return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL((void*)0));
72658}
72659#endif
72660
72661static CYTHON_INLINE__inline__ void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
72662#if CYTHON_COMPILING_IN_CPYTHON1
72663 PyObject *tmp_type, *tmp_value, *tmp_tb;
72664 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
72665 tmp_type = tstate->curexc_type;
72666 tmp_value = tstate->curexc_value;
72667 tmp_tb = tstate->curexc_traceback;
72668 tstate->curexc_type = type;
72669 tstate->curexc_value = value;
72670 tstate->curexc_traceback = tb;
72671 Py_XDECREF(tmp_type)do { if ((tmp_type) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_type))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_type)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_type)))); } while (0); } while (0)
;
72672 Py_XDECREF(tmp_value)do { if ((tmp_value) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_value))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(tmp_value)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp_value)))); } while (0); } while (0)
;
72673 Py_XDECREF(tmp_tb)do { if ((tmp_tb) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_tb)))); } while (0); } while (0)
;
72674#else
72675 PyErr_Restore(type, value, tb);
72676#endif
72677}
72678static CYTHON_INLINE__inline__ void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
72679#if CYTHON_COMPILING_IN_CPYTHON1
72680 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
72681 *type = tstate->curexc_type;
72682 *value = tstate->curexc_value;
72683 *tb = tstate->curexc_traceback;
72684 tstate->curexc_type = 0;
72685 tstate->curexc_value = 0;
72686 tstate->curexc_traceback = 0;
72687#else
72688 PyErr_Fetch(type, value, tb);
72689#endif
72690}
72691
72692#if PY_MAJOR_VERSION2 < 3
72693static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
72694 CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *cause) {
72695 Py_XINCREF(type)do { if ((type) == ((void*)0)) ; else ( ((PyObject*)(type))->
ob_refcnt++); } while (0)
;
72696 if (!value || value == Py_None(&_Py_NoneStruct))
72697 value = NULL((void*)0);
72698 else
72699 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
72700 if (!tb || tb == Py_None(&_Py_NoneStruct))
72701 tb = NULL((void*)0);
72702 else {
72703 Py_INCREF(tb)( ((PyObject*)(tb))->ob_refcnt++);
72704 if (!PyTraceBack_Check(tb)((((PyObject*)(tb))->ob_type) == &PyTraceBack_Type)) {
72705 PyErr_SetString(PyExc_TypeError,
72706 "raise: arg 3 must be a traceback or None");
72707 goto raise_error;
72708 }
72709 }
72710 if (PyType_Check(type)((((((PyObject*)(type))->ob_type))->tp_flags & ((1L
<<31))) != 0)
) {
72711#if CYTHON_COMPILING_IN_PYPY0
72712 if (!value) {
72713 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
72714 value = Py_None(&_Py_NoneStruct);
72715 }
72716#endif
72717 PyErr_NormalizeException(&type, &value, &tb);
72718 } else {
72719 if (value) {
72720 PyErr_SetString(PyExc_TypeError,
72721 "instance exception may not have a separate value");
72722 goto raise_error;
72723 }
72724 value = type;
72725 type = (PyObject*) Py_TYPE(type)(((PyObject*)(type))->ob_type);
72726 Py_INCREF(type)( ((PyObject*)(type))->ob_refcnt++);
72727 if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
72728 PyErr_SetString(PyExc_TypeError,
72729 "raise: exception class must be a subclass of BaseException");
72730 goto raise_error;
72731 }
72732 }
72733 __Pyx_ErrRestore(type, value, tb);
72734 return;
72735raise_error:
72736 Py_XDECREF(value)do { if ((value) == ((void*)0)) ; else do { if ( --((PyObject
*)(value))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(value)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(value)))); } while (0); } while (0)
;
72737 Py_XDECREF(type)do { if ((type) == ((void*)0)) ; else do { if ( --((PyObject*
)(type))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(type)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(type)))); } while (0); } while (0)
;
72738 Py_XDECREF(tb)do { if ((tb) == ((void*)0)) ; else do { if ( --((PyObject*)(
tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *
)(tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(tb)))); } while (0); } while (0)
;
72739 return;
72740}
72741#else
72742static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
72743 PyObject* owned_instance = NULL((void*)0);
72744 if (tb == Py_None(&_Py_NoneStruct)) {
72745 tb = 0;
72746 } else if (tb && !PyTraceBack_Check(tb)((((PyObject*)(tb))->ob_type) == &PyTraceBack_Type)) {
72747 PyErr_SetString(PyExc_TypeError,
72748 "raise: arg 3 must be a traceback or None");
72749 goto bad;
72750 }
72751 if (value == Py_None(&_Py_NoneStruct))
72752 value = 0;
72753 if (PyExceptionInstance_Check(type)((((type))->ob_type == &PyInstance_Type) || ((((type)->
ob_type)->tp_flags & ((1L<<30))) != 0))
) {
72754 if (value) {
72755 PyErr_SetString(PyExc_TypeError,
72756 "instance exception may not have a separate value");
72757 goto bad;
72758 }
72759 value = type;
72760 type = (PyObject*) Py_TYPE(value)(((PyObject*)(value))->ob_type);
72761 } else if (PyExceptionClass_Check(type)((((type))->ob_type == &PyClass_Type) || (((((((PyObject
*)((type)))->ob_type))->tp_flags & ((1L<<31))
) != 0) && ((((PyTypeObject*)(type))->tp_flags &
((1L<<30))) != 0)))
) {
72762 PyObject *instance_class = NULL((void*)0);
72763 if (value && PyExceptionInstance_Check(value)((((value))->ob_type == &PyInstance_Type) || ((((value
)->ob_type)->tp_flags & ((1L<<30))) != 0))
) {
72764 instance_class = (PyObject*) Py_TYPE(value)(((PyObject*)(value))->ob_type);
72765 if (instance_class != type) {
72766 int is_subclass = PyObject_IsSubclass(instance_class, type);
72767 if (!is_subclass) {
72768 instance_class = NULL((void*)0);
72769 } else if (unlikely(is_subclass == -1)__builtin_expect(!!(is_subclass == -1), 0)) {
72770 goto bad;
72771 } else {
72772 type = instance_class;
72773 }
72774 }
72775 }
72776 if (!instance_class) {
72777 PyObject *args;
72778 if (!value)
72779 args = PyTuple_New(0);
72780 else if (PyTuple_Check(value)((((((PyObject*)(value))->ob_type))->tp_flags & ((1L
<<26))) != 0)
) {
72781 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
72782 args = value;
72783 } else
72784 args = PyTuple_Pack(1, value);
72785 if (!args)
72786 goto bad;
72787 owned_instance = PyObject_Call(type, args, NULL((void*)0));
72788 Py_DECREF(args)do { if ( --((PyObject*)(args))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(args)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(args)))); } while (0)
;
72789 if (!owned_instance)
72790 goto bad;
72791 value = owned_instance;
72792 if (!PyExceptionInstance_Check(value)((((value))->ob_type == &PyInstance_Type) || ((((value
)->ob_type)->tp_flags & ((1L<<30))) != 0))
) {
72793 PyErr_Format(PyExc_TypeError,
72794 "calling %R should have returned an instance of "
72795 "BaseException, not %R",
72796 type, Py_TYPE(value)(((PyObject*)(value))->ob_type));
72797 goto bad;
72798 }
72799 }
72800 } else {
72801 PyErr_SetString(PyExc_TypeError,
72802 "raise: exception class must be a subclass of BaseException");
72803 goto bad;
72804 }
72805#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x03030000
72806 if (cause) {
72807#else
72808 if (cause && cause != Py_None(&_Py_NoneStruct)) {
72809#endif
72810 PyObject *fixed_cause;
72811 if (cause == Py_None(&_Py_NoneStruct)) {
72812 fixed_cause = NULL((void*)0);
72813 } else if (PyExceptionClass_Check(cause)((((cause))->ob_type == &PyClass_Type) || (((((((PyObject
*)((cause)))->ob_type))->tp_flags & ((1L<<31)
)) != 0) && ((((PyTypeObject*)(cause))->tp_flags &
((1L<<30))) != 0)))
) {
72814 fixed_cause = PyObject_CallObject(cause, NULL((void*)0));
72815 if (fixed_cause == NULL((void*)0))
72816 goto bad;
72817 } else if (PyExceptionInstance_Check(cause)((((cause))->ob_type == &PyInstance_Type) || ((((cause
)->ob_type)->tp_flags & ((1L<<30))) != 0))
) {
72818 fixed_cause = cause;
72819 Py_INCREF(fixed_cause)( ((PyObject*)(fixed_cause))->ob_refcnt++);
72820 } else {
72821 PyErr_SetString(PyExc_TypeError,
72822 "exception causes must derive from "
72823 "BaseException");
72824 goto bad;
72825 }
72826 PyException_SetCause(value, fixed_cause);
72827 }
72828 PyErr_SetObject(type, value);
72829 if (tb) {
72830#if CYTHON_COMPILING_IN_PYPY0
72831 PyObject *tmp_type, *tmp_value, *tmp_tb;
72832 PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
72833 Py_INCREF(tb)( ((PyObject*)(tb))->ob_refcnt++);
72834 PyErr_Restore(tmp_type, tmp_value, tb);
72835 Py_XDECREF(tmp_tb)do { if ((tmp_tb) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_tb)))); } while (0); } while (0)
;
72836#else
72837 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
72838 PyObject* tmp_tb = tstate->curexc_traceback;
72839 if (tb != tmp_tb) {
72840 Py_INCREF(tb)( ((PyObject*)(tb))->ob_refcnt++);
72841 tstate->curexc_traceback = tb;
72842 Py_XDECREF(tmp_tb)do { if ((tmp_tb) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_tb)))); } while (0); } while (0)
;
72843 }
72844#endif
72845 }
72846bad:
72847 Py_XDECREF(owned_instance)do { if ((owned_instance) == ((void*)0)) ; else do { if ( --(
(PyObject*)(owned_instance))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(owned_instance)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(owned_instance)))); } while
(0); } while (0)
;
72848 return;
72849}
72850#endif
72851
72852static CYTHON_INLINE__inline__ void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
72853 PyErr_Format(PyExc_ValueError,
72854 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T"z" "d)", expected);
72855}
72856
72857static CYTHON_INLINE__inline__ void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
72858 PyErr_Format(PyExc_ValueError,
72859 "need more than %" CYTHON_FORMAT_SSIZE_T"z" "d value%.1s to unpack",
72860 index, (index == 1) ? "" : "s");
72861}
72862
72863static CYTHON_INLINE__inline__ int __Pyx_IterFinish(void) {
72864#if CYTHON_COMPILING_IN_CPYTHON1
72865 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
72866 PyObject* exc_type = tstate->curexc_type;
72867 if (unlikely(exc_type)__builtin_expect(!!(exc_type), 0)) {
72868 if (likely(exc_type == PyExc_StopIteration)__builtin_expect(!!(exc_type == PyExc_StopIteration), 1) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) {
72869 PyObject *exc_value, *exc_tb;
72870 exc_value = tstate->curexc_value;
72871 exc_tb = tstate->curexc_traceback;
72872 tstate->curexc_type = 0;
72873 tstate->curexc_value = 0;
72874 tstate->curexc_traceback = 0;
72875 Py_DECREF(exc_type)do { if ( --((PyObject*)(exc_type))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(exc_type)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(exc_type)))); } while (
0)
;
72876 Py_XDECREF(exc_value)do { if ((exc_value) == ((void*)0)) ; else do { if ( --((PyObject
*)(exc_value))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(exc_value)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(exc_value)))); } while (0); } while (0)
;
72877 Py_XDECREF(exc_tb)do { if ((exc_tb) == ((void*)0)) ; else do { if ( --((PyObject
*)(exc_tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(exc_tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(exc_tb)))); } while (0); } while (0)
;
72878 return 0;
72879 } else {
72880 return -1;
72881 }
72882 }
72883 return 0;
72884#else
72885 if (unlikely(PyErr_Occurred())__builtin_expect(!!(PyErr_Occurred()), 0)) {
72886 if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))__builtin_expect(!!(PyErr_ExceptionMatches(PyExc_StopIteration
)), 1)
) {
72887 PyErr_Clear();
72888 return 0;
72889 } else {
72890 return -1;
72891 }
72892 }
72893 return 0;
72894#endif
72895}
72896
72897static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
72898 if (unlikely(retval)__builtin_expect(!!(retval), 0)) {
72899 Py_DECREF(retval)do { if ( --((PyObject*)(retval))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(retval)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(retval)))); } while (0)
;
72900 __Pyx_RaiseTooManyValuesError(expected);
72901 return -1;
72902 } else {
72903 return __Pyx_IterFinish();
72904 }
72905 return 0;
72906}
72907
72908#if CYTHON_COMPILING_IN_CPYTHON1
72909static CYTHON_INLINE__inline__ void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop, Py_ssize_t* _length) {
72910 Py_ssize_t start = *_start, stop = *_stop, length = *_length;
72911 if (start < 0) {
72912 start += length;
72913 if (start < 0)
72914 start = 0;
72915 }
72916 if (stop < 0)
72917 stop += length;
72918 else if (stop > length)
72919 stop = length;
72920 *_length = stop - start;
72921 *_start = start;
72922 *_stop = stop;
72923}
72924static CYTHON_INLINE__inline__ void __Pyx_copy_object_array(PyObject** CYTHON_RESTRICT__restrict__ src, PyObject** CYTHON_RESTRICT__restrict__ dest, Py_ssize_t length) {
72925 PyObject *v;
72926 Py_ssize_t i;
72927 for (i = 0; i < length; i++) {
72928 v = dest[i] = src[i];
72929 Py_INCREF(v)( ((PyObject*)(v))->ob_refcnt++);
72930 }
72931}
72932static CYTHON_INLINE__inline__ PyObject* __Pyx_PyList_GetSlice(
72933 PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
72934 PyObject* dest;
72935 Py_ssize_t length = PyList_GET_SIZE(src)(((PyVarObject*)(src))->ob_size);
72936 __Pyx_crop_slice(&start, &stop, &length);
72937 if (unlikely(length <= 0)__builtin_expect(!!(length <= 0), 0))
72938 return PyList_New(0);
72939 dest = PyList_New(length);
72940 if (unlikely(!dest)__builtin_expect(!!(!dest), 0))
72941 return NULL((void*)0);
72942 __Pyx_copy_object_array(
72943 ((PyListObject*)src)->ob_item + start,
72944 ((PyListObject*)dest)->ob_item,
72945 length);
72946 return dest;
72947}
72948static CYTHON_INLINE__inline__ PyObject* __Pyx_PyTuple_GetSlice(
72949 PyObject* src, Py_ssize_t start, Py_ssize_t stop) {
72950 PyObject* dest;
72951 Py_ssize_t length = PyTuple_GET_SIZE(src)(((PyVarObject*)(src))->ob_size);
72952 __Pyx_crop_slice(&start, &stop, &length);
72953 if (unlikely(length <= 0)__builtin_expect(!!(length <= 0), 0))
72954 return PyTuple_New(0);
72955 dest = PyTuple_New(length);
72956 if (unlikely(!dest)__builtin_expect(!!(!dest), 0))
72957 return NULL((void*)0);
72958 __Pyx_copy_object_array(
72959 ((PyTupleObject*)src)->ob_item + start,
72960 ((PyTupleObject*)dest)->ob_item,
72961 length);
72962 return dest;
72963}
72964#endif
72965
72966static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
72967 PyObject* fake_module;
72968 PyTypeObject* cached_type = NULL((void*)0);
72969 fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI"0_23_4");
72970 if (!fake_module) return NULL((void*)0);
72971 Py_INCREF(fake_module)( ((PyObject*)(fake_module))->ob_refcnt++);
72972 cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
72973 if (cached_type) {
72974 if (!PyType_Check((PyObject*)cached_type)((((((PyObject*)((PyObject*)cached_type))->ob_type))->tp_flags
& ((1L<<31))) != 0)
) {
72975 PyErr_Format(PyExc_TypeError,
72976 "Shared Cython type %.200s is not a type object",
72977 type->tp_name);
72978 goto bad;
72979 }
72980 if (cached_type->tp_basicsize != type->tp_basicsize) {
72981 PyErr_Format(PyExc_TypeError,
72982 "Shared Cython type %.200s has the wrong size, try recompiling",
72983 type->tp_name);
72984 goto bad;
72985 }
72986 } else {
72987 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
72988 PyErr_Clear();
72989 if (PyType_Ready(type) < 0) goto bad;
72990 if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
72991 goto bad;
72992 Py_INCREF(type)( ((PyObject*)(type))->ob_refcnt++);
72993 cached_type = type;
72994 }
72995done:
72996 Py_DECREF(fake_module)do { if ( --((PyObject*)(fake_module))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(fake_module)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(fake_module)))); } while
(0)
;
72997 return cached_type;
72998bad:
72999 Py_XDECREF(cached_type)do { if ((cached_type) == ((void*)0)) ; else do { if ( --((PyObject
*)(cached_type))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(cached_type)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(cached_type)))); } while (0); } while (0)
;
73000 cached_type = NULL((void*)0);
73001 goto done;
73002}
73003
73004static PyObject *
73005__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED__attribute__ ((__unused__)) void *closure)
73006{
73007 if (unlikely(op->func_doc == NULL)__builtin_expect(!!(op->func_doc == ((void*)0)), 0)) {
73008 if (op->func.m_ml->ml_doc) {
73009#if PY_MAJOR_VERSION2 >= 3
73010 op->func_doc = PyUnicode_FromStringPyUnicodeUCS4_FromString(op->func.m_ml->ml_doc);
73011#else
73012 op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
73013#endif
73014 if (unlikely(op->func_doc == NULL)__builtin_expect(!!(op->func_doc == ((void*)0)), 0))
73015 return NULL((void*)0);
73016 } else {
73017 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
73018 return Py_None(&_Py_NoneStruct);
73019 }
73020 }
73021 Py_INCREF(op->func_doc)( ((PyObject*)(op->func_doc))->ob_refcnt++);
73022 return op->func_doc;
73023}
73024static int
73025__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value)
73026{
73027 PyObject *tmp = op->func_doc;
73028 if (value == NULL((void*)0)) {
73029 value = Py_None(&_Py_NoneStruct);
73030 }
73031 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
73032 op->func_doc = value;
73033 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
73034 return 0;
73035}
73036static PyObject *
73037__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op)
73038{
73039 if (unlikely(op->func_name == NULL)__builtin_expect(!!(op->func_name == ((void*)0)), 0)) {
73040#if PY_MAJOR_VERSION2 >= 3
73041 op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
73042#else
73043 op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
73044#endif
73045 if (unlikely(op->func_name == NULL)__builtin_expect(!!(op->func_name == ((void*)0)), 0))
73046 return NULL((void*)0);
73047 }
73048 Py_INCREF(op->func_name)( ((PyObject*)(op->func_name))->ob_refcnt++);
73049 return op->func_name;
73050}
73051static int
73052__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value)
73053{
73054 PyObject *tmp;
73055#if PY_MAJOR_VERSION2 >= 3
73056 if (unlikely(value == NULL || !PyUnicode_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<28))) !=
0)), 0)
) {
73057#else
73058 if (unlikely(value == NULL || !PyString_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<27))) !=
0)), 0)
) {
73059#endif
73060 PyErr_SetString(PyExc_TypeError,
73061 "__name__ must be set to a string object");
73062 return -1;
73063 }
73064 tmp = op->func_name;
73065 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
73066 op->func_name = value;
73067 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
73068 return 0;
73069}
73070static PyObject *
73071__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op)
73072{
73073 Py_INCREF(op->func_qualname)( ((PyObject*)(op->func_qualname))->ob_refcnt++);
73074 return op->func_qualname;
73075}
73076static int
73077__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value)
73078{
73079 PyObject *tmp;
73080#if PY_MAJOR_VERSION2 >= 3
73081 if (unlikely(value == NULL || !PyUnicode_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<28))) !=
0)), 0)
) {
73082#else
73083 if (unlikely(value == NULL || !PyString_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<27))) !=
0)), 0)
) {
73084#endif
73085 PyErr_SetString(PyExc_TypeError,
73086 "__qualname__ must be set to a string object");
73087 return -1;
73088 }
73089 tmp = op->func_qualname;
73090 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
73091 op->func_qualname = value;
73092 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
73093 return 0;
73094}
73095static PyObject *
73096__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED__attribute__ ((__unused__)) void *closure)
73097{
73098 PyObject *self;
73099 self = m->func_closure;
73100 if (self == NULL((void*)0))
73101 self = Py_None(&_Py_NoneStruct);
73102 Py_INCREF(self)( ((PyObject*)(self))->ob_refcnt++);
73103 return self;
73104}
73105static PyObject *
73106__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op)
73107{
73108 if (unlikely(op->func_dict == NULL)__builtin_expect(!!(op->func_dict == ((void*)0)), 0)) {
73109 op->func_dict = PyDict_New();
73110 if (unlikely(op->func_dict == NULL)__builtin_expect(!!(op->func_dict == ((void*)0)), 0))
73111 return NULL((void*)0);
73112 }
73113 Py_INCREF(op->func_dict)( ((PyObject*)(op->func_dict))->ob_refcnt++);
73114 return op->func_dict;
73115}
73116static int
73117__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value)
73118{
73119 PyObject *tmp;
73120 if (unlikely(value == NULL)__builtin_expect(!!(value == ((void*)0)), 0)) {
73121 PyErr_SetString(PyExc_TypeError,
73122 "function's dictionary may not be deleted");
73123 return -1;
73124 }
73125 if (unlikely(!PyDict_Check(value))__builtin_expect(!!(!((((((PyObject*)(value))->ob_type))->
tp_flags & ((1L<<29))) != 0)), 0)
) {
73126 PyErr_SetString(PyExc_TypeError,
73127 "setting function's dictionary to a non-dict");
73128 return -1;
73129 }
73130 tmp = op->func_dict;
73131 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
73132 op->func_dict = value;
73133 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
73134 return 0;
73135}
73136static PyObject *
73137__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op)
73138{
73139 Py_INCREF(op->func_globals)( ((PyObject*)(op->func_globals))->ob_refcnt++);
73140 return op->func_globals;
73141}
73142static PyObject *
73143__Pyx_CyFunction_get_closure(CYTHON_UNUSED__attribute__ ((__unused__)) __pyx_CyFunctionObject *op)
73144{
73145 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
73146 return Py_None(&_Py_NoneStruct);
73147}
73148static PyObject *
73149__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op)
73150{
73151 PyObject* result = (op->func_code) ? op->func_code : Py_None(&_Py_NoneStruct);
73152 Py_INCREF(result)( ((PyObject*)(result))->ob_refcnt++);
73153 return result;
73154}
73155static int
73156__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
73157 int result = 0;
73158 PyObject *res = op->defaults_getter((PyObject *) op);
73159 if (unlikely(!res)__builtin_expect(!!(!res), 0))
73160 return -1;
73161 #if CYTHON_COMPILING_IN_CPYTHON1
73162 op->defaults_tuple = PyTuple_GET_ITEM(res, 0)(((PyTupleObject *)(res))->ob_item[0]);
73163 Py_INCREF(op->defaults_tuple)( ((PyObject*)(op->defaults_tuple))->ob_refcnt++);
73164 op->defaults_kwdict = PyTuple_GET_ITEM(res, 1)(((PyTupleObject *)(res))->ob_item[1]);
73165 Py_INCREF(op->defaults_kwdict)( ((PyObject*)(op->defaults_kwdict))->ob_refcnt++);
73166 #else
73167 op->defaults_tuple = PySequence_ITEM(res, 0)( (((PyObject*)(res))->ob_type)->tp_as_sequence->sq_item
(res, 0) )
;
73168 if (unlikely(!op->defaults_tuple)__builtin_expect(!!(!op->defaults_tuple), 0)) result = -1;
73169 else {
73170 op->defaults_kwdict = PySequence_ITEM(res, 1)( (((PyObject*)(res))->ob_type)->tp_as_sequence->sq_item
(res, 1) )
;
73171 if (unlikely(!op->defaults_kwdict)__builtin_expect(!!(!op->defaults_kwdict), 0)) result = -1;
73172 }
73173 #endif
73174 Py_DECREF(res)do { if ( --((PyObject*)(res))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(res)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(res)))); } while (0)
;
73175 return result;
73176}
73177static int
73178__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value) {
73179 PyObject* tmp;
73180 if (!value) {
73181 value = Py_None(&_Py_NoneStruct);
73182 } else if (value != Py_None(&_Py_NoneStruct) && !PyTuple_Check(value)((((((PyObject*)(value))->ob_type))->tp_flags & ((1L
<<26))) != 0)
) {
73183 PyErr_SetString(PyExc_TypeError,
73184 "__defaults__ must be set to a tuple object");
73185 return -1;
73186 }
73187 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
73188 tmp = op->defaults_tuple;
73189 op->defaults_tuple = value;
73190 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
73191 return 0;
73192}
73193static PyObject *
73194__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op) {
73195 PyObject* result = op->defaults_tuple;
73196 if (unlikely(!result)__builtin_expect(!!(!result), 0)) {
73197 if (op->defaults_getter) {
73198 if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL((void*)0);
73199 result = op->defaults_tuple;
73200 } else {
73201 result = Py_None(&_Py_NoneStruct);
73202 }
73203 }
73204 Py_INCREF(result)( ((PyObject*)(result))->ob_refcnt++);
73205 return result;
73206}
73207static int
73208__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value) {
73209 PyObject* tmp;
73210 if (!value) {
73211 value = Py_None(&_Py_NoneStruct);
73212 } else if (value != Py_None(&_Py_NoneStruct) && !PyDict_Check(value)((((((PyObject*)(value))->ob_type))->tp_flags & ((1L
<<29))) != 0)
) {
73213 PyErr_SetString(PyExc_TypeError,
73214 "__kwdefaults__ must be set to a dict object");
73215 return -1;
73216 }
73217 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
73218 tmp = op->defaults_kwdict;
73219 op->defaults_kwdict = value;
73220 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
73221 return 0;
73222}
73223static PyObject *
73224__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op) {
73225 PyObject* result = op->defaults_kwdict;
73226 if (unlikely(!result)__builtin_expect(!!(!result), 0)) {
73227 if (op->defaults_getter) {
73228 if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL((void*)0);
73229 result = op->defaults_kwdict;
73230 } else {
73231 result = Py_None(&_Py_NoneStruct);
73232 }
73233 }
73234 Py_INCREF(result)( ((PyObject*)(result))->ob_refcnt++);
73235 return result;
73236}
73237static int
73238__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value) {
73239 PyObject* tmp;
73240 if (!value || value == Py_None(&_Py_NoneStruct)) {
73241 value = NULL((void*)0);
73242 } else if (!PyDict_Check(value)((((((PyObject*)(value))->ob_type))->tp_flags & ((1L
<<29))) != 0)
) {
73243 PyErr_SetString(PyExc_TypeError,
73244 "__annotations__ must be set to a dict object");
73245 return -1;
73246 }
73247 Py_XINCREF(value)do { if ((value) == ((void*)0)) ; else ( ((PyObject*)(value))
->ob_refcnt++); } while (0)
;
73248 tmp = op->func_annotations;
73249 op->func_annotations = value;
73250 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
73251 return 0;
73252}
73253static PyObject *
73254__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op) {
73255 PyObject* result = op->func_annotations;
73256 if (unlikely(!result)__builtin_expect(!!(!result), 0)) {
73257 result = PyDict_New();
73258 if (unlikely(!result)__builtin_expect(!!(!result), 0)) return NULL((void*)0);
73259 op->func_annotations = result;
73260 }
73261 Py_INCREF(result)( ((PyObject*)(result))->ob_refcnt++);
73262 return result;
73263}
73264static PyGetSetDef __pyx_CyFunction_getsets[] = {
73265 {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
73266 {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
73267 {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
73268 {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
73269 {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
73270 {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
73271 {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
73272 {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
73273 {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
73274 {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
73275 {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
73276 {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
73277 {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
73278 {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
73279 {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
73280 {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
73281 {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
73282 {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
73283 {0, 0, 0, 0, 0}
73284};
73285static PyMemberDef __pyx_CyFunction_members[] = {
73286 {(char *) "__module__", T_OBJECT6, offsetof(__pyx_CyFunctionObject, func.m_module)__builtin_offsetof(__pyx_CyFunctionObject, func.m_module), PY_WRITE_RESTRICTED4, 0},
73287 {0, 0, 0, 0, 0}
73288};
73289static PyObject *
73290__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED__attribute__ ((__unused__)) PyObject *args)
73291{
73292#if PY_MAJOR_VERSION2 >= 3
73293 return PyUnicode_FromStringPyUnicodeUCS4_FromString(m->func.m_ml->ml_name);
73294#else
73295 return PyString_FromString(m->func.m_ml->ml_name);
73296#endif
73297}
73298static PyMethodDef __pyx_CyFunction_methods[] = {
73299 {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS0x0001, 0},
73300 {0, 0, 0, 0}
73301};
73302#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030500A0
73303#define __Pyx_CyFunction_weakreflist(cyfunc)((cyfunc)->func_weakreflist) ((cyfunc)->func_weakreflist)
73304#else
73305#define __Pyx_CyFunction_weakreflist(cyfunc)((cyfunc)->func_weakreflist) ((cyfunc)->func.m_weakreflist)
73306#endif
73307static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname,
73308 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
73309 __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type)( (__pyx_CyFunctionObject *) _PyObject_GC_New(type) );
73310 if (op == NULL((void*)0))
73311 return NULL((void*)0);
73312 op->flags = flags;
73313 __Pyx_CyFunction_weakreflist(op)((op)->func_weakreflist) = NULL((void*)0);
73314 op->func.m_ml = ml;
73315 op->func.m_self = (PyObject *) op;
73316 Py_XINCREF(closure)do { if ((closure) == ((void*)0)) ; else ( ((PyObject*)(closure
))->ob_refcnt++); } while (0)
;
73317 op->func_closure = closure;
73318 Py_XINCREF(module)do { if ((module) == ((void*)0)) ; else ( ((PyObject*)(module
))->ob_refcnt++); } while (0)
;
73319 op->func.m_module = module;
73320 op->func_dict = NULL((void*)0);
73321 op->func_name = NULL((void*)0);
73322 Py_INCREF(qualname)( ((PyObject*)(qualname))->ob_refcnt++);
73323 op->func_qualname = qualname;
73324 op->func_doc = NULL((void*)0);
73325 op->func_classobj = NULL((void*)0);
73326 op->func_globals = globals;
73327 Py_INCREF(op->func_globals)( ((PyObject*)(op->func_globals))->ob_refcnt++);
73328 Py_XINCREF(code)do { if ((code) == ((void*)0)) ; else ( ((PyObject*)(code))->
ob_refcnt++); } while (0)
;
73329 op->func_code = code;
73330 op->defaults_pyobjects = 0;
73331 op->defaults = NULL((void*)0);
73332 op->defaults_tuple = NULL((void*)0);
73333 op->defaults_kwdict = NULL((void*)0);
73334 op->defaults_getter = NULL((void*)0);
73335 op->func_annotations = NULL((void*)0);
73336 PyObject_GC_Track(op);
73337 return (PyObject *) op;
73338}
73339static int
73340__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
73341{
73342 Py_CLEAR(m->func_closure)do { if (m->func_closure) { PyObject *_py_tmp = (PyObject *
)(m->func_closure); (m->func_closure) = ((void*)0); do {
if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
73343 Py_CLEAR(m->func.m_module)do { if (m->func.m_module) { PyObject *_py_tmp = (PyObject
*)(m->func.m_module); (m->func.m_module) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
73344 Py_CLEAR(m->func_dict)do { if (m->func_dict) { PyObject *_py_tmp = (PyObject *)(
m->func_dict); (m->func_dict) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
73345 Py_CLEAR(m->func_name)do { if (m->func_name) { PyObject *_py_tmp = (PyObject *)(
m->func_name); (m->func_name) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
73346 Py_CLEAR(m->func_qualname)do { if (m->func_qualname) { PyObject *_py_tmp = (PyObject
*)(m->func_qualname); (m->func_qualname) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
73347 Py_CLEAR(m->func_doc)do { if (m->func_doc) { PyObject *_py_tmp = (PyObject *)(m
->func_doc); (m->func_doc) = ((void*)0); do { if ( --((
PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
73348 Py_CLEAR(m->func_globals)do { if (m->func_globals) { PyObject *_py_tmp = (PyObject *
)(m->func_globals); (m->func_globals) = ((void*)0); do {
if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
73349 Py_CLEAR(m->func_code)do { if (m->func_code) { PyObject *_py_tmp = (PyObject *)(
m->func_code); (m->func_code) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
73350 Py_CLEAR(m->func_classobj)do { if (m->func_classobj) { PyObject *_py_tmp = (PyObject
*)(m->func_classobj); (m->func_classobj) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
73351 Py_CLEAR(m->defaults_tuple)do { if (m->defaults_tuple) { PyObject *_py_tmp = (PyObject
*)(m->defaults_tuple); (m->defaults_tuple) = ((void*)0
); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
73352 Py_CLEAR(m->defaults_kwdict)do { if (m->defaults_kwdict) { PyObject *_py_tmp = (PyObject
*)(m->defaults_kwdict); (m->defaults_kwdict) = ((void*
)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
73353 Py_CLEAR(m->func_annotations)do { if (m->func_annotations) { PyObject *_py_tmp = (PyObject
*)(m->func_annotations); (m->func_annotations) = ((void
*)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
73354 if (m->defaults) {
73355 PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m)((PyObject * *)(((__pyx_CyFunctionObject *) (m))->defaults
))
;
73356 int i;
73357 for (i = 0; i < m->defaults_pyobjects; i++)
73358 Py_XDECREF(pydefaults[i])do { if ((pydefaults[i]) == ((void*)0)) ; else do { if ( --((
PyObject*)(pydefaults[i]))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(pydefaults[i])))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(pydefaults[i])))); } while (0); }
while (0)
;
73359 PyMem_Free(m->defaults);
73360 m->defaults = NULL((void*)0);
73361 }
73362 return 0;
73363}
73364static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
73365{
73366 PyObject_GC_UnTrack(m);
73367 if (__Pyx_CyFunction_weakreflist(m)((m)->func_weakreflist) != NULL((void*)0))
73368 PyObject_ClearWeakRefs((PyObject *) m);
73369 __Pyx_CyFunction_clear(m);
73370 PyObject_GC_Del(m);
73371}
73372static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
73373{
73374 Py_VISIT(m->func_closure)do { if (m->func_closure) { int vret = visit((PyObject *)(
m->func_closure), arg); if (vret) return vret; } } while (
0)
;
73375 Py_VISIT(m->func.m_module)do { if (m->func.m_module) { int vret = visit((PyObject *)
(m->func.m_module), arg); if (vret) return vret; } } while
(0)
;
73376 Py_VISIT(m->func_dict)do { if (m->func_dict) { int vret = visit((PyObject *)(m->
func_dict), arg); if (vret) return vret; } } while (0)
;
73377 Py_VISIT(m->func_name)do { if (m->func_name) { int vret = visit((PyObject *)(m->
func_name), arg); if (vret) return vret; } } while (0)
;
73378 Py_VISIT(m->func_qualname)do { if (m->func_qualname) { int vret = visit((PyObject *)
(m->func_qualname), arg); if (vret) return vret; } } while
(0)
;
73379 Py_VISIT(m->func_doc)do { if (m->func_doc) { int vret = visit((PyObject *)(m->
func_doc), arg); if (vret) return vret; } } while (0)
;
73380 Py_VISIT(m->func_globals)do { if (m->func_globals) { int vret = visit((PyObject *)(
m->func_globals), arg); if (vret) return vret; } } while (
0)
;
73381 Py_VISIT(m->func_code)do { if (m->func_code) { int vret = visit((PyObject *)(m->
func_code), arg); if (vret) return vret; } } while (0)
;
73382 Py_VISIT(m->func_classobj)do { if (m->func_classobj) { int vret = visit((PyObject *)
(m->func_classobj), arg); if (vret) return vret; } } while
(0)
;
73383 Py_VISIT(m->defaults_tuple)do { if (m->defaults_tuple) { int vret = visit((PyObject *
)(m->defaults_tuple), arg); if (vret) return vret; } } while
(0)
;
73384 Py_VISIT(m->defaults_kwdict)do { if (m->defaults_kwdict) { int vret = visit((PyObject *
)(m->defaults_kwdict), arg); if (vret) return vret; } } while
(0)
;
73385 if (m->defaults) {
73386 PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m)((PyObject * *)(((__pyx_CyFunctionObject *) (m))->defaults
))
;
73387 int i;
73388 for (i = 0; i < m->defaults_pyobjects; i++)
73389 Py_VISIT(pydefaults[i])do { if (pydefaults[i]) { int vret = visit((PyObject *)(pydefaults
[i]), arg); if (vret) return vret; } } while (0)
;
73390 }
73391 return 0;
73392}
73393static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
73394{
73395 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
73396 if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD0x01) {
73397 Py_INCREF(func)( ((PyObject*)(func))->ob_refcnt++);
73398 return func;
73399 }
73400 if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD0x02) {
73401 if (type == NULL((void*)0))
73402 type = (PyObject *)(Py_TYPE(obj)(((PyObject*)(obj))->ob_type));
73403 return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)))PyMethod_New(func, type, (PyObject *)((((PyObject*)(type))->
ob_type)))
;
73404 }
73405 if (obj == Py_None(&_Py_NoneStruct))
73406 obj = NULL((void*)0);
73407 return __Pyx_PyMethod_New(func, obj, type)PyMethod_New(func, obj, type);
73408}
73409static PyObject*
73410__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
73411{
73412#if PY_MAJOR_VERSION2 >= 3
73413 return PyUnicode_FromFormatPyUnicodeUCS4_FromFormat("<cyfunction %U at %p>",
73414 op->func_qualname, (void *)op);
73415#else
73416 return PyString_FromFormat("<cyfunction %s at %p>",
73417 PyString_AsString(op->func_qualname), (void *)op);
73418#endif
73419}
73420#if CYTHON_COMPILING_IN_PYPY0
73421static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
73422 PyCFunctionObject* f = (PyCFunctionObject*)func;
73423 PyCFunction meth = f->m_ml->ml_meth;
73424 PyObject *self = f->m_self;
73425 Py_ssize_t size;
73426 switch (f->m_ml->ml_flags & (METH_VARARGS0x0001 | METH_KEYWORDS0x0002 | METH_NOARGS0x0004 | METH_O0x0008)) {
73427 case METH_VARARGS0x0001:
73428 if (likely(kw == NULL || PyDict_Size(kw) == 0)__builtin_expect(!!(kw == ((void*)0) || PyDict_Size(kw) == 0)
, 1)
)
73429 return (*meth)(self, arg);
73430 break;
73431 case METH_VARARGS0x0001 | METH_KEYWORDS0x0002:
73432 return (*(PyCFunctionWithKeywords)meth)(self, arg, kw);
73433 case METH_NOARGS0x0004:
73434 if (likely(kw == NULL || PyDict_Size(kw) == 0)__builtin_expect(!!(kw == ((void*)0) || PyDict_Size(kw) == 0)
, 1)
) {
73435 size = PyTuple_GET_SIZE(arg)(((PyVarObject*)(arg))->ob_size);
73436 if (likely(size == 0)__builtin_expect(!!(size == 0), 1))
73437 return (*meth)(self, NULL((void*)0));
73438 PyErr_Format(PyExc_TypeError,
73439 "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T"z" "d given)",
73440 f->m_ml->ml_name, size);
73441 return NULL((void*)0);
73442 }
73443 break;
73444 case METH_O0x0008:
73445 if (likely(kw == NULL || PyDict_Size(kw) == 0)__builtin_expect(!!(kw == ((void*)0) || PyDict_Size(kw) == 0)
, 1)
) {
73446 size = PyTuple_GET_SIZE(arg)(((PyVarObject*)(arg))->ob_size);
73447 if (likely(size == 1)__builtin_expect(!!(size == 1), 1)) {
73448 PyObject *result, *arg0 = PySequence_ITEM(arg, 0)( (((PyObject*)(arg))->ob_type)->tp_as_sequence->sq_item
(arg, 0) )
;
73449 if (unlikely(!arg0)__builtin_expect(!!(!arg0), 0)) return NULL((void*)0);
73450 result = (*meth)(self, arg0);
73451 Py_DECREF(arg0)do { if ( --((PyObject*)(arg0))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(arg0)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(arg0)))); } while (0)
;
73452 return result;
73453 }
73454 PyErr_Format(PyExc_TypeError,
73455 "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T"z" "d given)",
73456 f->m_ml->ml_name, size);
73457 return NULL((void*)0);
73458 }
73459 break;
73460 default:
73461 PyErr_SetString(PyExc_SystemError, "Bad call flags in "
73462 "__Pyx_CyFunction_Call. METH_OLDARGS is no "
73463 "longer supported!");
73464 return NULL((void*)0);
73465 }
73466 PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
73467 f->m_ml->ml_name);
73468 return NULL((void*)0);
73469}
73470#else
73471static PyObject * __Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
73472 return PyCFunction_Call(func, arg, kw);
73473}
73474#endif
73475static PyTypeObject __pyx_CyFunctionType_type = {
73476 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
73477 "cython_function_or_method",
73478 sizeof(__pyx_CyFunctionObject),
73479 0,
73480 (destructor) __Pyx_CyFunction_dealloc,
73481 0,
73482 0,
73483 0,
73484#if PY_MAJOR_VERSION2 < 3
73485 0,
73486#else
73487 0,
73488#endif
73489 (reprfunc) __Pyx_CyFunction_repr,
73490 0,
73491 0,
73492 0,
73493 0,
73494 __Pyx_CyFunction_Call,
73495 0,
73496 0,
73497 0,
73498 0,
73499 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
| Py_TPFLAGS_HAVE_GC(1L<<14),
73500 0,
73501 (traverseproc) __Pyx_CyFunction_traverse,
73502 (inquiry) __Pyx_CyFunction_clear,
73503 0,
73504#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030500A0
73505 offsetof(__pyx_CyFunctionObject, func_weakreflist)__builtin_offsetof(__pyx_CyFunctionObject, func_weakreflist),
73506#else
73507 offsetof(PyCFunctionObject, m_weakreflist)__builtin_offsetof(PyCFunctionObject, m_weakreflist),
73508#endif
73509 0,
73510 0,
73511 __pyx_CyFunction_methods,
73512 __pyx_CyFunction_members,
73513 __pyx_CyFunction_getsets,
73514 0,
73515 0,
73516 __Pyx_CyFunction_descr_get,
73517 0,
73518 offsetof(__pyx_CyFunctionObject, func_dict)__builtin_offsetof(__pyx_CyFunctionObject, func_dict),
73519 0,
73520 0,
73521 0,
73522 0,
73523 0,
73524 0,
73525 0,
73526 0,
73527 0,
73528 0,
73529 0,
73530 0,
73531#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
73532 0,
73533#endif
73534};
73535static int __pyx_CyFunction_init(void) {
73536#if !CYTHON_COMPILING_IN_PYPY0
73537 __pyx_CyFunctionType_type.tp_call = PyCFunction_Call;
73538#endif
73539 __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
73540 if (__pyx_CyFunctionType == NULL((void*)0)) {
73541 return -1;
73542 }
73543 return 0;
73544}
73545static CYTHON_INLINE__inline__ void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
73546 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
73547 m->defaults = PyMem_Malloc(size);
73548 if (!m->defaults)
73549 return PyErr_NoMemory();
73550 memset(m->defaults, 0, size);
73551 m->defaults_pyobjects = pyobjects;
73552 return m->defaults;
73553}
73554static CYTHON_INLINE__inline__ void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
73555 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
73556 m->defaults_tuple = tuple;
73557 Py_INCREF(tuple)( ((PyObject*)(tuple))->ob_refcnt++);
73558}
73559static CYTHON_INLINE__inline__ void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
73560 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
73561 m->defaults_kwdict = dict;
73562 Py_INCREF(dict)( ((PyObject*)(dict))->ob_refcnt++);
73563}
73564static CYTHON_INLINE__inline__ void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
73565 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
73566 m->func_annotations = dict;
73567 Py_INCREF(dict)( ((PyObject*)(dict))->ob_refcnt++);
73568}
73569
73570static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
73571 PyObject *r;
73572 if (!j) return NULL((void*)0);
73573 r = PyObject_GetItem(o, j);
73574 Py_DECREF(j)do { if ( --((PyObject*)(j))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(j)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(j)))); } while (0)
;
73575 return r;
73576}
73577static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
73578 CYTHON_NCP_UNUSED int wraparound,
73579 CYTHON_NCP_UNUSED int boundscheck) {
73580#if CYTHON_COMPILING_IN_CPYTHON1
73581 if (wraparound & unlikely(i < 0)__builtin_expect(!!(i < 0), 0)) i += PyList_GET_SIZE(o)(((PyVarObject*)(o))->ob_size);
73582 if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))__builtin_expect(!!((0 <= i) & (i < (((PyVarObject*
)(o))->ob_size))), 1)
) {
73583 PyObject *r = PyList_GET_ITEM(o, i)(((PyListObject *)(o))->ob_item[i]);
73584 Py_INCREF(r)( ((PyObject*)(r))->ob_refcnt++);
73585 return r;
73586 }
73587 return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
73588#else
73589 return PySequence_GetItem(o, i);
73590#endif
73591}
73592static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
73593 CYTHON_NCP_UNUSED int wraparound,
73594 CYTHON_NCP_UNUSED int boundscheck) {
73595#if CYTHON_COMPILING_IN_CPYTHON1
73596 if (wraparound & unlikely(i < 0)__builtin_expect(!!(i < 0), 0)) i += PyTuple_GET_SIZE(o)(((PyVarObject*)(o))->ob_size);
73597 if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))__builtin_expect(!!((0 <= i) & (i < (((PyVarObject*
)(o))->ob_size))), 1)
) {
73598 PyObject *r = PyTuple_GET_ITEM(o, i)(((PyTupleObject *)(o))->ob_item[i]);
73599 Py_INCREF(r)( ((PyObject*)(r))->ob_refcnt++);
73600 return r;
73601 }
73602 return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
73603#else
73604 return PySequence_GetItem(o, i);
73605#endif
73606}
73607static CYTHON_INLINE__inline__ PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
73608 CYTHON_NCP_UNUSED int wraparound,
73609 CYTHON_NCP_UNUSED int boundscheck) {
73610#if CYTHON_COMPILING_IN_CPYTHON1
73611 if (is_list || PyList_CheckExact(o)((((PyObject*)(o))->ob_type) == &PyList_Type)) {
73612 Py_ssize_t n = ((!wraparound) | likely(i >= 0)__builtin_expect(!!(i >= 0), 1)) ? i : i + PyList_GET_SIZE(o)(((PyVarObject*)(o))->ob_size);
73613 if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o)))__builtin_expect(!!((n >= 0) & (n < (((PyVarObject*
)(o))->ob_size))), 1)
)) {
73614 PyObject *r = PyList_GET_ITEM(o, n)(((PyListObject *)(o))->ob_item[n]);
73615 Py_INCREF(r)( ((PyObject*)(r))->ob_refcnt++);
73616 return r;
73617 }
73618 }
73619 else if (PyTuple_CheckExact(o)((((PyObject*)(o))->ob_type) == &PyTuple_Type)) {
73620 Py_ssize_t n = ((!wraparound) | likely(i >= 0)__builtin_expect(!!(i >= 0), 1)) ? i : i + PyTuple_GET_SIZE(o)(((PyVarObject*)(o))->ob_size);
73621 if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))__builtin_expect(!!((n >= 0) & (n < (((PyVarObject*
)(o))->ob_size))), 1)
) {
73622 PyObject *r = PyTuple_GET_ITEM(o, n)(((PyTupleObject *)(o))->ob_item[n]);
73623 Py_INCREF(r)( ((PyObject*)(r))->ob_refcnt++);
73624 return r;
73625 }
73626 } else {
73627 PySequenceMethods *m = Py_TYPE(o)(((PyObject*)(o))->ob_type)->tp_as_sequence;
73628 if (likely(m && m->sq_item)__builtin_expect(!!(m && m->sq_item), 1)) {
73629 if (wraparound && unlikely(i < 0)__builtin_expect(!!(i < 0), 0) && likely(m->sq_length)__builtin_expect(!!(m->sq_length), 1)) {
73630 Py_ssize_t l = m->sq_length(o);
73631 if (likely(l >= 0)__builtin_expect(!!(l >= 0), 1)) {
73632 i += l;
73633 } else {
73634 if (PyErr_ExceptionMatches(PyExc_OverflowError))
73635 PyErr_Clear();
73636 else
73637 return NULL((void*)0);
73638 }
73639 }
73640 return m->sq_item(o, i);
73641 }
73642 }
73643#else
73644 if (is_list || PySequence_Check(o)) {
73645 return PySequence_GetItem(o, i);
73646 }
73647#endif
73648 return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
73649}
73650
73651static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED__attribute__ ((__unused__)) int clineno,
73652 CYTHON_UNUSED__attribute__ ((__unused__)) int lineno, CYTHON_UNUSED__attribute__ ((__unused__)) const char *filename,
73653 int full_traceback, CYTHON_UNUSED__attribute__ ((__unused__)) int nogil) {
73654 PyObject *old_exc, *old_val, *old_tb;
73655 PyObject *ctx;
73656#ifdef WITH_THREAD1
73657 PyGILState_STATE state;
73658 if (nogil)
73659 state = PyGILState_Ensure();
73660#endif
73661 __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
73662 if (full_traceback) {
73663 Py_XINCREF(old_exc)do { if ((old_exc) == ((void*)0)) ; else ( ((PyObject*)(old_exc
))->ob_refcnt++); } while (0)
;
73664 Py_XINCREF(old_val)do { if ((old_val) == ((void*)0)) ; else ( ((PyObject*)(old_val
))->ob_refcnt++); } while (0)
;
73665 Py_XINCREF(old_tb)do { if ((old_tb) == ((void*)0)) ; else ( ((PyObject*)(old_tb
))->ob_refcnt++); } while (0)
;
73666 __Pyx_ErrRestore(old_exc, old_val, old_tb);
73667 PyErr_PrintEx(1);
73668 }
73669 #if PY_MAJOR_VERSION2 < 3
73670 ctx = PyString_FromString(name);
73671 #else
73672 ctx = PyUnicode_FromStringPyUnicodeUCS4_FromString(name);
73673 #endif
73674 __Pyx_ErrRestore(old_exc, old_val, old_tb);
73675 if (!ctx) {
73676 PyErr_WriteUnraisable(Py_None(&_Py_NoneStruct));
73677 } else {
73678 PyErr_WriteUnraisable(ctx);
73679 Py_DECREF(ctx)do { if ( --((PyObject*)(ctx))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(ctx)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(ctx)))); } while (0)
;
73680 }
73681#ifdef WITH_THREAD1
73682 if (nogil)
73683 PyGILState_Release(state);
73684#endif
73685}
73686
73687static CYTHON_INLINE__inline__ int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
73688#if CYTHON_COMPILING_IN_PYPY0
73689 return PyObject_RichCompareBool(s1, s2, equals);
73690#else
73691 if (s1 == s2) {
73692 return (equals == Py_EQ2);
73693 } else if (PyBytes_CheckExact(s1)((((PyObject*)(s1))->ob_type) == &PyString_Type) & PyBytes_CheckExact(s2)((((PyObject*)(s2))->ob_type) == &PyString_Type)) {
73694 const char *ps1, *ps2;
73695 Py_ssize_t length = PyBytes_GET_SIZE(s1)(((PyVarObject*)(s1))->ob_size);
73696 if (length != PyBytes_GET_SIZE(s2)(((PyVarObject*)(s2))->ob_size))
73697 return (equals == Py_NE3);
73698 ps1 = PyBytes_AS_STRING(s1)(((PyStringObject *)(s1))->ob_sval);
73699 ps2 = PyBytes_AS_STRING(s2)(((PyStringObject *)(s2))->ob_sval);
73700 if (ps1[0] != ps2[0]) {
73701 return (equals == Py_NE3);
73702 } else if (length == 1) {
73703 return (equals == Py_EQ2);
73704 } else {
73705 int result = memcmp(ps1, ps2, (size_t)length);
73706 return (equals == Py_EQ2) ? (result == 0) : (result != 0);
73707 }
73708 } else if ((s1 == Py_None(&_Py_NoneStruct)) & PyBytes_CheckExact(s2)((((PyObject*)(s2))->ob_type) == &PyString_Type)) {
73709 return (equals == Py_NE3);
73710 } else if ((s2 == Py_None(&_Py_NoneStruct)) & PyBytes_CheckExact(s1)((((PyObject*)(s1))->ob_type) == &PyString_Type)) {
73711 return (equals == Py_NE3);
73712 } else {
73713 int result;
73714 PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
73715 if (!py_result)
73716 return -1;
73717 result = __Pyx_PyObject_IsTrue(py_result);
73718 Py_DECREF(py_result)do { if ( --((PyObject*)(py_result))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_result)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_result)))); } while (
0)
;
73719 return result;
73720 }
73721#endif
73722}
73723
73724static CYTHON_INLINE__inline__ int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
73725#if CYTHON_COMPILING_IN_PYPY0
73726 return PyObject_RichCompareBool(s1, s2, equals);
73727#else
73728#if PY_MAJOR_VERSION2 < 3
73729 PyObject* owned_ref = NULL((void*)0);
73730#endif
73731 int s1_is_unicode, s2_is_unicode;
73732 if (s1 == s2) {
73733 goto return_eq;
73734 }
73735 s1_is_unicode = PyUnicode_CheckExact(s1)((((PyObject*)(s1))->ob_type) == &PyUnicode_Type);
73736 s2_is_unicode = PyUnicode_CheckExact(s2)((((PyObject*)(s2))->ob_type) == &PyUnicode_Type);
73737#if PY_MAJOR_VERSION2 < 3
73738 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)((((PyObject*)(s2))->ob_type) == &PyString_Type)) {
73739 owned_ref = PyUnicode_FromObjectPyUnicodeUCS4_FromObject(s2);
73740 if (unlikely(!owned_ref)__builtin_expect(!!(!owned_ref), 0))
73741 return -1;
73742 s2 = owned_ref;
73743 s2_is_unicode = 1;
73744 } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)((((PyObject*)(s1))->ob_type) == &PyString_Type)) {
73745 owned_ref = PyUnicode_FromObjectPyUnicodeUCS4_FromObject(s1);
73746 if (unlikely(!owned_ref)__builtin_expect(!!(!owned_ref), 0))
73747 return -1;
73748 s1 = owned_ref;
73749 s1_is_unicode = 1;
73750 } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
73751 return __Pyx_PyBytes_Equals(s1, s2, equals);
73752 }
73753#endif
73754 if (s1_is_unicode & s2_is_unicode) {
73755 Py_ssize_t length;
73756 int kind;
73757 void *data1, *data2;
73758 if (unlikely(__Pyx_PyUnicode_READY(s1) < 0)__builtin_expect(!!((0) < 0), 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)__builtin_expect(!!((0) < 0), 0))
73759 return -1;
73760 length = __Pyx_PyUnicode_GET_LENGTH(s1)(((PyUnicodeObject *)(s1))->length);
73761 if (length != __Pyx_PyUnicode_GET_LENGTH(s2)(((PyUnicodeObject *)(s2))->length)) {
73762 goto return_ne;
73763 }
73764 kind = __Pyx_PyUnicode_KIND(s1)(sizeof(Py_UNICODE));
73765 if (kind != __Pyx_PyUnicode_KIND(s2)(sizeof(Py_UNICODE))) {
73766 goto return_ne;
73767 }
73768 data1 = __Pyx_PyUnicode_DATA(s1)((void*)(((PyUnicodeObject *)(s1))->str));
73769 data2 = __Pyx_PyUnicode_DATA(s2)((void*)(((PyUnicodeObject *)(s2))->str));
73770 if (__Pyx_PyUnicode_READ(kind, data1, 0)((void)(kind), (Py_UCS4)(((Py_UNICODE*)data1)[0])) != __Pyx_PyUnicode_READ(kind, data2, 0)((void)(kind), (Py_UCS4)(((Py_UNICODE*)data2)[0]))) {
73771 goto return_ne;
73772 } else if (length == 1) {
73773 goto return_eq;
73774 } else {
73775 int result = memcmp(data1, data2, (size_t)(length * kind));
73776 #if PY_MAJOR_VERSION2 < 3
73777 Py_XDECREF(owned_ref)do { if ((owned_ref) == ((void*)0)) ; else do { if ( --((PyObject
*)(owned_ref))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(owned_ref)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(owned_ref)))); } while (0); } while (0)
;
73778 #endif
73779 return (equals == Py_EQ2) ? (result == 0) : (result != 0);
73780 }
73781 } else if ((s1 == Py_None(&_Py_NoneStruct)) & s2_is_unicode) {
73782 goto return_ne;
73783 } else if ((s2 == Py_None(&_Py_NoneStruct)) & s1_is_unicode) {
73784 goto return_ne;
73785 } else {
73786 int result;
73787 PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
73788 if (!py_result)
73789 return -1;
73790 result = __Pyx_PyObject_IsTrue(py_result);
73791 Py_DECREF(py_result)do { if ( --((PyObject*)(py_result))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_result)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_result)))); } while (
0)
;
73792 return result;
73793 }
73794return_eq:
73795 #if PY_MAJOR_VERSION2 < 3
73796 Py_XDECREF(owned_ref)do { if ((owned_ref) == ((void*)0)) ; else do { if ( --((PyObject
*)(owned_ref))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(owned_ref)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(owned_ref)))); } while (0); } while (0)
;
73797 #endif
73798 return (equals == Py_EQ2);
73799return_ne:
73800 #if PY_MAJOR_VERSION2 < 3
73801 Py_XDECREF(owned_ref)do { if ((owned_ref) == ((void*)0)) ; else do { if ( --((PyObject
*)(owned_ref))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(owned_ref)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(owned_ref)))); } while (0); } while (0)
;
73802 #endif
73803 return (equals == Py_NE3);
73804#endif
73805}
73806
73807static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
73808 PyObject *local_type, *local_value, *local_tb;
73809#if CYTHON_COMPILING_IN_CPYTHON1
73810 PyObject *tmp_type, *tmp_value, *tmp_tb;
73811 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
73812 local_type = tstate->curexc_type;
73813 local_value = tstate->curexc_value;
73814 local_tb = tstate->curexc_traceback;
73815 tstate->curexc_type = 0;
73816 tstate->curexc_value = 0;
73817 tstate->curexc_traceback = 0;
73818#else
73819 PyErr_Fetch(&local_type, &local_value, &local_tb);
73820#endif
73821 PyErr_NormalizeException(&local_type, &local_value, &local_tb);
73822#if CYTHON_COMPILING_IN_CPYTHON1
73823 if (unlikely(tstate->curexc_type)__builtin_expect(!!(tstate->curexc_type), 0))
73824#else
73825 if (unlikely(PyErr_Occurred())__builtin_expect(!!(PyErr_Occurred()), 0))
73826#endif
73827 goto bad;
73828 #if PY_MAJOR_VERSION2 >= 3
73829 if (local_tb) {
73830 if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)__builtin_expect(!!(PyException_SetTraceback(local_value, local_tb
) < 0), 0)
)
73831 goto bad;
73832 }
73833 #endif
73834 Py_XINCREF(local_tb)do { if ((local_tb) == ((void*)0)) ; else ( ((PyObject*)(local_tb
))->ob_refcnt++); } while (0)
;
73835 Py_XINCREF(local_type)do { if ((local_type) == ((void*)0)) ; else ( ((PyObject*)(local_type
))->ob_refcnt++); } while (0)
;
73836 Py_XINCREF(local_value)do { if ((local_value) == ((void*)0)) ; else ( ((PyObject*)(local_value
))->ob_refcnt++); } while (0)
;
73837 *type = local_type;
73838 *value = local_value;
73839 *tb = local_tb;
73840#if CYTHON_COMPILING_IN_CPYTHON1
73841 tmp_type = tstate->exc_type;
73842 tmp_value = tstate->exc_value;
73843 tmp_tb = tstate->exc_traceback;
73844 tstate->exc_type = local_type;
73845 tstate->exc_value = local_value;
73846 tstate->exc_traceback = local_tb;
73847 Py_XDECREF(tmp_type)do { if ((tmp_type) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_type))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_type)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_type)))); } while (0); } while (0)
;
73848 Py_XDECREF(tmp_value)do { if ((tmp_value) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_value))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(tmp_value)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp_value)))); } while (0); } while (0)
;
73849 Py_XDECREF(tmp_tb)do { if ((tmp_tb) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_tb)))); } while (0); } while (0)
;
73850#else
73851 PyErr_SetExcInfo(local_type, local_value, local_tb);
73852#endif
73853 return 0;
73854bad:
73855 *type = 0;
73856 *value = 0;
73857 *tb = 0;
73858 Py_XDECREF(local_type)do { if ((local_type) == ((void*)0)) ; else do { if ( --((PyObject
*)(local_type))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(local_type)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(local_type)))); } while (0); } while (0)
;
73859 Py_XDECREF(local_value)do { if ((local_value) == ((void*)0)) ; else do { if ( --((PyObject
*)(local_value))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(local_value)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(local_value)))); } while (0); } while (0)
;
73860 Py_XDECREF(local_tb)do { if ((local_tb) == ((void*)0)) ; else do { if ( --((PyObject
*)(local_tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(local_tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(local_tb)))); } while (0); } while (0)
;
73861 return -1;
73862}
73863
73864static CYTHON_INLINE__inline__ void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
73865 PyObject *tmp_type, *tmp_value, *tmp_tb;
73866#if CYTHON_COMPILING_IN_CPYTHON1
73867 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
73868 tmp_type = tstate->exc_type;
73869 tmp_value = tstate->exc_value;
73870 tmp_tb = tstate->exc_traceback;
73871 tstate->exc_type = *type;
73872 tstate->exc_value = *value;
73873 tstate->exc_traceback = *tb;
73874#else
73875 PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
73876 PyErr_SetExcInfo(*type, *value, *tb);
73877#endif
73878 *type = tmp_type;
73879 *value = tmp_value;
73880 *tb = tmp_tb;
73881}
73882
73883static CYTHON_INLINE__inline__ void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
73884#if CYTHON_COMPILING_IN_CPYTHON1
73885 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
73886 *type = tstate->exc_type;
73887 *value = tstate->exc_value;
73888 *tb = tstate->exc_traceback;
73889 Py_XINCREF(*type)do { if ((*type) == ((void*)0)) ; else ( ((PyObject*)(*type))
->ob_refcnt++); } while (0)
;
73890 Py_XINCREF(*value)do { if ((*value) == ((void*)0)) ; else ( ((PyObject*)(*value
))->ob_refcnt++); } while (0)
;
73891 Py_XINCREF(*tb)do { if ((*tb) == ((void*)0)) ; else ( ((PyObject*)(*tb))->
ob_refcnt++); } while (0)
;
73892#else
73893 PyErr_GetExcInfo(type, value, tb);
73894#endif
73895}
73896static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
73897#if CYTHON_COMPILING_IN_CPYTHON1
73898 PyObject *tmp_type, *tmp_value, *tmp_tb;
73899 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
73900 tmp_type = tstate->exc_type;
73901 tmp_value = tstate->exc_value;
73902 tmp_tb = tstate->exc_traceback;
73903 tstate->exc_type = type;
73904 tstate->exc_value = value;
73905 tstate->exc_traceback = tb;
73906 Py_XDECREF(tmp_type)do { if ((tmp_type) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_type))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_type)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_type)))); } while (0); } while (0)
;
73907 Py_XDECREF(tmp_value)do { if ((tmp_value) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_value))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(tmp_value)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(tmp_value)))); } while (0); } while (0)
;
73908 Py_XDECREF(tmp_tb)do { if ((tmp_tb) == ((void*)0)) ; else do { if ( --((PyObject
*)(tmp_tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp_tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp_tb)))); } while (0); } while (0)
;
73909#else
73910 PyErr_SetExcInfo(type, value, tb);
73911#endif
73912}
73913
73914static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) {
73915 PyErr_Format(PyExc_TypeError,
73916 "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
73917 name, type->tp_name, Py_TYPE(obj)(((PyObject*)(obj))->ob_type)->tp_name);
73918}
73919static CYTHON_INLINE__inline__ int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
73920 const char *name, int exact)
73921{
73922 if (unlikely(!type)__builtin_expect(!!(!type), 0)) {
73923 PyErr_SetString(PyExc_SystemError, "Missing type object");
73924 return 0;
73925 }
73926 if (none_allowed && obj == Py_None(&_Py_NoneStruct)) return 1;
73927 else if (exact) {
73928 if (likely(Py_TYPE(obj) == type)__builtin_expect(!!((((PyObject*)(obj))->ob_type) == type)
, 1)
) return 1;
73929 #if PY_MAJOR_VERSION2 == 2
73930 else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))__builtin_expect(!!((((((PyObject*)(obj))->ob_type) == &
PyString_Type) || ((((PyObject*)(obj))->ob_type) == &PyUnicode_Type
))), 1)
) return 1;
73931 #endif
73932 }
73933 else {
73934 if (likely(PyObject_TypeCheck(obj, type))__builtin_expect(!!(((((PyObject*)(obj))->ob_type) == (type
) || PyType_IsSubtype((((PyObject*)(obj))->ob_type), (type
)))), 1)
) return 1;
73935 }
73936 __Pyx_RaiseArgumentTypeInvalid(name, obj, type);
73937 return 0;
73938}
73939
73940static CYTHON_INLINE__inline__ int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
73941 if (unlikely(!type)__builtin_expect(!!(!type), 0)) {
73942 PyErr_SetString(PyExc_SystemError, "Missing type object");
73943 return 0;
73944 }
73945 if (likely(PyObject_TypeCheck(obj, type))__builtin_expect(!!(((((PyObject*)(obj))->ob_type) == (type
) || PyType_IsSubtype((((PyObject*)(obj))->ob_type), (type
)))), 1)
)
73946 return 1;
73947 PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
73948 Py_TYPE(obj)(((PyObject*)(obj))->ob_type)->tp_name, type->tp_name);
73949 return 0;
73950}
73951
73952static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
73953 PyObject *method, *result = NULL((void*)0);
73954 method = __Pyx_PyObject_GetAttrStr(obj, method_name);
73955 if (unlikely(!method)__builtin_expect(!!(!method), 0)) goto bad;
73956#if CYTHON_COMPILING_IN_CPYTHON1
73957 if (likely(PyMethod_Check(method))__builtin_expect(!!(((method)->ob_type == &PyMethod_Type
)), 1)
) {
73958 PyObject *self = PyMethod_GET_SELF(method)(((PyMethodObject *)method) -> im_self);
73959 if (likely(self)__builtin_expect(!!(self), 1)) {
73960 PyObject *args;
73961 PyObject *function = PyMethod_GET_FUNCTION(method)(((PyMethodObject *)method) -> im_func);
73962 args = PyTuple_New(2);
73963 if (unlikely(!args)__builtin_expect(!!(!args), 0)) goto bad;
73964 Py_INCREF(self)( ((PyObject*)(self))->ob_refcnt++);
73965 PyTuple_SET_ITEM(args, 0, self)(((PyTupleObject *)(args))->ob_item[0] = self);
73966 Py_INCREF(arg)( ((PyObject*)(arg))->ob_refcnt++);
73967 PyTuple_SET_ITEM(args, 1, arg)(((PyTupleObject *)(args))->ob_item[1] = arg);
73968 Py_INCREF(function)( ((PyObject*)(function))->ob_refcnt++);
73969 Py_DECREF(method)do { if ( --((PyObject*)(method))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(method)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(method)))); } while (0)
; method = NULL((void*)0);
73970 result = __Pyx_PyObject_Call(function, args, NULL((void*)0));
73971 Py_DECREF(args)do { if ( --((PyObject*)(args))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(args)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(args)))); } while (0)
;
73972 Py_DECREF(function)do { if ( --((PyObject*)(function))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(function)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(function)))); } while (
0)
;
73973 return result;
73974 }
73975 }
73976#endif
73977 result = __Pyx_PyObject_CallOneArg(method, arg);
73978bad:
73979 Py_XDECREF(method)do { if ((method) == ((void*)0)) ; else do { if ( --((PyObject
*)(method))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(method)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(method)))); } while (0); } while (0)
;
73980 return result;
73981}
73982
73983static CYTHON_INLINE__inline__ int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
73984 if (likely(PyList_CheckExact(L))__builtin_expect(!!(((((PyObject*)(L))->ob_type) == &PyList_Type
)), 1)
) {
73985 if (unlikely(__Pyx_PyList_Append(L, x) < 0)__builtin_expect(!!(__Pyx_PyList_Append(L, x) < 0), 0)) return -1;
73986 } else {
73987 PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x);
73988 if (unlikely(!retval)__builtin_expect(!!(!retval), 0))
73989 return -1;
73990 Py_DECREF(retval)do { if ( --((PyObject*)(retval))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(retval)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(retval)))); } while (0)
;
73991 }
73992 return 0;
73993}
73994
73995static CYTHON_INLINE__inline__ PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
73996 Py_ssize_t cstart, Py_ssize_t cstop,
73997 PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
73998 int has_cstart, int has_cstop, CYTHON_UNUSED__attribute__ ((__unused__)) int wraparound) {
73999#if CYTHON_COMPILING_IN_CPYTHON1
74000 PyMappingMethods* mp;
74001#if PY_MAJOR_VERSION2 < 3
74002 PySequenceMethods* ms = Py_TYPE(obj)(((PyObject*)(obj))->ob_type)->tp_as_sequence;
74003 if (likely(ms && ms->sq_slice)__builtin_expect(!!(ms && ms->sq_slice), 1)) {
74004 if (!has_cstart) {
74005 if (_py_start && (*_py_start != Py_None(&_Py_NoneStruct))) {
74006 cstart = __Pyx_PyIndex_AsSsize_t(*_py_start);
74007 if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
74008 } else
74009 cstart = 0;
74010 }
74011 if (!has_cstop) {
74012 if (_py_stop && (*_py_stop != Py_None(&_Py_NoneStruct))) {
74013 cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop);
74014 if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
74015 } else
74016 cstop = PY_SSIZE_T_MAX((Py_ssize_t)(((size_t)-1)>>1));
74017 }
74018 if (wraparound && unlikely((cstart < 0) | (cstop < 0))__builtin_expect(!!((cstart < 0) | (cstop < 0)), 0) && likely(ms->sq_length)__builtin_expect(!!(ms->sq_length), 1)) {
74019 Py_ssize_t l = ms->sq_length(obj);
74020 if (likely(l >= 0)__builtin_expect(!!(l >= 0), 1)) {
74021 if (cstop < 0) {
74022 cstop += l;
74023 if (cstop < 0) cstop = 0;
74024 }
74025 if (cstart < 0) {
74026 cstart += l;
74027 if (cstart < 0) cstart = 0;
74028 }
74029 } else {
74030 if (PyErr_ExceptionMatches(PyExc_OverflowError))
74031 PyErr_Clear();
74032 else
74033 goto bad;
74034 }
74035 }
74036 return ms->sq_slice(obj, cstart, cstop);
74037 }
74038#endif
74039 mp = Py_TYPE(obj)(((PyObject*)(obj))->ob_type)->tp_as_mapping;
74040 if (likely(mp && mp->mp_subscript)__builtin_expect(!!(mp && mp->mp_subscript), 1))
74041#endif
74042 {
74043 PyObject* result;
74044 PyObject *py_slice, *py_start, *py_stop;
74045 if (_py_slice) {
74046 py_slice = *_py_slice;
74047 } else {
74048 PyObject* owned_start = NULL((void*)0);
74049 PyObject* owned_stop = NULL((void*)0);
74050 if (_py_start) {
74051 py_start = *_py_start;
74052 } else {
74053 if (has_cstart) {
74054 owned_start = py_start = PyInt_FromSsize_t(cstart);
74055 if (unlikely(!py_start)__builtin_expect(!!(!py_start), 0)) goto bad;
74056 } else
74057 py_start = Py_None(&_Py_NoneStruct);
74058 }
74059 if (_py_stop) {
74060 py_stop = *_py_stop;
74061 } else {
74062 if (has_cstop) {
74063 owned_stop = py_stop = PyInt_FromSsize_t(cstop);
74064 if (unlikely(!py_stop)__builtin_expect(!!(!py_stop), 0)) {
74065 Py_XDECREF(owned_start)do { if ((owned_start) == ((void*)0)) ; else do { if ( --((PyObject
*)(owned_start))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(owned_start)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(owned_start)))); } while (0); } while (0)
;
74066 goto bad;
74067 }
74068 } else
74069 py_stop = Py_None(&_Py_NoneStruct);
74070 }
74071 py_slice = PySlice_New(py_start, py_stop, Py_None(&_Py_NoneStruct));
74072 Py_XDECREF(owned_start)do { if ((owned_start) == ((void*)0)) ; else do { if ( --((PyObject
*)(owned_start))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(owned_start)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(owned_start)))); } while (0); } while (0)
;
74073 Py_XDECREF(owned_stop)do { if ((owned_stop) == ((void*)0)) ; else do { if ( --((PyObject
*)(owned_stop))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(owned_stop)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(owned_stop)))); } while (0); } while (0)
;
74074 if (unlikely(!py_slice)__builtin_expect(!!(!py_slice), 0)) goto bad;
74075 }
74076#if CYTHON_COMPILING_IN_CPYTHON1
74077 result = mp->mp_subscript(obj, py_slice);
74078#else
74079 result = PyObject_GetItem(obj, py_slice);
74080#endif
74081 if (!_py_slice) {
74082 Py_DECREF(py_slice)do { if ( --((PyObject*)(py_slice))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_slice)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_slice)))); } while (
0)
;
74083 }
74084 return result;
74085 }
74086 PyErr_Format(PyExc_TypeError,
74087 "'%.200s' object is unsliceable", Py_TYPE(obj)(((PyObject*)(obj))->ob_type)->tp_name);
74088bad:
74089 return NULL((void*)0);
74090}
74091
74092#if CYTHON_USE_PYLONG_INTERNALS1
74093 #include "longintrepr.h"
74094#endif
74095
74096#if CYTHON_COMPILING_IN_CPYTHON1
74097static PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED__attribute__ ((__unused__)) long intval, CYTHON_UNUSED__attribute__ ((__unused__)) int inplace) {
74098 if (op1 == op2) {
74099 Py_RETURN_TRUEreturn ( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->
ob_refcnt++), ((PyObject *) &_Py_TrueStruct)
;
74100 }
74101 #if PY_MAJOR_VERSION2 < 3
74102 if (likely(PyInt_CheckExact(op1))__builtin_expect(!!(((op1)->ob_type == &PyInt_Type)), 1
)
) {
74103 const long b = intval;
74104 long a = PyInt_AS_LONG(op1)(((PyIntObject *)(op1))->ob_ival);
74105 if (a == b) {
74106 Py_RETURN_TRUEreturn ( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->
ob_refcnt++), ((PyObject *) &_Py_TrueStruct)
;
74107 } else {
74108 Py_RETURN_FALSEreturn ( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->
ob_refcnt++), ((PyObject *) &_Py_ZeroStruct)
;
74109 }
74110 }
74111 #endif
74112 #if CYTHON_USE_PYLONG_INTERNALS1 && PY_MAJOR_VERSION2 >= 3
74113 if (likely(PyLong_CheckExact(op1))__builtin_expect(!!(((((PyObject*)(op1))->ob_type) == &
PyLong_Type)), 1)
) {
74114 const long b = intval;
74115 long a;
74116 const digit* digits = ((PyLongObject*)op1)->ob_digit;
74117 const Py_ssize_t size = Py_SIZE(op1)(((PyVarObject*)(op1))->ob_size);
74118 if (likely(__Pyx_sst_abs(size) <= 1)__builtin_expect(!!(labs(size) <= 1), 1)) {
74119 a = likely(size)__builtin_expect(!!(size), 1) ? digits[0] : 0;
74120 if (size == -1) a = -a;
74121 } else {
74122 switch (size) {
74123 case -2:
74124 if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT30) {
74125 a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT30) | (unsigned long)digits[0]));
74126 break;
74127 }
74128 case 2:
74129 if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT30) {
74130 a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT30) | (unsigned long)digits[0]));
74131 break;
74132 }
74133 case -3:
74134 if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT30) {
74135 a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT30) | (unsigned long)digits[1]) << PyLong_SHIFT30) | (unsigned long)digits[0]));
74136 break;
74137 }
74138 case 3:
74139 if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT30) {
74140 a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT30) | (unsigned long)digits[1]) << PyLong_SHIFT30) | (unsigned long)digits[0]));
74141 break;
74142 }
74143 case -4:
74144 if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT30) {
74145 a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT30) | (unsigned long)digits[2]) << PyLong_SHIFT30) | (unsigned long)digits[1]) << PyLong_SHIFT30) | (unsigned long)digits[0]));
74146 break;
74147 }
74148 case 4:
74149 if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT30) {
74150 a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT30) | (unsigned long)digits[2]) << PyLong_SHIFT30) | (unsigned long)digits[1]) << PyLong_SHIFT30) | (unsigned long)digits[0]));
74151 break;
74152 }
74153 #if PyLong_SHIFT30 < 30 && PyLong_SHIFT30 != 15
74154 default: return PyLong_Type.tp_richcompare(op1, op2, Py_EQ2);
74155 #else
74156 default: Py_RETURN_FALSEreturn ( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->
ob_refcnt++), ((PyObject *) &_Py_ZeroStruct)
;
74157 #endif
74158 }
74159 }
74160 if (a == b) {
74161 Py_RETURN_TRUEreturn ( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->
ob_refcnt++), ((PyObject *) &_Py_TrueStruct)
;
74162 } else {
74163 Py_RETURN_FALSEreturn ( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->
ob_refcnt++), ((PyObject *) &_Py_ZeroStruct)
;
74164 }
74165 }
74166 #endif
74167 if (PyFloat_CheckExact(op1)((((PyObject*)(op1))->ob_type) == &PyFloat_Type)) {
74168 const long b = intval;
74169 double a = PyFloat_AS_DOUBLE(op1)(((PyFloatObject *)(op1))->ob_fval);
74170 if ((double)a == (double)b) {
74171 Py_RETURN_TRUEreturn ( ((PyObject*)(((PyObject *) &_Py_TrueStruct)))->
ob_refcnt++), ((PyObject *) &_Py_TrueStruct)
;
74172 } else {
74173 Py_RETURN_FALSEreturn ( ((PyObject*)(((PyObject *) &_Py_ZeroStruct)))->
ob_refcnt++), ((PyObject *) &_Py_ZeroStruct)
;
74174 }
74175 }
74176 return PyObject_RichCompare(op1, op2, Py_EQ2);
74177}
74178#endif
74179
74180static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
74181 PyObject *empty_list = 0;
74182 PyObject *module = 0;
74183 PyObject *global_dict = 0;
74184 PyObject *empty_dict = 0;
74185 PyObject *list;
74186 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x03030000
74187 PyObject *py_import;
74188 py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
74189 if (!py_import)
74190 goto bad;
74191 #endif
74192 if (from_list)
74193 list = from_list;
74194 else {
74195 empty_list = PyList_New(0);
74196 if (!empty_list)
74197 goto bad;
74198 list = empty_list;
74199 }
74200 global_dict = PyModule_GetDict(__pyx_m);
74201 if (!global_dict)
74202 goto bad;
74203 empty_dict = PyDict_New();
74204 if (!empty_dict)
74205 goto bad;
74206 {
74207 #if PY_MAJOR_VERSION2 >= 3
74208 if (level == -1) {
74209 if (strchr(__Pyx_MODULE_NAME, '.')(__extension__ (__builtin_constant_p ('.') && !__builtin_constant_p
("rados") && ('.') == '\0' ? (char *) __rawmemchr ("rados"
, '.') : __builtin_strchr ("rados", '.')))
) {
74210 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x03030000
74211 PyObject *py_level = PyInt_FromLong(1);
74212 if (!py_level)
74213 goto bad;
74214 module = PyObject_CallFunctionObjArgs(py_import,
74215 name, global_dict, empty_dict, list, py_level, NULL((void*)0));
74216 Py_DECREF(py_level)do { if ( --((PyObject*)(py_level))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_level)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_level)))); } while (
0)
;
74217 #else
74218 module = PyImport_ImportModuleLevelObject(
74219 name, global_dict, empty_dict, list, 1);
74220 #endif
74221 if (!module) {
74222 if (!PyErr_ExceptionMatches(PyExc_ImportError))
74223 goto bad;
74224 PyErr_Clear();
74225 }
74226 }
74227 level = 0;
74228 }
74229 #endif
74230 if (!module) {
74231 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x03030000
74232 PyObject *py_level = PyInt_FromLong(level);
74233 if (!py_level)
74234 goto bad;
74235 module = PyObject_CallFunctionObjArgs(py_import,
74236 name, global_dict, empty_dict, list, py_level, NULL((void*)0));
74237 Py_DECREF(py_level)do { if ( --((PyObject*)(py_level))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_level)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_level)))); } while (
0)
;
74238 #else
74239 module = PyImport_ImportModuleLevelObject(
74240 name, global_dict, empty_dict, list, level);
74241 #endif
74242 }
74243 }
74244bad:
74245 #if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x03030000
74246 Py_XDECREF(py_import)do { if ((py_import) == ((void*)0)) ; else do { if ( --((PyObject
*)(py_import))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(py_import)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(py_import)))); } while (0); } while (0)
;
74247 #endif
74248 Py_XDECREF(empty_list)do { if ((empty_list) == ((void*)0)) ; else do { if ( --((PyObject
*)(empty_list))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(empty_list)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(empty_list)))); } while (0); } while (0)
;
74249 Py_XDECREF(empty_dict)do { if ((empty_dict) == ((void*)0)) ; else do { if ( --((PyObject
*)(empty_dict))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(empty_dict)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(empty_dict)))); } while (0); } while (0)
;
74250 return module;
74251}
74252
74253static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
74254 PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
74255 if (unlikely(!value)__builtin_expect(!!(!value), 0) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
74256 PyErr_Format(PyExc_ImportError,
74257 #if PY_MAJOR_VERSION2 < 3
74258 "cannot import name %.230s", PyString_AS_STRING(name)(((PyStringObject *)(name))->ob_sval));
74259 #else
74260 "cannot import name %S", name);
74261 #endif
74262 }
74263 return value;
74264}
74265
74266static CYTHON_INLINE__inline__ PyObject* __Pyx_decode_c_string(
74267 const char* cstring, Py_ssize_t start, Py_ssize_t stop,
74268 const char* encoding, const char* errors,
74269 PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
74270 Py_ssize_t length;
74271 if (unlikely((start < 0) | (stop < 0))__builtin_expect(!!((start < 0) | (stop < 0)), 0)) {
74272 size_t slen = strlen(cstring);
74273 if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)__builtin_expect(!!(slen > (size_t) ((Py_ssize_t)(((size_t
)-1)>>1))), 0)
) {
74274 PyErr_SetString(PyExc_OverflowError,
74275 "c-string too long to convert to Python");
74276 return NULL((void*)0);
74277 }
74278 length = (Py_ssize_t) slen;
74279 if (start < 0) {
74280 start += length;
74281 if (start < 0)
74282 start = 0;
74283 }
74284 if (stop < 0)
74285 stop += length;
74286 }
74287 length = stop - start;
74288 if (unlikely(length <= 0)__builtin_expect(!!(length <= 0), 0))
74289 return PyUnicode_FromUnicodePyUnicodeUCS4_FromUnicode(NULL((void*)0), 0);
74290 cstring += start;
74291 if (decode_func) {
74292 return decode_func(cstring, length, errors);
74293 } else {
74294 return PyUnicode_DecodePyUnicodeUCS4_Decode(cstring, length, encoding, errors);
74295 }
74296}
74297
74298static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
74299 Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases)(((PyVarObject*)(bases))->ob_size);
74300 for (i=0; i < nbases; i++) {
74301 PyTypeObject *tmptype;
74302 PyObject *tmp = PyTuple_GET_ITEM(bases, i)(((PyTupleObject *)(bases))->ob_item[i]);
74303 tmptype = Py_TYPE(tmp)(((PyObject*)(tmp))->ob_type);
74304#if PY_MAJOR_VERSION2 < 3
74305 if (tmptype == &PyClass_Type)
74306 continue;
74307#endif
74308 if (!metaclass) {
74309 metaclass = tmptype;
74310 continue;
74311 }
74312 if (PyType_IsSubtype(metaclass, tmptype))
74313 continue;
74314 if (PyType_IsSubtype(tmptype, metaclass)) {
74315 metaclass = tmptype;
74316 continue;
74317 }
74318 PyErr_SetString(PyExc_TypeError,
74319 "metaclass conflict: "
74320 "the metaclass of a derived class "
74321 "must be a (non-strict) subclass "
74322 "of the metaclasses of all its bases");
74323 return NULL((void*)0);
74324 }
74325 if (!metaclass) {
74326#if PY_MAJOR_VERSION2 < 3
74327 metaclass = &PyClass_Type;
74328#else
74329 metaclass = &PyType_Type;
74330#endif
74331 }
74332 Py_INCREF((PyObject*) metaclass)( ((PyObject*)((PyObject*) metaclass))->ob_refcnt++);
74333 return (PyObject*) metaclass;
74334}
74335
74336static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
74337 PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
74338 PyObject *ns;
74339 if (metaclass) {
74340 PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
74341 if (prep) {
74342 PyObject *pargs = PyTuple_Pack(2, name, bases);
74343 if (unlikely(!pargs)__builtin_expect(!!(!pargs), 0)) {
74344 Py_DECREF(prep)do { if ( --((PyObject*)(prep))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(prep)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(prep)))); } while (0)
;
74345 return NULL((void*)0);
74346 }
74347 ns = PyObject_Call(prep, pargs, mkw);
74348 Py_DECREF(prep)do { if ( --((PyObject*)(prep))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(prep)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(prep)))); } while (0)
;
74349 Py_DECREF(pargs)do { if ( --((PyObject*)(pargs))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(pargs)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(pargs)))); } while (0)
;
74350 } else {
74351 if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError))__builtin_expect(!!(!PyErr_ExceptionMatches(PyExc_AttributeError
)), 0)
)
74352 return NULL((void*)0);
74353 PyErr_Clear();
74354 ns = PyDict_New();
74355 }
74356 } else {
74357 ns = PyDict_New();
74358 }
74359 if (unlikely(!ns)__builtin_expect(!!(!ns), 0))
74360 return NULL((void*)0);
74361 if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)__builtin_expect(!!(PyObject_SetItem(ns, __pyx_n_s_module, modname
) < 0), 0)
) goto bad;
74362 if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)__builtin_expect(!!(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname
) < 0), 0)
) goto bad;
74363 if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)__builtin_expect(!!(doc && PyObject_SetItem(ns, __pyx_n_s_doc
, doc) < 0), 0)
) goto bad;
74364 return ns;
74365bad:
74366 Py_DECREF(ns)do { if ( --((PyObject*)(ns))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(ns)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(ns)))); } while (0)
;
74367 return NULL((void*)0);
74368}
74369static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
74370 PyObject *dict, PyObject *mkw,
74371 int calculate_metaclass, int allow_py2_metaclass) {
74372 PyObject *result, *margs;
74373 PyObject *owned_metaclass = NULL((void*)0);
74374 if (allow_py2_metaclass) {
74375 owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
74376 if (owned_metaclass) {
74377 metaclass = owned_metaclass;
74378 } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))__builtin_expect(!!(PyErr_ExceptionMatches(PyExc_KeyError)), 1
)
) {
74379 PyErr_Clear();
74380 } else {
74381 return NULL((void*)0);
74382 }
74383 }
74384 if (calculate_metaclass && (!metaclass || PyType_Check(metaclass)((((((PyObject*)(metaclass))->ob_type))->tp_flags &
((1L<<31))) != 0)
)) {
74385 metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
74386 Py_XDECREF(owned_metaclass)do { if ((owned_metaclass) == ((void*)0)) ; else do { if ( --
((PyObject*)(owned_metaclass))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(owned_metaclass)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(owned_metaclass)))); } while
(0); } while (0)
;
74387 if (unlikely(!metaclass)__builtin_expect(!!(!metaclass), 0))
74388 return NULL((void*)0);
74389 owned_metaclass = metaclass;
74390 }
74391 margs = PyTuple_Pack(3, name, bases, dict);
74392 if (unlikely(!margs)__builtin_expect(!!(!margs), 0)) {
74393 result = NULL((void*)0);
74394 } else {
74395 result = PyObject_Call(metaclass, margs, mkw);
74396 Py_DECREF(margs)do { if ( --((PyObject*)(margs))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(margs)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(margs)))); } while (0)
;
74397 }
74398 Py_XDECREF(owned_metaclass)do { if ((owned_metaclass) == ((void*)0)) ; else do { if ( --
((PyObject*)(owned_metaclass))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(owned_metaclass)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(owned_metaclass)))); } while
(0); } while (0)
;
74399 return result;
74400}
74401
74402static PyObject *__Pyx_GetNameInClass(PyObject *nmspace, PyObject *name) {
74403 PyObject *result;
74404 result = __Pyx_PyObject_GetAttrStr(nmspace, name);
74405 if (!result)
74406 result = __Pyx_GetModuleGlobalName(name);
74407 return result;
74408}
74409
74410static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
74411 int start = 0, mid = 0, end = count - 1;
74412 if (end >= 0 && code_line > entries[end].code_line) {
74413 return count;
74414 }
74415 while (start < end) {
74416 mid = start + (end - start) / 2;
74417 if (code_line < entries[mid].code_line) {
74418 end = mid;
74419 } else if (code_line > entries[mid].code_line) {
74420 start = mid + 1;
74421 } else {
74422 return mid;
74423 }
74424 }
74425 if (code_line <= entries[mid].code_line) {
74426 return mid;
74427 } else {
74428 return mid + 1;
74429 }
74430}
74431static PyCodeObject *__pyx_find_code_object(int code_line) {
74432 PyCodeObject* code_object;
74433 int pos;
74434 if (unlikely(!code_line)__builtin_expect(!!(!code_line), 0) || unlikely(!__pyx_code_cache.entries)__builtin_expect(!!(!__pyx_code_cache.entries), 0)) {
74435 return NULL((void*)0);
74436 }
74437 pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
74438 if (unlikely(pos >= __pyx_code_cache.count)__builtin_expect(!!(pos >= __pyx_code_cache.count), 0) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)__builtin_expect(!!(__pyx_code_cache.entries[pos].code_line !=
code_line), 0)
) {
74439 return NULL((void*)0);
74440 }
74441 code_object = __pyx_code_cache.entries[pos].code_object;
74442 Py_INCREF(code_object)( ((PyObject*)(code_object))->ob_refcnt++);
74443 return code_object;
74444}
74445static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
74446 int pos, i;
74447 __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
74448 if (unlikely(!code_line)__builtin_expect(!!(!code_line), 0)) {
74449 return;
74450 }
74451 if (unlikely(!entries)__builtin_expect(!!(!entries), 0)) {
74452 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
74453 if (likely(entries)__builtin_expect(!!(entries), 1)) {
74454 __pyx_code_cache.entries = entries;
74455 __pyx_code_cache.max_count = 64;
74456 __pyx_code_cache.count = 1;
74457 entries[0].code_line = code_line;
74458 entries[0].code_object = code_object;
74459 Py_INCREF(code_object)( ((PyObject*)(code_object))->ob_refcnt++);
74460 }
74461 return;
74462 }
74463 pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
74464 if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)__builtin_expect(!!(__pyx_code_cache.entries[pos].code_line ==
code_line), 0)
) {
74465 PyCodeObject* tmp = entries[pos].code_object;
74466 entries[pos].code_object = code_object;
74467 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
74468 return;
74469 }
74470 if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
74471 int new_max = __pyx_code_cache.max_count + 64;
74472 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
74473 __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry));
74474 if (unlikely(!entries)__builtin_expect(!!(!entries), 0)) {
74475 return;
74476 }
74477 __pyx_code_cache.entries = entries;
74478 __pyx_code_cache.max_count = new_max;
74479 }
74480 for (i=__pyx_code_cache.count; i>pos; i--) {
74481 entries[i] = entries[i-1];
74482 }
74483 entries[pos].code_line = code_line;
74484 entries[pos].code_object = code_object;
74485 __pyx_code_cache.count++;
74486 Py_INCREF(code_object)( ((PyObject*)(code_object))->ob_refcnt++);
74487}
74488
74489#include "compile.h"
74490#include "frameobject.h"
74491#include "traceback.h"
74492static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
74493 const char *funcname, int c_line,
74494 int py_line, const char *filename) {
74495 PyCodeObject *py_code = 0;
74496 PyObject *py_srcfile = 0;
74497 PyObject *py_funcname = 0;
74498 #if PY_MAJOR_VERSION2 < 3
74499 py_srcfile = PyString_FromString(filename);
74500 #else
74501 py_srcfile = PyUnicode_FromStringPyUnicodeUCS4_FromString(filename);
74502 #endif
74503 if (!py_srcfile) goto bad;
74504 if (c_line) {
74505 #if PY_MAJOR_VERSION2 < 3
74506 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
74507 #else
74508 py_funcname = PyUnicode_FromFormatPyUnicodeUCS4_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
74509 #endif
74510 }
74511 else {
74512 #if PY_MAJOR_VERSION2 < 3
74513 py_funcname = PyString_FromString(funcname);
74514 #else
74515 py_funcname = PyUnicode_FromStringPyUnicodeUCS4_FromString(funcname);
74516 #endif
74517 }
74518 if (!py_funcname) goto bad;
74519 py_code = __Pyx_PyCode_New(PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74520 0,PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74521 0,PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74522 0,PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74523 0,PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74524 0,PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74525 __pyx_empty_bytes, /*PyObject *code,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74526 __pyx_empty_tuple, /*PyObject *consts,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74527 __pyx_empty_tuple, /*PyObject *names,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74528 __pyx_empty_tuple, /*PyObject *varnames,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74529 __pyx_empty_tuple, /*PyObject *freevars,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74530 __pyx_empty_tuple, /*PyObject *cellvars,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74531 py_srcfile, /*PyObject *filename,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74532 py_funcname, /*PyObject *name,*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74533 py_line,PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74534 __pyx_empty_bytes /*PyObject *lnotab*/PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
74535 )PyCode_New(0 +0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple
, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple
, py_srcfile, py_funcname, py_line, __pyx_empty_bytes)
;
74536 Py_DECREF(py_srcfile)do { if ( --((PyObject*)(py_srcfile))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_srcfile)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_srcfile)))); } while
(0)
;
74537 Py_DECREF(py_funcname)do { if ( --((PyObject*)(py_funcname))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_funcname)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_funcname)))); } while
(0)
;
74538 return py_code;
74539bad:
74540 Py_XDECREF(py_srcfile)do { if ((py_srcfile) == ((void*)0)) ; else do { if ( --((PyObject
*)(py_srcfile))->ob_refcnt != 0) ; else ( (*(((PyObject*)(
(PyObject *)(py_srcfile)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(py_srcfile)))); } while (0); } while (0)
;
74541 Py_XDECREF(py_funcname)do { if ((py_funcname) == ((void*)0)) ; else do { if ( --((PyObject
*)(py_funcname))->ob_refcnt != 0) ; else ( (*(((PyObject*)
((PyObject *)(py_funcname)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(py_funcname)))); } while (0); } while (0)
;
74542 return NULL((void*)0);
74543}
74544static void __Pyx_AddTraceback(const char *funcname, int c_line,
74545 int py_line, const char *filename) {
74546 PyCodeObject *py_code = 0;
74547 PyFrameObject *py_frame = 0;
74548 py_code = __pyx_find_code_object(c_line ? c_line : py_line);
74549 if (!py_code) {
74550 py_code = __Pyx_CreateCodeObjectForTraceback(
74551 funcname, c_line, py_line, filename);
74552 if (!py_code) goto bad;
74553 __pyx_insert_code_object(c_line ? c_line : py_line, py_code);
74554 }
74555 py_frame = PyFrame_New(
74556 PyThreadState_GET()(_PyThreadState_Current), /*PyThreadState *tstate,*/
74557 py_code, /*PyCodeObject *code,*/
74558 __pyx_d, /*PyObject *globals,*/
74559 0 /*PyObject *locals*/
74560 );
74561 if (!py_frame) goto bad;
74562 py_frame->f_lineno = py_line;
74563 PyTraceBack_Here(py_frame);
74564bad:
74565 Py_XDECREF(py_code)do { if ((py_code) == ((void*)0)) ; else do { if ( --((PyObject
*)(py_code))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(py_code)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(py_code)))); } while (0); } while (0)
;
74566 Py_XDECREF(py_frame)do { if ((py_frame) == ((void*)0)) ; else do { if ( --((PyObject
*)(py_frame))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(py_frame)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(py_frame)))); } while (0); } while (0)
;
74567}
74568
74569static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_long(long value) {
74570 const long neg_one = (long) -1, const_zero = (long) 0;
74571 const int is_unsigned = neg_one > const_zero;
74572 if (is_unsigned) {
74573 if (sizeof(long) < sizeof(long)) {
74574 return PyInt_FromLong((long) value);
74575 } else if (sizeof(long) <= sizeof(unsigned long)) {
74576 return PyLong_FromUnsignedLong((unsigned long) value);
74577 } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONGlong long)) {
74578 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONGlong long) value);
74579 }
74580 } else {
74581 if (sizeof(long) <= sizeof(long)) {
74582 return PyInt_FromLong((long) value);
74583 } else if (sizeof(long) <= sizeof(PY_LONG_LONGlong long)) {
74584 return PyLong_FromLongLong((PY_LONG_LONGlong long) value);
74585 }
74586 }
74587 {
74588 int one = 1; int little = (int)*(unsigned char *)&one;
74589 unsigned char *bytes = (unsigned char *)&value;
74590 return _PyLong_FromByteArray(bytes, sizeof(long),
74591 little, !is_unsigned);
74592 }
74593}
74594
74595static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_int(int value) {
74596 const int neg_one = (int) -1, const_zero = (int) 0;
74597 const int is_unsigned = neg_one > const_zero;
74598 if (is_unsigned) {
74599 if (sizeof(int) < sizeof(long)) {
74600 return PyInt_FromLong((long) value);
74601 } else if (sizeof(int) <= sizeof(unsigned long)) {
74602 return PyLong_FromUnsignedLong((unsigned long) value);
74603 } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONGlong long)) {
74604 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONGlong long) value);
74605 }
74606 } else {
74607 if (sizeof(int) <= sizeof(long)) {
74608 return PyInt_FromLong((long) value);
74609 } else if (sizeof(int) <= sizeof(PY_LONG_LONGlong long)) {
74610 return PyLong_FromLongLong((PY_LONG_LONGlong long) value);
74611 }
74612 }
74613 {
74614 int one = 1; int little = (int)*(unsigned char *)&one;
74615 unsigned char *bytes = (unsigned char *)&value;
74616 return _PyLong_FromByteArray(bytes, sizeof(int),
74617 little, !is_unsigned);
74618 }
74619}
74620
74621static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value) {
74622 const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0;
74623 const int is_unsigned = neg_one > const_zero;
74624 if (is_unsigned) {
74625 if (sizeof(uint64_t) < sizeof(long)) {
74626 return PyInt_FromLong((long) value);
74627 } else if (sizeof(uint64_t) <= sizeof(unsigned long)) {
74628 return PyLong_FromUnsignedLong((unsigned long) value);
74629 } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
74630 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONGlong long) value);
74631 }
74632 } else {
74633 if (sizeof(uint64_t) <= sizeof(long)) {
74634 return PyInt_FromLong((long) value);
74635 } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONGlong long)) {
74636 return PyLong_FromLongLong((PY_LONG_LONGlong long) value);
74637 }
74638 }
74639 {
74640 int one = 1; int little = (int)*(unsigned char *)&one;
74641 unsigned char *bytes = (unsigned char *)&value;
74642 return _PyLong_FromByteArray(bytes, sizeof(uint64_t),
74643 little, !is_unsigned);
74644 }
74645}
74646
74647#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value){ func_type value = func_value; if (sizeof(target_type) < sizeof
(func_type)) { if (__builtin_expect(!!(value != (func_type) (
target_type) value), 0)) { func_type zero = 0; if (0 &&
__builtin_expect(!!(value == (func_type)-1 && PyErr_Occurred
()), 0)) return (target_type) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (target_type) value; }
\
74648 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0){ func_type value = func_value; if (sizeof(target_type) < sizeof
(func_type)) { if (__builtin_expect(!!(value != (func_type) (
target_type) value), 0)) { func_type zero = 0; if (0 &&
__builtin_expect(!!(value == (func_type)-1 && PyErr_Occurred
()), 0)) return (target_type) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (target_type) value; }
74649#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value){ func_type value = func_value; if (sizeof(target_type) < sizeof
(func_type)) { if (__builtin_expect(!!(value != (func_type) (
target_type) value), 0)) { func_type zero = 0; if (1 &&
__builtin_expect(!!(value == (func_type)-1 && PyErr_Occurred
()), 0)) return (target_type) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (target_type) value; }
\
74650 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1){ func_type value = func_value; if (sizeof(target_type) < sizeof
(func_type)) { if (__builtin_expect(!!(value != (func_type) (
target_type) value), 0)) { func_type zero = 0; if (1 &&
__builtin_expect(!!(value == (func_type)-1 && PyErr_Occurred
()), 0)) return (target_type) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (target_type) value; }
74651#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc){ func_type value = func_value; if (sizeof(target_type) < sizeof
(func_type)) { if (__builtin_expect(!!(value != (func_type) (
target_type) value), 0)) { func_type zero = 0; if (exc &&
__builtin_expect(!!(value == (func_type)-1 && PyErr_Occurred
()), 0)) return (target_type) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (target_type) value; }
\
74652 {\
74653 func_type value = func_value;\
74654 if (sizeof(target_type) < sizeof(func_type)) {\
74655 if (unlikely(value != (func_type) (target_type) value)__builtin_expect(!!(value != (func_type) (target_type) value)
, 0)
) {\
74656 func_type zero = 0;\
74657 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred())__builtin_expect(!!(value == (func_type)-1 && PyErr_Occurred
()), 0)
)\
74658 return (target_type) -1;\
74659 if (is_unsigned && unlikely(value < zero)__builtin_expect(!!(value < zero), 0))\
74660 goto raise_neg_overflow;\
74661 else\
74662 goto raise_overflow;\
74663 }\
74664 }\
74665 return (target_type) value;\
74666 }
74667
74668static CYTHON_INLINE__inline__ uint64_t __Pyx_PyInt_As_uint64_t(PyObject *x) {
74669 const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0;
74670 const int is_unsigned = neg_one > const_zero;
74671#if PY_MAJOR_VERSION2 < 3
74672 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
74673 if (sizeof(uint64_t) < sizeof(long)) {
74674 __PYX_VERIFY_RETURN_INT(uint64_t, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(uint64_t) < sizeof(long)) { if (__builtin_expect(!!(value
!= (long) (uint64_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (uint64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74675 } else {
74676 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
74677 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
74678 goto raise_neg_overflow;
74679 }
74680 return (uint64_t) val;
74681 }
74682 } else
74683#endif
74684 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
74685 if (is_unsigned) {
74686#if CYTHON_USE_PYLONG_INTERNALS1
74687 const digit* digits = ((PyLongObject*)x)->ob_digit;
74688 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
74689 case 0: return (uint64_t) 0;
74690 case 1: __PYX_VERIFY_RETURN_INT(uint64_t, digit, digits[0]){ digit value = digits[0]; if (sizeof(uint64_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (uint64_t) value
), 0)) { digit zero = 0; if (0 && __builtin_expect(!!
(value == (digit)-1 && PyErr_Occurred()), 0)) return (
uint64_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74691 case 2:
74692 if (8 * sizeof(uint64_t) > 1 * PyLong_SHIFT30) {
74693 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
74694 __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint64_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (uint64_t) value), 0)) { unsigned long zero = 0; if (0
&& __builtin_expect(!!(value == (unsigned long)-1 &&
PyErr_Occurred()), 0)) return (uint64_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint64_t) value; }
74695 } else if (8 * sizeof(uint64_t) >= 2 * PyLong_SHIFT30) {
74696 return (uint64_t) (((((uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0]));
74697 }
74698 }
74699 break;
74700 case 3:
74701 if (8 * sizeof(uint64_t) > 2 * PyLong_SHIFT30) {
74702 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
74703 __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint64_t) < sizeof(unsigned long)
) { if (__builtin_expect(!!(value != (unsigned long) (uint64_t
) value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (uint64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74704 } else if (8 * sizeof(uint64_t) >= 3 * PyLong_SHIFT30) {
74705 return (uint64_t) (((((((uint64_t)digits[2]) << PyLong_SHIFT30) | (uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0]));
74706 }
74707 }
74708 break;
74709 case 4:
74710 if (8 * sizeof(uint64_t) > 3 * PyLong_SHIFT30) {
74711 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
74712 __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint64_t) < sizeof(unsigned long)) { if (__builtin_expect
(!!(value != (unsigned long) (uint64_t) value), 0)) { unsigned
long zero = 0; if (0 && __builtin_expect(!!(value ==
(unsigned long)-1 && PyErr_Occurred()), 0)) return (
uint64_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74713 } else if (8 * sizeof(uint64_t) >= 4 * PyLong_SHIFT30) {
74714 return (uint64_t) (((((((((uint64_t)digits[3]) << PyLong_SHIFT30) | (uint64_t)digits[2]) << PyLong_SHIFT30) | (uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0]));
74715 }
74716 }
74717 break;
74718 }
74719#endif
74720#if CYTHON_COMPILING_IN_CPYTHON1
74721 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
74722 goto raise_neg_overflow;
74723 }
74724#else
74725 {
74726 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
74727 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
74728 return (uint64_t) -1;
74729 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
74730 goto raise_neg_overflow;
74731 }
74732#endif
74733 if (sizeof(uint64_t) <= sizeof(unsigned long)) {
74734 __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
uint64_t) < sizeof(unsigned long)) { if (__builtin_expect(
!!(value != (unsigned long) (uint64_t) value), 0)) { unsigned
long zero = 0; if (1 && __builtin_expect(!!(value ==
(unsigned long)-1 && PyErr_Occurred()), 0)) return (
uint64_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74735 } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
74736 __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(uint64_t) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (uint64_t) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(uint64_t) -1; if (is_unsigned && __builtin_expect(!
!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74737 }
74738 } else {
74739#if CYTHON_USE_PYLONG_INTERNALS1
74740 const digit* digits = ((PyLongObject*)x)->ob_digit;
74741 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
74742 case 0: return (uint64_t) 0;
74743 case -1: __PYX_VERIFY_RETURN_INT(uint64_t, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(uint64_t) <
sizeof(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (
uint64_t) value), 0)) { sdigit zero = 0; if (0 && __builtin_expect
(!!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(uint64_t) -1; if (is_unsigned && __builtin_expect(!
!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74744 case 1: __PYX_VERIFY_RETURN_INT(uint64_t, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(uint64_t) < sizeof(
digit)) { if (__builtin_expect(!!(value != (digit) (uint64_t)
value), 0)) { digit zero = 0; if (0 && __builtin_expect
(!!(value == (digit)-1 && PyErr_Occurred()), 0)) return
(uint64_t) -1; if (is_unsigned && __builtin_expect(!
!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74745 case -2:
74746 if (8 * sizeof(uint64_t) - 1 > 1 * PyLong_SHIFT30) {
74747 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
74748 __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint64_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (uint64_t) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (uint64_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74749 } else if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT30) {
74750 return (uint64_t) (((uint64_t)-1)*(((((uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0])));
74751 }
74752 }
74753 break;
74754 case 2:
74755 if (8 * sizeof(uint64_t) > 1 * PyLong_SHIFT30) {
74756 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
74757 __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint64_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (uint64_t) value), 0)) { unsigned long zero = 0; if (0
&& __builtin_expect(!!(value == (unsigned long)-1 &&
PyErr_Occurred()), 0)) return (uint64_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint64_t) value; }
74758 } else if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT30) {
74759 return (uint64_t) ((((((uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0])));
74760 }
74761 }
74762 break;
74763 case -3:
74764 if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT30) {
74765 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
74766 __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint64_t) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (uint64_t) value), 0)) { long zero = 0; if
(0 && __builtin_expect(!!(value == (long)-1 &&
PyErr_Occurred()), 0)) return (uint64_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint64_t) value; }
74767 } else if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT30) {
74768 return (uint64_t) (((uint64_t)-1)*(((((((uint64_t)digits[2]) << PyLong_SHIFT30) | (uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0])));
74769 }
74770 }
74771 break;
74772 case 3:
74773 if (8 * sizeof(uint64_t) > 2 * PyLong_SHIFT30) {
74774 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
74775 __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint64_t) < sizeof(unsigned long)
) { if (__builtin_expect(!!(value != (unsigned long) (uint64_t
) value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (uint64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74776 } else if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT30) {
74777 return (uint64_t) ((((((((uint64_t)digits[2]) << PyLong_SHIFT30) | (uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0])));
74778 }
74779 }
74780 break;
74781 case -4:
74782 if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT30) {
74783 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
74784 __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint64_t) < sizeof(long)) { if (__builtin_expect(!!(value
!= (long) (uint64_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (uint64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74785 } else if (8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT30) {
74786 return (uint64_t) (((uint64_t)-1)*(((((((((uint64_t)digits[3]) << PyLong_SHIFT30) | (uint64_t)digits[2]) << PyLong_SHIFT30) | (uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0])));
74787 }
74788 }
74789 break;
74790 case 4:
74791 if (8 * sizeof(uint64_t) > 3 * PyLong_SHIFT30) {
74792 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
74793 __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint64_t) < sizeof(unsigned long)) { if (__builtin_expect
(!!(value != (unsigned long) (uint64_t) value), 0)) { unsigned
long zero = 0; if (0 && __builtin_expect(!!(value ==
(unsigned long)-1 && PyErr_Occurred()), 0)) return (
uint64_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74794 } else if (8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT30) {
74795 return (uint64_t) ((((((((((uint64_t)digits[3]) << PyLong_SHIFT30) | (uint64_t)digits[2]) << PyLong_SHIFT30) | (uint64_t)digits[1]) << PyLong_SHIFT30) | (uint64_t)digits[0])));
74796 }
74797 }
74798 break;
74799 }
74800#endif
74801 if (sizeof(uint64_t) <= sizeof(long)) {
74802 __PYX_VERIFY_RETURN_INT_EXC(uint64_t, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(uint64_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (uint64_t) value
), 0)) { long zero = 0; if (1 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (uint64_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint64_t) value; }
74803 } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONGlong long)) {
74804 __PYX_VERIFY_RETURN_INT_EXC(uint64_t, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(uint64_t
) < sizeof(long long)) { if (__builtin_expect(!!(value != (
long long) (uint64_t) value), 0)) { long long zero = 0; if (1
&& __builtin_expect(!!(value == (long long)-1 &&
PyErr_Occurred()), 0)) return (uint64_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint64_t) value; }
74805 }
74806 }
74807 {
74808#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
74809 PyErr_SetString(PyExc_RuntimeError,
74810 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
74811#else
74812 uint64_t val;
74813 PyObject *v = __Pyx_PyNumber_Int(x);
74814 #if PY_MAJOR_VERSION2 < 3
74815 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
74816 PyObject *tmp = v;
74817 v = PyNumber_Long(tmp);
74818 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
74819 }
74820 #endif
74821 if (likely(v)__builtin_expect(!!(v), 1)) {
74822 int one = 1; int is_little = (int)*(unsigned char *)&one;
74823 unsigned char *bytes = (unsigned char *)&val;
74824 int ret = _PyLong_AsByteArray((PyLongObject *)v,
74825 bytes, sizeof(val),
74826 is_little, !is_unsigned);
74827 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
74828 if (likely(!ret)__builtin_expect(!!(!ret), 1))
74829 return val;
74830 }
74831#endif
74832 return (uint64_t) -1;
74833 }
74834 } else {
74835 uint64_t val;
74836 PyObject *tmp = __Pyx_PyNumber_Int(x);
74837 if (!tmp) return (uint64_t) -1;
74838 val = __Pyx_PyInt_As_uint64_t(tmp);
74839 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
74840 return val;
74841 }
74842raise_overflow:
74843 PyErr_SetString(PyExc_OverflowError,
74844 "value too large to convert to uint64_t");
74845 return (uint64_t) -1;
74846raise_neg_overflow:
74847 PyErr_SetString(PyExc_OverflowError,
74848 "can't convert negative value to uint64_t");
74849 return (uint64_t) -1;
74850}
74851
74852static CYTHON_INLINE__inline__ size_t __Pyx_PyInt_As_size_t(PyObject *x) {
74853 const size_t neg_one = (size_t) -1, const_zero = (size_t) 0;
74854 const int is_unsigned = neg_one > const_zero;
74855#if PY_MAJOR_VERSION2 < 3
74856 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
74857 if (sizeof(size_t) < sizeof(long)) {
74858 __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(size_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (size_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (size_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74859 } else {
74860 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
74861 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
74862 goto raise_neg_overflow;
74863 }
74864 return (size_t) val;
74865 }
74866 } else
74867#endif
74868 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
74869 if (is_unsigned) {
74870#if CYTHON_USE_PYLONG_INTERNALS1
74871 const digit* digits = ((PyLongObject*)x)->ob_digit;
74872 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
74873 case 0: return (size_t) 0;
74874 case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]){ digit value = digits[0]; if (sizeof(size_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (size_t) value)
, 0)) { digit zero = 0; if (0 && __builtin_expect(!!(
value == (digit)-1 && PyErr_Occurred()), 0)) return (
size_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74875 case 2:
74876 if (8 * sizeof(size_t) > 1 * PyLong_SHIFT30) {
74877 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
74878 __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(size_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (size_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (size_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74879 } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT30) {
74880 return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
74881 }
74882 }
74883 break;
74884 case 3:
74885 if (8 * sizeof(size_t) > 2 * PyLong_SHIFT30) {
74886 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
74887 __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(size_t) < sizeof(unsigned long)) {
if (__builtin_expect(!!(value != (unsigned long) (size_t) value
), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (size_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74888 } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT30) {
74889 return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
74890 }
74891 }
74892 break;
74893 case 4:
74894 if (8 * sizeof(size_t) > 3 * PyLong_SHIFT30) {
74895 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
74896 __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(size_t) < sizeof(unsigned long)) { if (__builtin_expect(!
!(value != (unsigned long) (size_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (size_t) -1
; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (size_t) value; }
74897 } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT30) {
74898 return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT30) | (size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
74899 }
74900 }
74901 break;
74902 }
74903#endif
74904#if CYTHON_COMPILING_IN_CPYTHON1
74905 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
74906 goto raise_neg_overflow;
74907 }
74908#else
74909 {
74910 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
74911 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
74912 return (size_t) -1;
74913 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
74914 goto raise_neg_overflow;
74915 }
74916#endif
74917 if (sizeof(size_t) <= sizeof(unsigned long)) {
74918 __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
size_t) < sizeof(unsigned long)) { if (__builtin_expect(!!
(value != (unsigned long) (size_t) value), 0)) { unsigned long
zero = 0; if (1 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (size_t) -1
; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (size_t) value; }
74919 } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
74920 __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(size_t) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (size_t) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(size_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74921 }
74922 } else {
74923#if CYTHON_USE_PYLONG_INTERNALS1
74924 const digit* digits = ((PyLongObject*)x)->ob_digit;
74925 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
74926 case 0: return (size_t) 0;
74927 case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(size_t) <
sizeof(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (
size_t) value), 0)) { sdigit zero = 0; if (0 && __builtin_expect
(!!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(size_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74928 case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(size_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (size_t) value)
, 0)) { digit zero = 0; if (0 && __builtin_expect(!!(
value == (digit)-1 && PyErr_Occurred()), 0)) return (
size_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74929 case -2:
74930 if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT30) {
74931 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
74932 __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(size_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (size_t) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (size_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74933 } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT30) {
74934 return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0])));
74935 }
74936 }
74937 break;
74938 case 2:
74939 if (8 * sizeof(size_t) > 1 * PyLong_SHIFT30) {
74940 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
74941 __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(size_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (size_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (size_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74942 } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT30) {
74943 return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0])));
74944 }
74945 }
74946 break;
74947 case -3:
74948 if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT30) {
74949 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
74950 __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(size_t) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (size_t) value), 0)) { long zero = 0; if (
0 && __builtin_expect(!!(value == (long)-1 &&
PyErr_Occurred()), 0)) return (size_t) -1; if (is_unsigned &&
__builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (size_t) value; }
74951 } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT30) {
74952 return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0])));
74953 }
74954 }
74955 break;
74956 case 3:
74957 if (8 * sizeof(size_t) > 2 * PyLong_SHIFT30) {
74958 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
74959 __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(size_t) < sizeof(unsigned long)) {
if (__builtin_expect(!!(value != (unsigned long) (size_t) value
), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (size_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74960 } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT30) {
74961 return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0])));
74962 }
74963 }
74964 break;
74965 case -4:
74966 if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT30) {
74967 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
74968 __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(size_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (size_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (size_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74969 } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT30) {
74970 return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT30) | (size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0])));
74971 }
74972 }
74973 break;
74974 case 4:
74975 if (8 * sizeof(size_t) > 3 * PyLong_SHIFT30) {
74976 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
74977 __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(size_t) < sizeof(unsigned long)) { if (__builtin_expect(!
!(value != (unsigned long) (size_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (size_t) -1
; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (size_t) value; }
74978 } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT30) {
74979 return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT30) | (size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0])));
74980 }
74981 }
74982 break;
74983 }
74984#endif
74985 if (sizeof(size_t) <= sizeof(long)) {
74986 __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(size_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (size_t) value
), 0)) { long zero = 0; if (1 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (size_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74987 } else if (sizeof(size_t) <= sizeof(PY_LONG_LONGlong long)) {
74988 __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(size_t) <
sizeof(long long)) { if (__builtin_expect(!!(value != (long long
) (size_t) value), 0)) { long long zero = 0; if (1 &&
__builtin_expect(!!(value == (long long)-1 && PyErr_Occurred
()), 0)) return (size_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (size_t) value; }
74989 }
74990 }
74991 {
74992#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
74993 PyErr_SetString(PyExc_RuntimeError,
74994 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
74995#else
74996 size_t val;
74997 PyObject *v = __Pyx_PyNumber_Int(x);
74998 #if PY_MAJOR_VERSION2 < 3
74999 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
75000 PyObject *tmp = v;
75001 v = PyNumber_Long(tmp);
75002 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75003 }
75004 #endif
75005 if (likely(v)__builtin_expect(!!(v), 1)) {
75006 int one = 1; int is_little = (int)*(unsigned char *)&one;
75007 unsigned char *bytes = (unsigned char *)&val;
75008 int ret = _PyLong_AsByteArray((PyLongObject *)v,
75009 bytes, sizeof(val),
75010 is_little, !is_unsigned);
75011 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
75012 if (likely(!ret)__builtin_expect(!!(!ret), 1))
75013 return val;
75014 }
75015#endif
75016 return (size_t) -1;
75017 }
75018 } else {
75019 size_t val;
75020 PyObject *tmp = __Pyx_PyNumber_Int(x);
75021 if (!tmp) return (size_t) -1;
75022 val = __Pyx_PyInt_As_size_t(tmp);
75023 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75024 return val;
75025 }
75026raise_overflow:
75027 PyErr_SetString(PyExc_OverflowError,
75028 "value too large to convert to size_t");
75029 return (size_t) -1;
75030raise_neg_overflow:
75031 PyErr_SetString(PyExc_OverflowError,
75032 "can't convert negative value to size_t");
75033 return (size_t) -1;
75034}
75035
75036static CYTHON_INLINE__inline__ int __Pyx_PyInt_As_int(PyObject *x) {
75037 const int neg_one = (int) -1, const_zero = (int) 0;
75038 const int is_unsigned = neg_one > const_zero;
75039#if PY_MAJOR_VERSION2 < 3
75040 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
75041 if (sizeof(int) < sizeof(long)) {
75042 __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(int) < sizeof(long)) { if (__builtin_expect(!!(value != (
long) (int) value), 0)) { long zero = 0; if (0 && __builtin_expect
(!!(value == (long)-1 && PyErr_Occurred()), 0)) return
(int) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75043 } else {
75044 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
75045 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
75046 goto raise_neg_overflow;
75047 }
75048 return (int) val;
75049 }
75050 } else
75051#endif
75052 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
75053 if (is_unsigned) {
75054#if CYTHON_USE_PYLONG_INTERNALS1
75055 const digit* digits = ((PyLongObject*)x)->ob_digit;
75056 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75057 case 0: return (int) 0;
75058 case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]){ digit value = digits[0]; if (sizeof(int) < sizeof(digit)
) { if (__builtin_expect(!!(value != (digit) (int) value), 0)
) { digit zero = 0; if (0 && __builtin_expect(!!(value
== (digit)-1 && PyErr_Occurred()), 0)) return (int) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (int) value; }
75059 case 2:
75060 if (8 * sizeof(int) > 1 * PyLong_SHIFT30) {
75061 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75062 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(int) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (int) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (int) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75063 } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT30) {
75064 return (int) (((((int)digits[1]) << PyLong_SHIFT30) | (int)digits[0]));
75065 }
75066 }
75067 break;
75068 case 3:
75069 if (8 * sizeof(int) > 2 * PyLong_SHIFT30) {
75070 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75071 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(int) < sizeof(unsigned long)) { if
(__builtin_expect(!!(value != (unsigned long) (int) value), 0
)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (int) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75072 } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT30) {
75073 return (int) (((((((int)digits[2]) << PyLong_SHIFT30) | (int)digits[1]) << PyLong_SHIFT30) | (int)digits[0]));
75074 }
75075 }
75076 break;
75077 case 4:
75078 if (8 * sizeof(int) > 3 * PyLong_SHIFT30) {
75079 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75080 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(int) < sizeof(unsigned long)) { if (__builtin_expect(!!(value
!= (unsigned long) (int) value), 0)) { unsigned long zero = 0
; if (0 && __builtin_expect(!!(value == (unsigned long
)-1 && PyErr_Occurred()), 0)) return (int) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (int) value; }
75081 } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT30) {
75082 return (int) (((((((((int)digits[3]) << PyLong_SHIFT30) | (int)digits[2]) << PyLong_SHIFT30) | (int)digits[1]) << PyLong_SHIFT30) | (int)digits[0]));
75083 }
75084 }
75085 break;
75086 }
75087#endif
75088#if CYTHON_COMPILING_IN_CPYTHON1
75089 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
75090 goto raise_neg_overflow;
75091 }
75092#else
75093 {
75094 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
75095 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
75096 return (int) -1;
75097 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
75098 goto raise_neg_overflow;
75099 }
75100#endif
75101 if (sizeof(int) <= sizeof(unsigned long)) {
75102 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
int) < sizeof(unsigned long)) { if (__builtin_expect(!!(value
!= (unsigned long) (int) value), 0)) { unsigned long zero = 0
; if (1 && __builtin_expect(!!(value == (unsigned long
)-1 && PyErr_Occurred()), 0)) return (int) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (int) value; }
75103 } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONGlong long)) {
75104 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(int) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (int) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(int) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75105 }
75106 } else {
75107#if CYTHON_USE_PYLONG_INTERNALS1
75108 const digit* digits = ((PyLongObject*)x)->ob_digit;
75109 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75110 case 0: return (int) 0;
75111 case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(int) < sizeof
(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (int) value
), 0)) { sdigit zero = 0; if (0 && __builtin_expect(!
!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(int) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75112 case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(int) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (int) value), 0
)) { digit zero = 0; if (0 && __builtin_expect(!!(value
== (digit)-1 && PyErr_Occurred()), 0)) return (int) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (int) value; }
75113 case -2:
75114 if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT30) {
75115 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75116 __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(int) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (int) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (int
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75117 } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT30) {
75118 return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT30) | (int)digits[0])));
75119 }
75120 }
75121 break;
75122 case 2:
75123 if (8 * sizeof(int) > 1 * PyLong_SHIFT30) {
75124 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75125 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(int) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (int) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (int) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75126 } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT30) {
75127 return (int) ((((((int)digits[1]) << PyLong_SHIFT30) | (int)digits[0])));
75128 }
75129 }
75130 break;
75131 case -3:
75132 if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT30) {
75133 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75134 __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(int) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (int) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (int) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75135 } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT30) {
75136 return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT30) | (int)digits[1]) << PyLong_SHIFT30) | (int)digits[0])));
75137 }
75138 }
75139 break;
75140 case 3:
75141 if (8 * sizeof(int) > 2 * PyLong_SHIFT30) {
75142 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75143 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(int) < sizeof(unsigned long)) { if
(__builtin_expect(!!(value != (unsigned long) (int) value), 0
)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (int) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75144 } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT30) {
75145 return (int) ((((((((int)digits[2]) << PyLong_SHIFT30) | (int)digits[1]) << PyLong_SHIFT30) | (int)digits[0])));
75146 }
75147 }
75148 break;
75149 case -4:
75150 if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT30) {
75151 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75152 __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(int) < sizeof(long)) { if (__builtin_expect(!!(value != (
long) (int) value), 0)) { long zero = 0; if (0 && __builtin_expect
(!!(value == (long)-1 && PyErr_Occurred()), 0)) return
(int) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75153 } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT30) {
75154 return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT30) | (int)digits[2]) << PyLong_SHIFT30) | (int)digits[1]) << PyLong_SHIFT30) | (int)digits[0])));
75155 }
75156 }
75157 break;
75158 case 4:
75159 if (8 * sizeof(int) > 3 * PyLong_SHIFT30) {
75160 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75161 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(int) < sizeof(unsigned long)) { if (__builtin_expect(!!(value
!= (unsigned long) (int) value), 0)) { unsigned long zero = 0
; if (0 && __builtin_expect(!!(value == (unsigned long
)-1 && PyErr_Occurred()), 0)) return (int) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (int) value; }
75162 } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT30) {
75163 return (int) ((((((((((int)digits[3]) << PyLong_SHIFT30) | (int)digits[2]) << PyLong_SHIFT30) | (int)digits[1]) << PyLong_SHIFT30) | (int)digits[0])));
75164 }
75165 }
75166 break;
75167 }
75168#endif
75169 if (sizeof(int) <= sizeof(long)) {
75170 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(int) < sizeof(
long)) { if (__builtin_expect(!!(value != (long) (int) value)
, 0)) { long zero = 0; if (1 && __builtin_expect(!!(value
== (long)-1 && PyErr_Occurred()), 0)) return (int) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (int) value; }
75171 } else if (sizeof(int) <= sizeof(PY_LONG_LONGlong long)) {
75172 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(int) <
sizeof(long long)) { if (__builtin_expect(!!(value != (long long
) (int) value), 0)) { long long zero = 0; if (1 && __builtin_expect
(!!(value == (long long)-1 && PyErr_Occurred()), 0)) return
(int) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int) value; }
75173 }
75174 }
75175 {
75176#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
75177 PyErr_SetString(PyExc_RuntimeError,
75178 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
75179#else
75180 int val;
75181 PyObject *v = __Pyx_PyNumber_Int(x);
75182 #if PY_MAJOR_VERSION2 < 3
75183 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
75184 PyObject *tmp = v;
75185 v = PyNumber_Long(tmp);
75186 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75187 }
75188 #endif
75189 if (likely(v)__builtin_expect(!!(v), 1)) {
75190 int one = 1; int is_little = (int)*(unsigned char *)&one;
75191 unsigned char *bytes = (unsigned char *)&val;
75192 int ret = _PyLong_AsByteArray((PyLongObject *)v,
75193 bytes, sizeof(val),
75194 is_little, !is_unsigned);
75195 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
75196 if (likely(!ret)__builtin_expect(!!(!ret), 1))
75197 return val;
75198 }
75199#endif
75200 return (int) -1;
75201 }
75202 } else {
75203 int val;
75204 PyObject *tmp = __Pyx_PyNumber_Int(x);
75205 if (!tmp) return (int) -1;
75206 val = __Pyx_PyInt_As_int(tmp);
75207 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75208 return val;
75209 }
75210raise_overflow:
75211 PyErr_SetString(PyExc_OverflowError,
75212 "value too large to convert to int");
75213 return (int) -1;
75214raise_neg_overflow:
75215 PyErr_SetString(PyExc_OverflowError,
75216 "can't convert negative value to int");
75217 return (int) -1;
75218}
75219
75220static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_int64_t(int64_t value) {
75221 const int64_t neg_one = (int64_t) -1, const_zero = (int64_t) 0;
75222 const int is_unsigned = neg_one > const_zero;
75223 if (is_unsigned) {
75224 if (sizeof(int64_t) < sizeof(long)) {
75225 return PyInt_FromLong((long) value);
75226 } else if (sizeof(int64_t) <= sizeof(unsigned long)) {
75227 return PyLong_FromUnsignedLong((unsigned long) value);
75228 } else if (sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
75229 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONGlong long) value);
75230 }
75231 } else {
75232 if (sizeof(int64_t) <= sizeof(long)) {
75233 return PyInt_FromLong((long) value);
75234 } else if (sizeof(int64_t) <= sizeof(PY_LONG_LONGlong long)) {
75235 return PyLong_FromLongLong((PY_LONG_LONGlong long) value);
75236 }
75237 }
75238 {
75239 int one = 1; int little = (int)*(unsigned char *)&one;
75240 unsigned char *bytes = (unsigned char *)&value;
75241 return _PyLong_FromByteArray(bytes, sizeof(int64_t),
75242 little, !is_unsigned);
75243 }
75244}
75245
75246static CYTHON_INLINE__inline__ int64_t __Pyx_PyInt_As_int64_t(PyObject *x) {
75247 const int64_t neg_one = (int64_t) -1, const_zero = (int64_t) 0;
75248 const int is_unsigned = neg_one > const_zero;
75249#if PY_MAJOR_VERSION2 < 3
75250 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
75251 if (sizeof(int64_t) < sizeof(long)) {
75252 __PYX_VERIFY_RETURN_INT(int64_t, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(int64_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (int64_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (int64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75253 } else {
75254 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
75255 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
75256 goto raise_neg_overflow;
75257 }
75258 return (int64_t) val;
75259 }
75260 } else
75261#endif
75262 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
75263 if (is_unsigned) {
75264#if CYTHON_USE_PYLONG_INTERNALS1
75265 const digit* digits = ((PyLongObject*)x)->ob_digit;
75266 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75267 case 0: return (int64_t) 0;
75268 case 1: __PYX_VERIFY_RETURN_INT(int64_t, digit, digits[0]){ digit value = digits[0]; if (sizeof(int64_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (int64_t) value
), 0)) { digit zero = 0; if (0 && __builtin_expect(!!
(value == (digit)-1 && PyErr_Occurred()), 0)) return (
int64_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75269 case 2:
75270 if (8 * sizeof(int64_t) > 1 * PyLong_SHIFT30) {
75271 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75272 __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(int64_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (int64_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (int64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75273 } else if (8 * sizeof(int64_t) >= 2 * PyLong_SHIFT30) {
75274 return (int64_t) (((((int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0]));
75275 }
75276 }
75277 break;
75278 case 3:
75279 if (8 * sizeof(int64_t) > 2 * PyLong_SHIFT30) {
75280 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75281 __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(int64_t) < sizeof(unsigned long))
{ if (__builtin_expect(!!(value != (unsigned long) (int64_t)
value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (int64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75282 } else if (8 * sizeof(int64_t) >= 3 * PyLong_SHIFT30) {
75283 return (int64_t) (((((((int64_t)digits[2]) << PyLong_SHIFT30) | (int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0]));
75284 }
75285 }
75286 break;
75287 case 4:
75288 if (8 * sizeof(int64_t) > 3 * PyLong_SHIFT30) {
75289 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75290 __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(int64_t) < sizeof(unsigned long)) { if (__builtin_expect(
!!(value != (unsigned long) (int64_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (int64_t) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (int64_t) value; }
75291 } else if (8 * sizeof(int64_t) >= 4 * PyLong_SHIFT30) {
75292 return (int64_t) (((((((((int64_t)digits[3]) << PyLong_SHIFT30) | (int64_t)digits[2]) << PyLong_SHIFT30) | (int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0]));
75293 }
75294 }
75295 break;
75296 }
75297#endif
75298#if CYTHON_COMPILING_IN_CPYTHON1
75299 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
75300 goto raise_neg_overflow;
75301 }
75302#else
75303 {
75304 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
75305 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
75306 return (int64_t) -1;
75307 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
75308 goto raise_neg_overflow;
75309 }
75310#endif
75311 if (sizeof(int64_t) <= sizeof(unsigned long)) {
75312 __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
int64_t) < sizeof(unsigned long)) { if (__builtin_expect(!
!(value != (unsigned long) (int64_t) value), 0)) { unsigned long
zero = 0; if (1 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (int64_t) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (int64_t) value; }
75313 } else if (sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
75314 __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(int64_t) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (int64_t) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(int64_t) -1; if (is_unsigned && __builtin_expect(!!
(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75315 }
75316 } else {
75317#if CYTHON_USE_PYLONG_INTERNALS1
75318 const digit* digits = ((PyLongObject*)x)->ob_digit;
75319 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75320 case 0: return (int64_t) 0;
75321 case -1: __PYX_VERIFY_RETURN_INT(int64_t, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(int64_t) <
sizeof(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (
int64_t) value), 0)) { sdigit zero = 0; if (0 && __builtin_expect
(!!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(int64_t) -1; if (is_unsigned && __builtin_expect(!!
(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75322 case 1: __PYX_VERIFY_RETURN_INT(int64_t, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(int64_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (int64_t) value
), 0)) { digit zero = 0; if (0 && __builtin_expect(!!
(value == (digit)-1 && PyErr_Occurred()), 0)) return (
int64_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75323 case -2:
75324 if (8 * sizeof(int64_t) - 1 > 1 * PyLong_SHIFT30) {
75325 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75326 __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(int64_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (int64_t) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (int64_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75327 } else if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT30) {
75328 return (int64_t) (((int64_t)-1)*(((((int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0])));
75329 }
75330 }
75331 break;
75332 case 2:
75333 if (8 * sizeof(int64_t) > 1 * PyLong_SHIFT30) {
75334 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75335 __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(int64_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (int64_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (int64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75336 } else if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT30) {
75337 return (int64_t) ((((((int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0])));
75338 }
75339 }
75340 break;
75341 case -3:
75342 if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT30) {
75343 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75344 __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(int64_t) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (int64_t) value), 0)) { long zero = 0; if
(0 && __builtin_expect(!!(value == (long)-1 &&
PyErr_Occurred()), 0)) return (int64_t) -1; if (is_unsigned &&
__builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (int64_t) value; }
75345 } else if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT30) {
75346 return (int64_t) (((int64_t)-1)*(((((((int64_t)digits[2]) << PyLong_SHIFT30) | (int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0])));
75347 }
75348 }
75349 break;
75350 case 3:
75351 if (8 * sizeof(int64_t) > 2 * PyLong_SHIFT30) {
75352 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75353 __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(int64_t) < sizeof(unsigned long))
{ if (__builtin_expect(!!(value != (unsigned long) (int64_t)
value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (int64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75354 } else if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT30) {
75355 return (int64_t) ((((((((int64_t)digits[2]) << PyLong_SHIFT30) | (int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0])));
75356 }
75357 }
75358 break;
75359 case -4:
75360 if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT30) {
75361 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75362 __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(int64_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (int64_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (int64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75363 } else if (8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT30) {
75364 return (int64_t) (((int64_t)-1)*(((((((((int64_t)digits[3]) << PyLong_SHIFT30) | (int64_t)digits[2]) << PyLong_SHIFT30) | (int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0])));
75365 }
75366 }
75367 break;
75368 case 4:
75369 if (8 * sizeof(int64_t) > 3 * PyLong_SHIFT30) {
75370 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75371 __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(int64_t) < sizeof(unsigned long)) { if (__builtin_expect(
!!(value != (unsigned long) (int64_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (int64_t) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (int64_t) value; }
75372 } else if (8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT30) {
75373 return (int64_t) ((((((((((int64_t)digits[3]) << PyLong_SHIFT30) | (int64_t)digits[2]) << PyLong_SHIFT30) | (int64_t)digits[1]) << PyLong_SHIFT30) | (int64_t)digits[0])));
75374 }
75375 }
75376 break;
75377 }
75378#endif
75379 if (sizeof(int64_t) <= sizeof(long)) {
75380 __PYX_VERIFY_RETURN_INT_EXC(int64_t, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(int64_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (int64_t) value
), 0)) { long zero = 0; if (1 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (int64_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75381 } else if (sizeof(int64_t) <= sizeof(PY_LONG_LONGlong long)) {
75382 __PYX_VERIFY_RETURN_INT_EXC(int64_t, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(int64_t)
< sizeof(long long)) { if (__builtin_expect(!!(value != (
long long) (int64_t) value), 0)) { long long zero = 0; if (1 &&
__builtin_expect(!!(value == (long long)-1 && PyErr_Occurred
()), 0)) return (int64_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (int64_t) value; }
75383 }
75384 }
75385 {
75386#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
75387 PyErr_SetString(PyExc_RuntimeError,
75388 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
75389#else
75390 int64_t val;
75391 PyObject *v = __Pyx_PyNumber_Int(x);
75392 #if PY_MAJOR_VERSION2 < 3
75393 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
75394 PyObject *tmp = v;
75395 v = PyNumber_Long(tmp);
75396 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75397 }
75398 #endif
75399 if (likely(v)__builtin_expect(!!(v), 1)) {
75400 int one = 1; int is_little = (int)*(unsigned char *)&one;
75401 unsigned char *bytes = (unsigned char *)&val;
75402 int ret = _PyLong_AsByteArray((PyLongObject *)v,
75403 bytes, sizeof(val),
75404 is_little, !is_unsigned);
75405 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
75406 if (likely(!ret)__builtin_expect(!!(!ret), 1))
75407 return val;
75408 }
75409#endif
75410 return (int64_t) -1;
75411 }
75412 } else {
75413 int64_t val;
75414 PyObject *tmp = __Pyx_PyNumber_Int(x);
75415 if (!tmp) return (int64_t) -1;
75416 val = __Pyx_PyInt_As_int64_t(tmp);
75417 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75418 return val;
75419 }
75420raise_overflow:
75421 PyErr_SetString(PyExc_OverflowError,
75422 "value too large to convert to int64_t");
75423 return (int64_t) -1;
75424raise_neg_overflow:
75425 PyErr_SetString(PyExc_OverflowError,
75426 "can't convert negative value to int64_t");
75427 return (int64_t) -1;
75428}
75429
75430static CYTHON_INLINE__inline__ uint8_t __Pyx_PyInt_As_uint8_t(PyObject *x) {
75431 const uint8_t neg_one = (uint8_t) -1, const_zero = (uint8_t) 0;
75432 const int is_unsigned = neg_one > const_zero;
75433#if PY_MAJOR_VERSION2 < 3
75434 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
75435 if (sizeof(uint8_t) < sizeof(long)) {
75436 __PYX_VERIFY_RETURN_INT(uint8_t, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(uint8_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (uint8_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (uint8_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75437 } else {
75438 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
75439 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
75440 goto raise_neg_overflow;
75441 }
75442 return (uint8_t) val;
75443 }
75444 } else
75445#endif
75446 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
75447 if (is_unsigned) {
75448#if CYTHON_USE_PYLONG_INTERNALS1
75449 const digit* digits = ((PyLongObject*)x)->ob_digit;
75450 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75451 case 0: return (uint8_t) 0;
75452 case 1: __PYX_VERIFY_RETURN_INT(uint8_t, digit, digits[0]){ digit value = digits[0]; if (sizeof(uint8_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (uint8_t) value
), 0)) { digit zero = 0; if (0 && __builtin_expect(!!
(value == (digit)-1 && PyErr_Occurred()), 0)) return (
uint8_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75453 case 2:
75454 if (8 * sizeof(uint8_t) > 1 * PyLong_SHIFT30) {
75455 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75456 __PYX_VERIFY_RETURN_INT(uint8_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint8_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (uint8_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (uint8_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75457 } else if (8 * sizeof(uint8_t) >= 2 * PyLong_SHIFT30) {
75458 return (uint8_t) (((((uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0]));
75459 }
75460 }
75461 break;
75462 case 3:
75463 if (8 * sizeof(uint8_t) > 2 * PyLong_SHIFT30) {
75464 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75465 __PYX_VERIFY_RETURN_INT(uint8_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint8_t) < sizeof(unsigned long))
{ if (__builtin_expect(!!(value != (unsigned long) (uint8_t)
value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (uint8_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75466 } else if (8 * sizeof(uint8_t) >= 3 * PyLong_SHIFT30) {
75467 return (uint8_t) (((((((uint8_t)digits[2]) << PyLong_SHIFT30) | (uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0]));
75468 }
75469 }
75470 break;
75471 case 4:
75472 if (8 * sizeof(uint8_t) > 3 * PyLong_SHIFT30) {
75473 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75474 __PYX_VERIFY_RETURN_INT(uint8_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint8_t) < sizeof(unsigned long)) { if (__builtin_expect(
!!(value != (unsigned long) (uint8_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (uint8_t) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (uint8_t) value; }
75475 } else if (8 * sizeof(uint8_t) >= 4 * PyLong_SHIFT30) {
75476 return (uint8_t) (((((((((uint8_t)digits[3]) << PyLong_SHIFT30) | (uint8_t)digits[2]) << PyLong_SHIFT30) | (uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0]));
75477 }
75478 }
75479 break;
75480 }
75481#endif
75482#if CYTHON_COMPILING_IN_CPYTHON1
75483 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
75484 goto raise_neg_overflow;
75485 }
75486#else
75487 {
75488 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
75489 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
75490 return (uint8_t) -1;
75491 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
75492 goto raise_neg_overflow;
75493 }
75494#endif
75495 if (sizeof(uint8_t) <= sizeof(unsigned long)) {
75496 __PYX_VERIFY_RETURN_INT_EXC(uint8_t, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
uint8_t) < sizeof(unsigned long)) { if (__builtin_expect(!
!(value != (unsigned long) (uint8_t) value), 0)) { unsigned long
zero = 0; if (1 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (uint8_t) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (uint8_t) value; }
75497 } else if (sizeof(uint8_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
75498 __PYX_VERIFY_RETURN_INT_EXC(uint8_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(uint8_t) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (uint8_t) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(uint8_t) -1; if (is_unsigned && __builtin_expect(!!
(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75499 }
75500 } else {
75501#if CYTHON_USE_PYLONG_INTERNALS1
75502 const digit* digits = ((PyLongObject*)x)->ob_digit;
75503 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75504 case 0: return (uint8_t) 0;
75505 case -1: __PYX_VERIFY_RETURN_INT(uint8_t, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(uint8_t) <
sizeof(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (
uint8_t) value), 0)) { sdigit zero = 0; if (0 && __builtin_expect
(!!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(uint8_t) -1; if (is_unsigned && __builtin_expect(!!
(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75506 case 1: __PYX_VERIFY_RETURN_INT(uint8_t, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(uint8_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (uint8_t) value
), 0)) { digit zero = 0; if (0 && __builtin_expect(!!
(value == (digit)-1 && PyErr_Occurred()), 0)) return (
uint8_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75507 case -2:
75508 if (8 * sizeof(uint8_t) - 1 > 1 * PyLong_SHIFT30) {
75509 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75510 __PYX_VERIFY_RETURN_INT(uint8_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint8_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (uint8_t) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (uint8_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75511 } else if (8 * sizeof(uint8_t) - 1 > 2 * PyLong_SHIFT30) {
75512 return (uint8_t) (((uint8_t)-1)*(((((uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0])));
75513 }
75514 }
75515 break;
75516 case 2:
75517 if (8 * sizeof(uint8_t) > 1 * PyLong_SHIFT30) {
75518 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75519 __PYX_VERIFY_RETURN_INT(uint8_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint8_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (uint8_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (uint8_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75520 } else if (8 * sizeof(uint8_t) - 1 > 2 * PyLong_SHIFT30) {
75521 return (uint8_t) ((((((uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0])));
75522 }
75523 }
75524 break;
75525 case -3:
75526 if (8 * sizeof(uint8_t) - 1 > 2 * PyLong_SHIFT30) {
75527 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75528 __PYX_VERIFY_RETURN_INT(uint8_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint8_t) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (uint8_t) value), 0)) { long zero = 0; if
(0 && __builtin_expect(!!(value == (long)-1 &&
PyErr_Occurred()), 0)) return (uint8_t) -1; if (is_unsigned &&
__builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint8_t) value; }
75529 } else if (8 * sizeof(uint8_t) - 1 > 3 * PyLong_SHIFT30) {
75530 return (uint8_t) (((uint8_t)-1)*(((((((uint8_t)digits[2]) << PyLong_SHIFT30) | (uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0])));
75531 }
75532 }
75533 break;
75534 case 3:
75535 if (8 * sizeof(uint8_t) > 2 * PyLong_SHIFT30) {
75536 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75537 __PYX_VERIFY_RETURN_INT(uint8_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint8_t) < sizeof(unsigned long))
{ if (__builtin_expect(!!(value != (unsigned long) (uint8_t)
value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (uint8_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75538 } else if (8 * sizeof(uint8_t) - 1 > 3 * PyLong_SHIFT30) {
75539 return (uint8_t) ((((((((uint8_t)digits[2]) << PyLong_SHIFT30) | (uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0])));
75540 }
75541 }
75542 break;
75543 case -4:
75544 if (8 * sizeof(uint8_t) - 1 > 3 * PyLong_SHIFT30) {
75545 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75546 __PYX_VERIFY_RETURN_INT(uint8_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint8_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (uint8_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (uint8_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75547 } else if (8 * sizeof(uint8_t) - 1 > 4 * PyLong_SHIFT30) {
75548 return (uint8_t) (((uint8_t)-1)*(((((((((uint8_t)digits[3]) << PyLong_SHIFT30) | (uint8_t)digits[2]) << PyLong_SHIFT30) | (uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0])));
75549 }
75550 }
75551 break;
75552 case 4:
75553 if (8 * sizeof(uint8_t) > 3 * PyLong_SHIFT30) {
75554 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75555 __PYX_VERIFY_RETURN_INT(uint8_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint8_t) < sizeof(unsigned long)) { if (__builtin_expect(
!!(value != (unsigned long) (uint8_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (uint8_t) -
1; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (uint8_t) value; }
75556 } else if (8 * sizeof(uint8_t) - 1 > 4 * PyLong_SHIFT30) {
75557 return (uint8_t) ((((((((((uint8_t)digits[3]) << PyLong_SHIFT30) | (uint8_t)digits[2]) << PyLong_SHIFT30) | (uint8_t)digits[1]) << PyLong_SHIFT30) | (uint8_t)digits[0])));
75558 }
75559 }
75560 break;
75561 }
75562#endif
75563 if (sizeof(uint8_t) <= sizeof(long)) {
75564 __PYX_VERIFY_RETURN_INT_EXC(uint8_t, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(uint8_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (uint8_t) value
), 0)) { long zero = 0; if (1 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (uint8_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75565 } else if (sizeof(uint8_t) <= sizeof(PY_LONG_LONGlong long)) {
75566 __PYX_VERIFY_RETURN_INT_EXC(uint8_t, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(uint8_t)
< sizeof(long long)) { if (__builtin_expect(!!(value != (
long long) (uint8_t) value), 0)) { long long zero = 0; if (1 &&
__builtin_expect(!!(value == (long long)-1 && PyErr_Occurred
()), 0)) return (uint8_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint8_t) value; }
75567 }
75568 }
75569 {
75570#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
75571 PyErr_SetString(PyExc_RuntimeError,
75572 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
75573#else
75574 uint8_t val;
75575 PyObject *v = __Pyx_PyNumber_Int(x);
75576 #if PY_MAJOR_VERSION2 < 3
75577 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
75578 PyObject *tmp = v;
75579 v = PyNumber_Long(tmp);
75580 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75581 }
75582 #endif
75583 if (likely(v)__builtin_expect(!!(v), 1)) {
75584 int one = 1; int is_little = (int)*(unsigned char *)&one;
75585 unsigned char *bytes = (unsigned char *)&val;
75586 int ret = _PyLong_AsByteArray((PyLongObject *)v,
75587 bytes, sizeof(val),
75588 is_little, !is_unsigned);
75589 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
75590 if (likely(!ret)__builtin_expect(!!(!ret), 1))
75591 return val;
75592 }
75593#endif
75594 return (uint8_t) -1;
75595 }
75596 } else {
75597 uint8_t val;
75598 PyObject *tmp = __Pyx_PyNumber_Int(x);
75599 if (!tmp) return (uint8_t) -1;
75600 val = __Pyx_PyInt_As_uint8_t(tmp);
75601 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75602 return val;
75603 }
75604raise_overflow:
75605 PyErr_SetString(PyExc_OverflowError,
75606 "value too large to convert to uint8_t");
75607 return (uint8_t) -1;
75608raise_neg_overflow:
75609 PyErr_SetString(PyExc_OverflowError,
75610 "can't convert negative value to uint8_t");
75611 return (uint8_t) -1;
75612}
75613
75614static CYTHON_INLINE__inline__ uint32_t __Pyx_PyInt_As_uint32_t(PyObject *x) {
75615 const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
75616 const int is_unsigned = neg_one > const_zero;
75617#if PY_MAJOR_VERSION2 < 3
75618 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
75619 if (sizeof(uint32_t) < sizeof(long)) {
75620 __PYX_VERIFY_RETURN_INT(uint32_t, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(uint32_t) < sizeof(long)) { if (__builtin_expect(!!(value
!= (long) (uint32_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (uint32_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75621 } else {
75622 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
75623 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
75624 goto raise_neg_overflow;
75625 }
75626 return (uint32_t) val;
75627 }
75628 } else
75629#endif
75630 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
75631 if (is_unsigned) {
75632#if CYTHON_USE_PYLONG_INTERNALS1
75633 const digit* digits = ((PyLongObject*)x)->ob_digit;
75634 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75635 case 0: return (uint32_t) 0;
75636 case 1: __PYX_VERIFY_RETURN_INT(uint32_t, digit, digits[0]){ digit value = digits[0]; if (sizeof(uint32_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (uint32_t) value
), 0)) { digit zero = 0; if (0 && __builtin_expect(!!
(value == (digit)-1 && PyErr_Occurred()), 0)) return (
uint32_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75637 case 2:
75638 if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT30) {
75639 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75640 __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint32_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (uint32_t) value), 0)) { unsigned long zero = 0; if (0
&& __builtin_expect(!!(value == (unsigned long)-1 &&
PyErr_Occurred()), 0)) return (uint32_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint32_t) value; }
75641 } else if (8 * sizeof(uint32_t) >= 2 * PyLong_SHIFT30) {
75642 return (uint32_t) (((((uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0]));
75643 }
75644 }
75645 break;
75646 case 3:
75647 if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT30) {
75648 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75649 __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint32_t) < sizeof(unsigned long)
) { if (__builtin_expect(!!(value != (unsigned long) (uint32_t
) value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (uint32_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75650 } else if (8 * sizeof(uint32_t) >= 3 * PyLong_SHIFT30) {
75651 return (uint32_t) (((((((uint32_t)digits[2]) << PyLong_SHIFT30) | (uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0]));
75652 }
75653 }
75654 break;
75655 case 4:
75656 if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT30) {
75657 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75658 __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint32_t) < sizeof(unsigned long)) { if (__builtin_expect
(!!(value != (unsigned long) (uint32_t) value), 0)) { unsigned
long zero = 0; if (0 && __builtin_expect(!!(value ==
(unsigned long)-1 && PyErr_Occurred()), 0)) return (
uint32_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75659 } else if (8 * sizeof(uint32_t) >= 4 * PyLong_SHIFT30) {
75660 return (uint32_t) (((((((((uint32_t)digits[3]) << PyLong_SHIFT30) | (uint32_t)digits[2]) << PyLong_SHIFT30) | (uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0]));
75661 }
75662 }
75663 break;
75664 }
75665#endif
75666#if CYTHON_COMPILING_IN_CPYTHON1
75667 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
75668 goto raise_neg_overflow;
75669 }
75670#else
75671 {
75672 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
75673 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
75674 return (uint32_t) -1;
75675 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
75676 goto raise_neg_overflow;
75677 }
75678#endif
75679 if (sizeof(uint32_t) <= sizeof(unsigned long)) {
75680 __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
uint32_t) < sizeof(unsigned long)) { if (__builtin_expect(
!!(value != (unsigned long) (uint32_t) value), 0)) { unsigned
long zero = 0; if (1 && __builtin_expect(!!(value ==
(unsigned long)-1 && PyErr_Occurred()), 0)) return (
uint32_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75681 } else if (sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
75682 __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(uint32_t) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (uint32_t) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(uint32_t) -1; if (is_unsigned && __builtin_expect(!
!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75683 }
75684 } else {
75685#if CYTHON_USE_PYLONG_INTERNALS1
75686 const digit* digits = ((PyLongObject*)x)->ob_digit;
75687 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75688 case 0: return (uint32_t) 0;
75689 case -1: __PYX_VERIFY_RETURN_INT(uint32_t, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(uint32_t) <
sizeof(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (
uint32_t) value), 0)) { sdigit zero = 0; if (0 && __builtin_expect
(!!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(uint32_t) -1; if (is_unsigned && __builtin_expect(!
!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75690 case 1: __PYX_VERIFY_RETURN_INT(uint32_t, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(uint32_t) < sizeof(
digit)) { if (__builtin_expect(!!(value != (digit) (uint32_t)
value), 0)) { digit zero = 0; if (0 && __builtin_expect
(!!(value == (digit)-1 && PyErr_Occurred()), 0)) return
(uint32_t) -1; if (is_unsigned && __builtin_expect(!
!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75691 case -2:
75692 if (8 * sizeof(uint32_t) - 1 > 1 * PyLong_SHIFT30) {
75693 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75694 __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint32_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (uint32_t) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (uint32_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75695 } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT30) {
75696 return (uint32_t) (((uint32_t)-1)*(((((uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0])));
75697 }
75698 }
75699 break;
75700 case 2:
75701 if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT30) {
75702 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75703 __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(uint32_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (uint32_t) value), 0)) { unsigned long zero = 0; if (0
&& __builtin_expect(!!(value == (unsigned long)-1 &&
PyErr_Occurred()), 0)) return (uint32_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint32_t) value; }
75704 } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT30) {
75705 return (uint32_t) ((((((uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0])));
75706 }
75707 }
75708 break;
75709 case -3:
75710 if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT30) {
75711 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75712 __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint32_t) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (uint32_t) value), 0)) { long zero = 0; if
(0 && __builtin_expect(!!(value == (long)-1 &&
PyErr_Occurred()), 0)) return (uint32_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint32_t) value; }
75713 } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT30) {
75714 return (uint32_t) (((uint32_t)-1)*(((((((uint32_t)digits[2]) << PyLong_SHIFT30) | (uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0])));
75715 }
75716 }
75717 break;
75718 case 3:
75719 if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT30) {
75720 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75721 __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(uint32_t) < sizeof(unsigned long)
) { if (__builtin_expect(!!(value != (unsigned long) (uint32_t
) value), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (uint32_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75722 } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT30) {
75723 return (uint32_t) ((((((((uint32_t)digits[2]) << PyLong_SHIFT30) | (uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0])));
75724 }
75725 }
75726 break;
75727 case -4:
75728 if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT30) {
75729 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75730 __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint32_t) < sizeof(long)) { if (__builtin_expect(!!(value
!= (long) (uint32_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (uint32_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75731 } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT30) {
75732 return (uint32_t) (((uint32_t)-1)*(((((((((uint32_t)digits[3]) << PyLong_SHIFT30) | (uint32_t)digits[2]) << PyLong_SHIFT30) | (uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0])));
75733 }
75734 }
75735 break;
75736 case 4:
75737 if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT30) {
75738 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75739 __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(uint32_t) < sizeof(unsigned long)) { if (__builtin_expect
(!!(value != (unsigned long) (uint32_t) value), 0)) { unsigned
long zero = 0; if (0 && __builtin_expect(!!(value ==
(unsigned long)-1 && PyErr_Occurred()), 0)) return (
uint32_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75740 } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT30) {
75741 return (uint32_t) ((((((((((uint32_t)digits[3]) << PyLong_SHIFT30) | (uint32_t)digits[2]) << PyLong_SHIFT30) | (uint32_t)digits[1]) << PyLong_SHIFT30) | (uint32_t)digits[0])));
75742 }
75743 }
75744 break;
75745 }
75746#endif
75747 if (sizeof(uint32_t) <= sizeof(long)) {
75748 __PYX_VERIFY_RETURN_INT_EXC(uint32_t, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(uint32_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (uint32_t) value
), 0)) { long zero = 0; if (1 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (uint32_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (uint32_t) value; }
75749 } else if (sizeof(uint32_t) <= sizeof(PY_LONG_LONGlong long)) {
75750 __PYX_VERIFY_RETURN_INT_EXC(uint32_t, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(uint32_t
) < sizeof(long long)) { if (__builtin_expect(!!(value != (
long long) (uint32_t) value), 0)) { long long zero = 0; if (1
&& __builtin_expect(!!(value == (long long)-1 &&
PyErr_Occurred()), 0)) return (uint32_t) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (uint32_t) value; }
75751 }
75752 }
75753 {
75754#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
75755 PyErr_SetString(PyExc_RuntimeError,
75756 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
75757#else
75758 uint32_t val;
75759 PyObject *v = __Pyx_PyNumber_Int(x);
75760 #if PY_MAJOR_VERSION2 < 3
75761 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
75762 PyObject *tmp = v;
75763 v = PyNumber_Long(tmp);
75764 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75765 }
75766 #endif
75767 if (likely(v)__builtin_expect(!!(v), 1)) {
75768 int one = 1; int is_little = (int)*(unsigned char *)&one;
75769 unsigned char *bytes = (unsigned char *)&val;
75770 int ret = _PyLong_AsByteArray((PyLongObject *)v,
75771 bytes, sizeof(val),
75772 is_little, !is_unsigned);
75773 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
75774 if (likely(!ret)__builtin_expect(!!(!ret), 1))
75775 return val;
75776 }
75777#endif
75778 return (uint32_t) -1;
75779 }
75780 } else {
75781 uint32_t val;
75782 PyObject *tmp = __Pyx_PyNumber_Int(x);
75783 if (!tmp) return (uint32_t) -1;
75784 val = __Pyx_PyInt_As_uint32_t(tmp);
75785 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75786 return val;
75787 }
75788raise_overflow:
75789 PyErr_SetString(PyExc_OverflowError,
75790 "value too large to convert to uint32_t");
75791 return (uint32_t) -1;
75792raise_neg_overflow:
75793 PyErr_SetString(PyExc_OverflowError,
75794 "can't convert negative value to uint32_t");
75795 return (uint32_t) -1;
75796}
75797
75798static CYTHON_INLINE__inline__ PyObject* __Pyx_PyInt_From_time_t(time_t value) {
75799 const time_t neg_one = (time_t) -1, const_zero = (time_t) 0;
75800 const int is_unsigned = neg_one > const_zero;
75801 if (is_unsigned) {
75802 if (sizeof(time_t) < sizeof(long)) {
75803 return PyInt_FromLong((long) value);
75804 } else if (sizeof(time_t) <= sizeof(unsigned long)) {
75805 return PyLong_FromUnsignedLong((unsigned long) value);
75806 } else if (sizeof(time_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
75807 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONGlong long) value);
75808 }
75809 } else {
75810 if (sizeof(time_t) <= sizeof(long)) {
75811 return PyInt_FromLong((long) value);
75812 } else if (sizeof(time_t) <= sizeof(PY_LONG_LONGlong long)) {
75813 return PyLong_FromLongLong((PY_LONG_LONGlong long) value);
75814 }
75815 }
75816 {
75817 int one = 1; int little = (int)*(unsigned char *)&one;
75818 unsigned char *bytes = (unsigned char *)&value;
75819 return _PyLong_FromByteArray(bytes, sizeof(time_t),
75820 little, !is_unsigned);
75821 }
75822}
75823
75824static CYTHON_INLINE__inline__ time_t __Pyx_PyInt_As_time_t(PyObject *x) {
75825 const time_t neg_one = (time_t) -1, const_zero = (time_t) 0;
75826 const int is_unsigned = neg_one > const_zero;
75827#if PY_MAJOR_VERSION2 < 3
75828 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
75829 if (sizeof(time_t) < sizeof(long)) {
75830 __PYX_VERIFY_RETURN_INT(time_t, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(time_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (time_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (time_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75831 } else {
75832 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
75833 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
75834 goto raise_neg_overflow;
75835 }
75836 return (time_t) val;
75837 }
75838 } else
75839#endif
75840 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
75841 if (is_unsigned) {
75842#if CYTHON_USE_PYLONG_INTERNALS1
75843 const digit* digits = ((PyLongObject*)x)->ob_digit;
75844 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75845 case 0: return (time_t) 0;
75846 case 1: __PYX_VERIFY_RETURN_INT(time_t, digit, digits[0]){ digit value = digits[0]; if (sizeof(time_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (time_t) value)
, 0)) { digit zero = 0; if (0 && __builtin_expect(!!(
value == (digit)-1 && PyErr_Occurred()), 0)) return (
time_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75847 case 2:
75848 if (8 * sizeof(time_t) > 1 * PyLong_SHIFT30) {
75849 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75850 __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(time_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (time_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (time_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75851 } else if (8 * sizeof(time_t) >= 2 * PyLong_SHIFT30) {
75852 return (time_t) (((((time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0]));
75853 }
75854 }
75855 break;
75856 case 3:
75857 if (8 * sizeof(time_t) > 2 * PyLong_SHIFT30) {
75858 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75859 __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(time_t) < sizeof(unsigned long)) {
if (__builtin_expect(!!(value != (unsigned long) (time_t) value
), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (time_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75860 } else if (8 * sizeof(time_t) >= 3 * PyLong_SHIFT30) {
75861 return (time_t) (((((((time_t)digits[2]) << PyLong_SHIFT30) | (time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0]));
75862 }
75863 }
75864 break;
75865 case 4:
75866 if (8 * sizeof(time_t) > 3 * PyLong_SHIFT30) {
75867 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75868 __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(time_t) < sizeof(unsigned long)) { if (__builtin_expect(!
!(value != (unsigned long) (time_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (time_t) -1
; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (time_t) value; }
75869 } else if (8 * sizeof(time_t) >= 4 * PyLong_SHIFT30) {
75870 return (time_t) (((((((((time_t)digits[3]) << PyLong_SHIFT30) | (time_t)digits[2]) << PyLong_SHIFT30) | (time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0]));
75871 }
75872 }
75873 break;
75874 }
75875#endif
75876#if CYTHON_COMPILING_IN_CPYTHON1
75877 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
75878 goto raise_neg_overflow;
75879 }
75880#else
75881 {
75882 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
75883 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
75884 return (time_t) -1;
75885 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
75886 goto raise_neg_overflow;
75887 }
75888#endif
75889 if (sizeof(time_t) <= sizeof(unsigned long)) {
75890 __PYX_VERIFY_RETURN_INT_EXC(time_t, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
time_t) < sizeof(unsigned long)) { if (__builtin_expect(!!
(value != (unsigned long) (time_t) value), 0)) { unsigned long
zero = 0; if (1 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (time_t) -1
; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (time_t) value; }
75891 } else if (sizeof(time_t) <= sizeof(unsigned PY_LONG_LONGlong long)) {
75892 __PYX_VERIFY_RETURN_INT_EXC(time_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(time_t) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (time_t) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(time_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75893 }
75894 } else {
75895#if CYTHON_USE_PYLONG_INTERNALS1
75896 const digit* digits = ((PyLongObject*)x)->ob_digit;
75897 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
75898 case 0: return (time_t) 0;
75899 case -1: __PYX_VERIFY_RETURN_INT(time_t, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(time_t) <
sizeof(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (
time_t) value), 0)) { sdigit zero = 0; if (0 && __builtin_expect
(!!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(time_t) -1; if (is_unsigned && __builtin_expect(!!(
value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75900 case 1: __PYX_VERIFY_RETURN_INT(time_t, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(time_t) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (time_t) value)
, 0)) { digit zero = 0; if (0 && __builtin_expect(!!(
value == (digit)-1 && PyErr_Occurred()), 0)) return (
time_t) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75901 case -2:
75902 if (8 * sizeof(time_t) - 1 > 1 * PyLong_SHIFT30) {
75903 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75904 __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(time_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (time_t) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (time_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75905 } else if (8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT30) {
75906 return (time_t) (((time_t)-1)*(((((time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0])));
75907 }
75908 }
75909 break;
75910 case 2:
75911 if (8 * sizeof(time_t) > 1 * PyLong_SHIFT30) {
75912 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
75913 __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(time_t) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (time_t) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (time_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75914 } else if (8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT30) {
75915 return (time_t) ((((((time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0])));
75916 }
75917 }
75918 break;
75919 case -3:
75920 if (8 * sizeof(time_t) - 1 > 2 * PyLong_SHIFT30) {
75921 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75922 __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(time_t) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (time_t) value), 0)) { long zero = 0; if (
0 && __builtin_expect(!!(value == (long)-1 &&
PyErr_Occurred()), 0)) return (time_t) -1; if (is_unsigned &&
__builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (time_t) value; }
75923 } else if (8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT30) {
75924 return (time_t) (((time_t)-1)*(((((((time_t)digits[2]) << PyLong_SHIFT30) | (time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0])));
75925 }
75926 }
75927 break;
75928 case 3:
75929 if (8 * sizeof(time_t) > 2 * PyLong_SHIFT30) {
75930 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
75931 __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(time_t) < sizeof(unsigned long)) {
if (__builtin_expect(!!(value != (unsigned long) (time_t) value
), 0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (time_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75932 } else if (8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT30) {
75933 return (time_t) ((((((((time_t)digits[2]) << PyLong_SHIFT30) | (time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0])));
75934 }
75935 }
75936 break;
75937 case -4:
75938 if (8 * sizeof(time_t) - 1 > 3 * PyLong_SHIFT30) {
75939 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75940 __PYX_VERIFY_RETURN_INT(time_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(time_t) < sizeof(long)) { if (__builtin_expect(!!(value !=
(long) (time_t) value), 0)) { long zero = 0; if (0 &&
__builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (time_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75941 } else if (8 * sizeof(time_t) - 1 > 4 * PyLong_SHIFT30) {
75942 return (time_t) (((time_t)-1)*(((((((((time_t)digits[3]) << PyLong_SHIFT30) | (time_t)digits[2]) << PyLong_SHIFT30) | (time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0])));
75943 }
75944 }
75945 break;
75946 case 4:
75947 if (8 * sizeof(time_t) > 3 * PyLong_SHIFT30) {
75948 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
75949 __PYX_VERIFY_RETURN_INT(time_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(time_t) < sizeof(unsigned long)) { if (__builtin_expect(!
!(value != (unsigned long) (time_t) value), 0)) { unsigned long
zero = 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (time_t) -1
; if (is_unsigned && __builtin_expect(!!(value < zero
), 0)) goto raise_neg_overflow; else goto raise_overflow; } }
return (time_t) value; }
75950 } else if (8 * sizeof(time_t) - 1 > 4 * PyLong_SHIFT30) {
75951 return (time_t) ((((((((((time_t)digits[3]) << PyLong_SHIFT30) | (time_t)digits[2]) << PyLong_SHIFT30) | (time_t)digits[1]) << PyLong_SHIFT30) | (time_t)digits[0])));
75952 }
75953 }
75954 break;
75955 }
75956#endif
75957 if (sizeof(time_t) <= sizeof(long)) {
75958 __PYX_VERIFY_RETURN_INT_EXC(time_t, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(time_t) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (time_t) value
), 0)) { long zero = 0; if (1 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (time_t
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75959 } else if (sizeof(time_t) <= sizeof(PY_LONG_LONGlong long)) {
75960 __PYX_VERIFY_RETURN_INT_EXC(time_t, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(time_t) <
sizeof(long long)) { if (__builtin_expect(!!(value != (long long
) (time_t) value), 0)) { long long zero = 0; if (1 &&
__builtin_expect(!!(value == (long long)-1 && PyErr_Occurred
()), 0)) return (time_t) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (time_t) value; }
75961 }
75962 }
75963 {
75964#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
75965 PyErr_SetString(PyExc_RuntimeError,
75966 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
75967#else
75968 time_t val;
75969 PyObject *v = __Pyx_PyNumber_Int(x);
75970 #if PY_MAJOR_VERSION2 < 3
75971 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
75972 PyObject *tmp = v;
75973 v = PyNumber_Long(tmp);
75974 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75975 }
75976 #endif
75977 if (likely(v)__builtin_expect(!!(v), 1)) {
75978 int one = 1; int is_little = (int)*(unsigned char *)&one;
75979 unsigned char *bytes = (unsigned char *)&val;
75980 int ret = _PyLong_AsByteArray((PyLongObject *)v,
75981 bytes, sizeof(val),
75982 is_little, !is_unsigned);
75983 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
75984 if (likely(!ret)__builtin_expect(!!(!ret), 1))
75985 return val;
75986 }
75987#endif
75988 return (time_t) -1;
75989 }
75990 } else {
75991 time_t val;
75992 PyObject *tmp = __Pyx_PyNumber_Int(x);
75993 if (!tmp) return (time_t) -1;
75994 val = __Pyx_PyInt_As_time_t(tmp);
75995 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
75996 return val;
75997 }
75998raise_overflow:
75999 PyErr_SetString(PyExc_OverflowError,
76000 "value too large to convert to time_t");
76001 return (time_t) -1;
76002raise_neg_overflow:
76003 PyErr_SetString(PyExc_OverflowError,
76004 "can't convert negative value to time_t");
76005 return (time_t) -1;
76006}
76007
76008static CYTHON_INLINE__inline__ long __Pyx_PyInt_As_long(PyObject *x) {
76009 const long neg_one = (long) -1, const_zero = (long) 0;
76010 const int is_unsigned = neg_one > const_zero;
76011#if PY_MAJOR_VERSION2 < 3
76012 if (likely(PyInt_Check(x))__builtin_expect(!!(((((x)->ob_type)->tp_flags & ((
1L<<23))) != 0)), 1)
) {
76013 if (sizeof(long) < sizeof(long)) {
76014 __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)){ long value = (((PyIntObject *)(x))->ob_ival); if (sizeof
(long) < sizeof(long)) { if (__builtin_expect(!!(value != (
long) (long) value), 0)) { long zero = 0; if (0 && __builtin_expect
(!!(value == (long)-1 && PyErr_Occurred()), 0)) return
(long) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76015 } else {
76016 long val = PyInt_AS_LONG(x)(((PyIntObject *)(x))->ob_ival);
76017 if (is_unsigned && unlikely(val < 0)__builtin_expect(!!(val < 0), 0)) {
76018 goto raise_neg_overflow;
76019 }
76020 return (long) val;
76021 }
76022 } else
76023#endif
76024 if (likely(PyLong_Check(x))__builtin_expect(!!(((((((PyObject*)(x))->ob_type))->tp_flags
& ((1L<<24))) != 0)), 1)
) {
76025 if (is_unsigned) {
76026#if CYTHON_USE_PYLONG_INTERNALS1
76027 const digit* digits = ((PyLongObject*)x)->ob_digit;
76028 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
76029 case 0: return (long) 0;
76030 case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]){ digit value = digits[0]; if (sizeof(long) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (long) value), 0
)) { digit zero = 0; if (0 && __builtin_expect(!!(value
== (digit)-1 && PyErr_Occurred()), 0)) return (long)
-1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76031 case 2:
76032 if (8 * sizeof(long) > 1 * PyLong_SHIFT30) {
76033 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
76034 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(long) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (long) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (long) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76035 } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT30) {
76036 return (long) (((((long)digits[1]) << PyLong_SHIFT30) | (long)digits[0]));
76037 }
76038 }
76039 break;
76040 case 3:
76041 if (8 * sizeof(long) > 2 * PyLong_SHIFT30) {
76042 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
76043 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(long) < sizeof(unsigned long)) { if
(__builtin_expect(!!(value != (unsigned long) (long) value),
0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (long) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76044 } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT30) {
76045 return (long) (((((((long)digits[2]) << PyLong_SHIFT30) | (long)digits[1]) << PyLong_SHIFT30) | (long)digits[0]));
76046 }
76047 }
76048 break;
76049 case 4:
76050 if (8 * sizeof(long) > 3 * PyLong_SHIFT30) {
76051 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
76052 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(long) < sizeof(unsigned long)) { if (__builtin_expect(!!(
value != (unsigned long) (long) value), 0)) { unsigned long zero
= 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (long) -1; if
(is_unsigned && __builtin_expect(!!(value < zero)
, 0)) goto raise_neg_overflow; else goto raise_overflow; } } return
(long) value; }
76053 } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT30) {
76054 return (long) (((((((((long)digits[3]) << PyLong_SHIFT30) | (long)digits[2]) << PyLong_SHIFT30) | (long)digits[1]) << PyLong_SHIFT30) | (long)digits[0]));
76055 }
76056 }
76057 break;
76058 }
76059#endif
76060#if CYTHON_COMPILING_IN_CPYTHON1
76061 if (unlikely(Py_SIZE(x) < 0)__builtin_expect(!!((((PyVarObject*)(x))->ob_size) < 0)
, 0)
) {
76062 goto raise_neg_overflow;
76063 }
76064#else
76065 {
76066 int result = PyObject_RichCompareBool(x, Py_False((PyObject *) &_Py_ZeroStruct), Py_LT0);
76067 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0))
76068 return (long) -1;
76069 if (unlikely(result == 1)__builtin_expect(!!(result == 1), 0))
76070 goto raise_neg_overflow;
76071 }
76072#endif
76073 if (sizeof(long) <= sizeof(unsigned long)) {
76074 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)){ unsigned long value = PyLong_AsUnsignedLong(x); if (sizeof(
long) < sizeof(unsigned long)) { if (__builtin_expect(!!(value
!= (unsigned long) (long) value), 0)) { unsigned long zero =
0; if (1 && __builtin_expect(!!(value == (unsigned long
)-1 && PyErr_Occurred()), 0)) return (long) -1; if (is_unsigned
&& __builtin_expect(!!(value < zero), 0)) goto raise_neg_overflow
; else goto raise_overflow; } } return (long) value; }
76075 } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONGlong long)) {
76076 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)){ unsigned long long value = PyLong_AsUnsignedLongLong(x); if
(sizeof(long) < sizeof(unsigned long long)) { if (__builtin_expect
(!!(value != (unsigned long long) (long) value), 0)) { unsigned
long long zero = 0; if (1 && __builtin_expect(!!(value
== (unsigned long long)-1 && PyErr_Occurred()), 0)) return
(long) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76077 }
76078 } else {
76079#if CYTHON_USE_PYLONG_INTERNALS1
76080 const digit* digits = ((PyLongObject*)x)->ob_digit;
76081 switch (Py_SIZE(x)(((PyVarObject*)(x))->ob_size)) {
76082 case 0: return (long) 0;
76083 case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, -(sdigit) digits[0]){ sdigit value = -(sdigit) digits[0]; if (sizeof(long) < sizeof
(sdigit)) { if (__builtin_expect(!!(value != (sdigit) (long) value
), 0)) { sdigit zero = 0; if (0 && __builtin_expect(!
!(value == (sdigit)-1 && PyErr_Occurred()), 0)) return
(long) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76084 case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]){ digit value = +digits[0]; if (sizeof(long) < sizeof(digit
)) { if (__builtin_expect(!!(value != (digit) (long) value), 0
)) { digit zero = 0; if (0 && __builtin_expect(!!(value
== (digit)-1 && PyErr_Occurred()), 0)) return (long)
-1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76085 case -2:
76086 if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT30) {
76087 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
76088 __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(long) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (long) value
), 0)) { long zero = 0; if (0 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (long
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76089 } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT30) {
76090 return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT30) | (long)digits[0])));
76091 }
76092 }
76093 break;
76094 case 2:
76095 if (8 * sizeof(long) > 1 * PyLong_SHIFT30) {
76096 if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT30) {
76097 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((unsigned long)digits[1]) <<
30) | (unsigned long)digits[0])); if (sizeof(long) < sizeof
(unsigned long)) { if (__builtin_expect(!!(value != (unsigned
long) (long) value), 0)) { unsigned long zero = 0; if (0 &&
__builtin_expect(!!(value == (unsigned long)-1 && PyErr_Occurred
()), 0)) return (long) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76098 } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT30) {
76099 return (long) ((((((long)digits[1]) << PyLong_SHIFT30) | (long)digits[0])));
76100 }
76101 }
76102 break;
76103 case -3:
76104 if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT30) {
76105 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
76106 __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(long) < sizeof(long)) { if (__builtin_expect
(!!(value != (long) (long) value), 0)) { long zero = 0; if (0
&& __builtin_expect(!!(value == (long)-1 && PyErr_Occurred
()), 0)) return (long) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76107 } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT30) {
76108 return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT30) | (long)digits[1]) << PyLong_SHIFT30) | (long)digits[0])));
76109 }
76110 }
76111 break;
76112 case 3:
76113 if (8 * sizeof(long) > 2 * PyLong_SHIFT30) {
76114 if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT30) {
76115 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((unsigned long)digits[2]) <<
30) | (unsigned long)digits[1]) << 30) | (unsigned long
)digits[0])); if (sizeof(long) < sizeof(unsigned long)) { if
(__builtin_expect(!!(value != (unsigned long) (long) value),
0)) { unsigned long zero = 0; if (0 && __builtin_expect
(!!(value == (unsigned long)-1 && PyErr_Occurred()), 0
)) return (long) -1; if (is_unsigned && __builtin_expect
(!!(value < zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76116 } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT30) {
76117 return (long) ((((((((long)digits[2]) << PyLong_SHIFT30) | (long)digits[1]) << PyLong_SHIFT30) | (long)digits[0])));
76118 }
76119 }
76120 break;
76121 case -4:
76122 if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT30) {
76123 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
76124 __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ long value = -(long) (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(long) < sizeof(long)) { if (__builtin_expect(!!(value != (
long) (long) value), 0)) { long zero = 0; if (0 && __builtin_expect
(!!(value == (long)-1 && PyErr_Occurred()), 0)) return
(long) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76125 } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT30) {
76126 return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT30) | (long)digits[2]) << PyLong_SHIFT30) | (long)digits[1]) << PyLong_SHIFT30) | (long)digits[0])));
76127 }
76128 }
76129 break;
76130 case 4:
76131 if (8 * sizeof(long) > 3 * PyLong_SHIFT30) {
76132 if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT30) {
76133 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))){ unsigned long value = (((((((((unsigned long)digits[3]) <<
30) | (unsigned long)digits[2]) << 30) | (unsigned long
)digits[1]) << 30) | (unsigned long)digits[0])); if (sizeof
(long) < sizeof(unsigned long)) { if (__builtin_expect(!!(
value != (unsigned long) (long) value), 0)) { unsigned long zero
= 0; if (0 && __builtin_expect(!!(value == (unsigned
long)-1 && PyErr_Occurred()), 0)) return (long) -1; if
(is_unsigned && __builtin_expect(!!(value < zero)
, 0)) goto raise_neg_overflow; else goto raise_overflow; } } return
(long) value; }
76134 } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT30) {
76135 return (long) ((((((((((long)digits[3]) << PyLong_SHIFT30) | (long)digits[2]) << PyLong_SHIFT30) | (long)digits[1]) << PyLong_SHIFT30) | (long)digits[0])));
76136 }
76137 }
76138 break;
76139 }
76140#endif
76141 if (sizeof(long) <= sizeof(long)) {
76142 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)){ long value = PyLong_AsLong(x); if (sizeof(long) < sizeof
(long)) { if (__builtin_expect(!!(value != (long) (long) value
), 0)) { long zero = 0; if (1 && __builtin_expect(!!(
value == (long)-1 && PyErr_Occurred()), 0)) return (long
) -1; if (is_unsigned && __builtin_expect(!!(value <
zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76143 } else if (sizeof(long) <= sizeof(PY_LONG_LONGlong long)) {
76144 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)){ long long value = PyLong_AsLongLong(x); if (sizeof(long) <
sizeof(long long)) { if (__builtin_expect(!!(value != (long long
) (long) value), 0)) { long long zero = 0; if (1 && __builtin_expect
(!!(value == (long long)-1 && PyErr_Occurred()), 0)) return
(long) -1; if (is_unsigned && __builtin_expect(!!(value
< zero), 0)) goto raise_neg_overflow; else goto raise_overflow
; } } return (long) value; }
76145 }
76146 }
76147 {
76148#if CYTHON_COMPILING_IN_PYPY0 && !defined(_PyLong_AsByteArray)
76149 PyErr_SetString(PyExc_RuntimeError,
76150 "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
76151#else
76152 long val;
76153 PyObject *v = __Pyx_PyNumber_Int(x);
76154 #if PY_MAJOR_VERSION2 < 3
76155 if (likely(v)__builtin_expect(!!(v), 1) && !PyLong_Check(v)((((((PyObject*)(v))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
76156 PyObject *tmp = v;
76157 v = PyNumber_Long(tmp);
76158 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
76159 }
76160 #endif
76161 if (likely(v)__builtin_expect(!!(v), 1)) {
76162 int one = 1; int is_little = (int)*(unsigned char *)&one;
76163 unsigned char *bytes = (unsigned char *)&val;
76164 int ret = _PyLong_AsByteArray((PyLongObject *)v,
76165 bytes, sizeof(val),
76166 is_little, !is_unsigned);
76167 Py_DECREF(v)do { if ( --((PyObject*)(v))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(v)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(v)))); } while (0)
;
76168 if (likely(!ret)__builtin_expect(!!(!ret), 1))
76169 return val;
76170 }
76171#endif
76172 return (long) -1;
76173 }
76174 } else {
76175 long val;
76176 PyObject *tmp = __Pyx_PyNumber_Int(x);
76177 if (!tmp) return (long) -1;
76178 val = __Pyx_PyInt_As_long(tmp);
76179 Py_DECREF(tmp)do { if ( --((PyObject*)(tmp))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(tmp)))); } while (0)
;
76180 return val;
76181 }
76182raise_overflow:
76183 PyErr_SetString(PyExc_OverflowError,
76184 "value too large to convert to long");
76185 return (long) -1;
76186raise_neg_overflow:
76187 PyErr_SetString(PyExc_OverflowError,
76188 "can't convert negative value to long");
76189 return (long) -1;
76190}
76191
76192#include <structmember.h>
76193#include <frameobject.h>
76194static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
76195static PyObject *__Pyx_Coroutine_Close(PyObject *self);
76196static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
76197#define __Pyx_Coroutine_Undelegate(gen)do { if ((gen)->yieldfrom) { PyObject *_py_tmp = (PyObject
*)((gen)->yieldfrom); ((gen)->yieldfrom) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
Py_CLEAR((gen)->yieldfrom)do { if ((gen)->yieldfrom) { PyObject *_py_tmp = (PyObject
*)((gen)->yieldfrom); ((gen)->yieldfrom) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
76198#if 1 || PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030300B0
76199static int __Pyx_PyGen_FetchStopIterationValue(PyObject **pvalue) {
76200 PyObject *et, *ev, *tb;
76201 PyObject *value = NULL((void*)0);
76202 __Pyx_ErrFetch(&et, &ev, &tb);
76203 if (!et) {
76204 Py_XDECREF(tb)do { if ((tb) == ((void*)0)) ; else do { if ( --((PyObject*)(
tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *
)(tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(tb)))); } while (0); } while (0)
;
76205 Py_XDECREF(ev)do { if ((ev) == ((void*)0)) ; else do { if ( --((PyObject*)(
ev))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *
)(ev)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(ev)))); } while (0); } while (0)
;
76206 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
76207 *pvalue = Py_None(&_Py_NoneStruct);
76208 return 0;
76209 }
76210 if (likely(et == PyExc_StopIteration)__builtin_expect(!!(et == PyExc_StopIteration), 1)) {
76211#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030300A0
76212 if (ev && Py_TYPE(ev)(((PyObject*)(ev))->ob_type) == (PyTypeObject*)PyExc_StopIteration) {
76213 value = ((PyStopIterationObject *)ev)->value;
76214 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
76215 Py_DECREF(ev)do { if ( --((PyObject*)(ev))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(ev)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(ev)))); } while (0)
;
76216 Py_XDECREF(tb)do { if ((tb) == ((void*)0)) ; else do { if ( --((PyObject*)(
tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *
)(tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(tb)))); } while (0); } while (0)
;
76217 Py_DECREF(et)do { if ( --((PyObject*)(et))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(et)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(et)))); } while (0)
;
76218 *pvalue = value;
76219 return 0;
76220 }
76221#endif
76222 if (!ev || !PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)((((PyObject*)(ev))->ob_type) == ((PyTypeObject*)PyExc_StopIteration
) || PyType_IsSubtype((((PyObject*)(ev))->ob_type), ((PyTypeObject
*)PyExc_StopIteration)))
) {
76223 if (!ev) {
76224 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
76225 ev = Py_None(&_Py_NoneStruct);
76226 } else if (PyTuple_Check(ev)((((((PyObject*)(ev))->ob_type))->tp_flags & ((1L<<
26))) != 0)
) {
76227 if (PyTuple_GET_SIZE(ev)(((PyVarObject*)(ev))->ob_size) >= 1) {
76228 PyObject *value;
76229#if CYTHON_COMPILING_IN_CPYTHON1
76230 value = PySequence_ITEM(ev, 0)( (((PyObject*)(ev))->ob_type)->tp_as_sequence->sq_item
(ev, 0) )
;
76231#else
76232 value = PyTuple_GET_ITEM(ev, 0)(((PyTupleObject *)(ev))->ob_item[0]);
76233 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
76234#endif
76235 Py_DECREF(ev)do { if ( --((PyObject*)(ev))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(ev)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(ev)))); } while (0)
;
76236 ev = value;
76237 } else {
76238 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
76239 Py_DECREF(ev)do { if ( --((PyObject*)(ev))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(ev)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(ev)))); } while (0)
;
76240 ev = Py_None(&_Py_NoneStruct);
76241 }
76242 }
76243 Py_XDECREF(tb)do { if ((tb) == ((void*)0)) ; else do { if ( --((PyObject*)(
tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *
)(tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(tb)))); } while (0); } while (0)
;
76244 Py_DECREF(et)do { if ( --((PyObject*)(et))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(et)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(et)))); } while (0)
;
76245 *pvalue = ev;
76246 return 0;
76247 }
76248 } else if (!PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
76249 __Pyx_ErrRestore(et, ev, tb);
76250 return -1;
76251 }
76252 PyErr_NormalizeException(&et, &ev, &tb);
76253 if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))__builtin_expect(!!(!((((PyObject*)(ev))->ob_type) == ((PyTypeObject
*)PyExc_StopIteration) || PyType_IsSubtype((((PyObject*)(ev))
->ob_type), ((PyTypeObject*)PyExc_StopIteration)))), 0)
) {
76254 __Pyx_ErrRestore(et, ev, tb);
76255 return -1;
76256 }
76257 Py_XDECREF(tb)do { if ((tb) == ((void*)0)) ; else do { if ( --((PyObject*)(
tb))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject *
)(tb)))->ob_type)->tp_dealloc)((PyObject *)((PyObject *
)(tb)))); } while (0); } while (0)
;
76258 Py_DECREF(et)do { if ( --((PyObject*)(et))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(et)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(et)))); } while (0)
;
76259#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030300A0
76260 value = ((PyStopIterationObject *)ev)->value;
76261 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
76262 Py_DECREF(ev)do { if ( --((PyObject*)(ev))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(ev)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(ev)))); } while (0)
;
76263#else
76264 {
76265 PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args);
76266 Py_DECREF(ev)do { if ( --((PyObject*)(ev))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(ev)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(ev)))); } while (0)
;
76267 if (likely(args)__builtin_expect(!!(args), 1)) {
76268 value = PySequence_GetItem(args, 0);
76269 Py_DECREF(args)do { if ( --((PyObject*)(args))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(args)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(args)))); } while (0)
;
76270 }
76271 if (unlikely(!value)__builtin_expect(!!(!value), 0)) {
76272 __Pyx_ErrRestore(NULL((void*)0), NULL((void*)0), NULL((void*)0));
76273 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
76274 value = Py_None(&_Py_NoneStruct);
76275 }
76276 }
76277#endif
76278 *pvalue = value;
76279 return 0;
76280}
76281#endif
76282static CYTHON_INLINE__inline__
76283void __Pyx_Coroutine_ExceptionClear(__pyx_CoroutineObject *self) {
76284 PyObject *exc_type = self->exc_type;
76285 PyObject *exc_value = self->exc_value;
76286 PyObject *exc_traceback = self->exc_traceback;
76287 self->exc_type = NULL((void*)0);
76288 self->exc_value = NULL((void*)0);
76289 self->exc_traceback = NULL((void*)0);
76290 Py_XDECREF(exc_type)do { if ((exc_type) == ((void*)0)) ; else do { if ( --((PyObject
*)(exc_type))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(exc_type)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(exc_type)))); } while (0); } while (0)
;
76291 Py_XDECREF(exc_value)do { if ((exc_value) == ((void*)0)) ; else do { if ( --((PyObject
*)(exc_value))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(exc_value)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(exc_value)))); } while (0); } while (0)
;
76292 Py_XDECREF(exc_traceback)do { if ((exc_traceback) == ((void*)0)) ; else do { if ( --((
PyObject*)(exc_traceback))->ob_refcnt != 0) ; else ( (*(((
PyObject*)((PyObject *)(exc_traceback)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(exc_traceback)))); } while (0); }
while (0)
;
76293}
76294static CYTHON_INLINE__inline__
76295int __Pyx_Coroutine_CheckRunning(__pyx_CoroutineObject *gen) {
76296 if (unlikely(gen->is_running)__builtin_expect(!!(gen->is_running), 0)) {
76297 PyErr_SetString(PyExc_ValueError,
76298 "generator already executing");
76299 return 1;
76300 }
76301 return 0;
76302}
76303static CYTHON_INLINE__inline__
76304PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value) {
76305 PyObject *retval;
76306 assert(!self->is_running)((void) (0));
76307 if (unlikely(self->resume_label == 0)__builtin_expect(!!(self->resume_label == 0), 0)) {
76308 if (unlikely(value && value != Py_None)__builtin_expect(!!(value && value != (&_Py_NoneStruct
)), 0)
) {
76309 PyErr_SetString(PyExc_TypeError,
76310 "can't send non-None value to a "
76311 "just-started generator");
76312 return NULL((void*)0);
76313 }
76314 }
76315 if (unlikely(self->resume_label == -1)__builtin_expect(!!(self->resume_label == -1), 0)) {
76316 PyErr_SetNone(PyExc_StopIteration);
76317 return NULL((void*)0);
76318 }
76319 if (value) {
76320#if CYTHON_COMPILING_IN_PYPY0
76321#else
76322 if (self->exc_traceback) {
76323 PyThreadState *tstate = PyThreadState_GET()(_PyThreadState_Current);
76324 PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback;
76325 PyFrameObject *f = tb->tb_frame;
76326 Py_XINCREF(tstate->frame)do { if ((tstate->frame) == ((void*)0)) ; else ( ((PyObject
*)(tstate->frame))->ob_refcnt++); } while (0)
;
76327 assert(f->f_back == NULL)((void) (0));
76328 f->f_back = tstate->frame;
76329 }
76330#endif
76331 __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value,
76332 &self->exc_traceback);
76333 } else {
76334 __Pyx_Coroutine_ExceptionClear(self);
76335 }
76336 self->is_running = 1;
76337 retval = self->body((PyObject *) self, value);
76338 self->is_running = 0;
76339 if (retval) {
76340 __Pyx_ExceptionSwap(&self->exc_type, &self->exc_value,
76341 &self->exc_traceback);
76342#if CYTHON_COMPILING_IN_PYPY0
76343#else
76344 if (self->exc_traceback) {
76345 PyTracebackObject *tb = (PyTracebackObject *) self->exc_traceback;
76346 PyFrameObject *f = tb->tb_frame;
76347 Py_CLEAR(f->f_back)do { if (f->f_back) { PyObject *_py_tmp = (PyObject *)(f->
f_back); (f->f_back) = ((void*)0); do { if ( --((PyObject*
)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(_py_tmp)))); } while (0); } } while (0)
;
76348 }
76349#endif
76350 } else {
76351 __Pyx_Coroutine_ExceptionClear(self);
76352 }
76353 return retval;
76354}
76355static CYTHON_INLINE__inline__
76356PyObject *__Pyx_Coroutine_MethodReturn(PyObject *retval) {
76357 if (unlikely(!retval && !PyErr_Occurred())__builtin_expect(!!(!retval && !PyErr_Occurred()), 0)) {
76358 PyErr_SetNone(PyExc_StopIteration);
76359 }
76360 return retval;
76361}
76362static CYTHON_INLINE__inline__
76363PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
76364 PyObject *ret;
76365 PyObject *val = NULL((void*)0);
76366 __Pyx_Coroutine_Undelegate(gen)do { if ((gen)->yieldfrom) { PyObject *_py_tmp = (PyObject
*)((gen)->yieldfrom); ((gen)->yieldfrom) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
76367 __Pyx_PyGen_FetchStopIterationValue(&val);
76368 ret = __Pyx_Coroutine_SendEx(gen, val);
76369 Py_XDECREF(val)do { if ((val) == ((void*)0)) ; else do { if ( --((PyObject*)
(val))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(val)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(val)))); } while (0); } while (0)
;
76370 return ret;
76371}
76372static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
76373 PyObject *retval;
76374 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
76375 PyObject *yf = gen->yieldfrom;
76376 if (unlikely(__Pyx_Coroutine_CheckRunning(gen))__builtin_expect(!!(__Pyx_Coroutine_CheckRunning(gen)), 0))
76377 return NULL((void*)0);
76378 if (yf) {
76379 PyObject *ret;
76380 gen->is_running = 1;
76381 #ifdef __Pyx_Generator_USED
76382 if (__Pyx_Generator_CheckExact(yf)((((PyObject*)(yf))->ob_type) == __pyx_GeneratorType)) {
76383 ret = __Pyx_Coroutine_Send(yf, value);
76384 } else
76385 #endif
76386 #ifdef __Pyx_Coroutine_USED
76387 if (__Pyx_Coroutine_CheckExact(yf)) {
76388 ret = __Pyx_Coroutine_Send(yf, value);
76389 } else
76390 #endif
76391 {
76392 if (value == Py_None(&_Py_NoneStruct))
76393 ret = Py_TYPE(yf)(((PyObject*)(yf))->ob_type)->tp_iternext(yf);
76394 else
76395 ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
76396 }
76397 gen->is_running = 0;
76398 if (likely(ret)__builtin_expect(!!(ret), 1)) {
76399 return ret;
76400 }
76401 retval = __Pyx_Coroutine_FinishDelegation(gen);
76402 } else {
76403 retval = __Pyx_Coroutine_SendEx(gen, value);
76404 }
76405 return __Pyx_Coroutine_MethodReturn(retval);
76406}
76407static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
76408 PyObject *retval = NULL((void*)0);
76409 int err = 0;
76410 #ifdef __Pyx_Generator_USED
76411 if (__Pyx_Generator_CheckExact(yf)((((PyObject*)(yf))->ob_type) == __pyx_GeneratorType)) {
76412 retval = __Pyx_Coroutine_Close(yf);
76413 if (!retval)
76414 return -1;
76415 } else
76416 #endif
76417 #ifdef __Pyx_Coroutine_USED
76418 if (__Pyx_Coroutine_CheckExact(yf)) {
76419 retval = __Pyx_Coroutine_Close(yf);
76420 if (!retval)
76421 return -1;
76422 } else
76423 #endif
76424 {
76425 PyObject *meth;
76426 gen->is_running = 1;
76427 meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close);
76428 if (unlikely(!meth)__builtin_expect(!!(!meth), 0)) {
76429 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
76430 PyErr_WriteUnraisable(yf);
76431 }
76432 PyErr_Clear();
76433 } else {
76434 retval = PyObject_CallFunction_PyObject_CallFunction_SizeT(meth, NULL((void*)0));
76435 Py_DECREF(meth)do { if ( --((PyObject*)(meth))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(meth)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(meth)))); } while (0)
;
76436 if (!retval)
76437 err = -1;
76438 }
76439 gen->is_running = 0;
76440 }
76441 Py_XDECREF(retval)do { if ((retval) == ((void*)0)) ; else do { if ( --((PyObject
*)(retval))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(retval)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(retval)))); } while (0); } while (0)
;
76442 return err;
76443}
76444static PyObject *__Pyx_Generator_Next(PyObject *self) {
76445 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
76446 PyObject *yf = gen->yieldfrom;
76447 if (unlikely(__Pyx_Coroutine_CheckRunning(gen))__builtin_expect(!!(__Pyx_Coroutine_CheckRunning(gen)), 0))
76448 return NULL((void*)0);
76449 if (yf) {
76450 PyObject *ret;
76451 gen->is_running = 1;
76452 ret = Py_TYPE(yf)(((PyObject*)(yf))->ob_type)->tp_iternext(yf);
76453 gen->is_running = 0;
76454 if (likely(ret)__builtin_expect(!!(ret), 1)) {
76455 return ret;
76456 }
76457 return __Pyx_Coroutine_FinishDelegation(gen);
76458 }
76459 return __Pyx_Coroutine_SendEx(gen, Py_None(&_Py_NoneStruct));
76460}
76461static PyObject *__Pyx_Coroutine_Close(PyObject *self) {
76462 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
76463 PyObject *retval, *raised_exception;
76464 PyObject *yf = gen->yieldfrom;
76465 int err = 0;
76466 if (unlikely(__Pyx_Coroutine_CheckRunning(gen))__builtin_expect(!!(__Pyx_Coroutine_CheckRunning(gen)), 0))
76467 return NULL((void*)0);
76468 if (yf) {
76469 Py_INCREF(yf)( ((PyObject*)(yf))->ob_refcnt++);
76470 err = __Pyx_Coroutine_CloseIter(gen, yf);
76471 __Pyx_Coroutine_Undelegate(gen)do { if ((gen)->yieldfrom) { PyObject *_py_tmp = (PyObject
*)((gen)->yieldfrom); ((gen)->yieldfrom) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
76472 Py_DECREF(yf)do { if ( --((PyObject*)(yf))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(yf)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(yf)))); } while (0)
;
76473 }
76474 if (err == 0)
76475 PyErr_SetNone(PyExc_GeneratorExit);
76476 retval = __Pyx_Coroutine_SendEx(gen, NULL((void*)0));
76477 if (retval) {
76478 Py_DECREF(retval)do { if ( --((PyObject*)(retval))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(retval)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(retval)))); } while (0)
;
76479 PyErr_SetString(PyExc_RuntimeError,
76480 "generator ignored GeneratorExit");
76481 return NULL((void*)0);
76482 }
76483 raised_exception = PyErr_Occurred();
76484 if (!raised_exception
76485 || raised_exception == PyExc_StopIteration
76486 || raised_exception == PyExc_GeneratorExit
76487 || PyErr_GivenExceptionMatches(raised_exception, PyExc_GeneratorExit)
76488 || PyErr_GivenExceptionMatches(raised_exception, PyExc_StopIteration))
76489 {
76490 if (raised_exception) PyErr_Clear();
76491 Py_INCREF(Py_None)( ((PyObject*)((&_Py_NoneStruct)))->ob_refcnt++);
76492 return Py_None(&_Py_NoneStruct);
76493 }
76494 return NULL((void*)0);
76495}
76496static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
76497 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
76498 PyObject *typ;
76499 PyObject *tb = NULL((void*)0);
76500 PyObject *val = NULL((void*)0);
76501 PyObject *yf = gen->yieldfrom;
76502 if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))
76503 return NULL((void*)0);
76504 if (unlikely(__Pyx_Coroutine_CheckRunning(gen))__builtin_expect(!!(__Pyx_Coroutine_CheckRunning(gen)), 0))
76505 return NULL((void*)0);
76506 if (yf) {
76507 PyObject *ret;
76508 Py_INCREF(yf)( ((PyObject*)(yf))->ob_refcnt++);
76509 if (PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit)) {
76510 int err = __Pyx_Coroutine_CloseIter(gen, yf);
76511 Py_DECREF(yf)do { if ( --((PyObject*)(yf))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(yf)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(yf)))); } while (0)
;
76512 __Pyx_Coroutine_Undelegate(gen)do { if ((gen)->yieldfrom) { PyObject *_py_tmp = (PyObject
*)((gen)->yieldfrom); ((gen)->yieldfrom) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
76513 if (err < 0)
76514 return __Pyx_Coroutine_MethodReturn(__Pyx_Coroutine_SendEx(gen, NULL((void*)0)));
76515 goto throw_here;
76516 }
76517 gen->is_running = 1;
76518 #ifdef __Pyx_Generator_USED
76519 if (__Pyx_Generator_CheckExact(yf)((((PyObject*)(yf))->ob_type) == __pyx_GeneratorType)) {
76520 ret = __Pyx_Coroutine_Throw(yf, args);
76521 } else
76522 #endif
76523 #ifdef __Pyx_Coroutine_USED
76524 if (__Pyx_Coroutine_CheckExact(yf)) {
76525 ret = __Pyx_Coroutine_Throw(yf, args);
76526 } else
76527 #endif
76528 {
76529 PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw);
76530 if (unlikely(!meth)__builtin_expect(!!(!meth), 0)) {
76531 Py_DECREF(yf)do { if ( --((PyObject*)(yf))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(yf)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(yf)))); } while (0)
;
76532 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
76533 gen->is_running = 0;
76534 return NULL((void*)0);
76535 }
76536 PyErr_Clear();
76537 __Pyx_Coroutine_Undelegate(gen)do { if ((gen)->yieldfrom) { PyObject *_py_tmp = (PyObject
*)((gen)->yieldfrom); ((gen)->yieldfrom) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
76538 gen->is_running = 0;
76539 goto throw_here;
76540 }
76541 ret = PyObject_CallObject(meth, args);
76542 Py_DECREF(meth)do { if ( --((PyObject*)(meth))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(meth)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(meth)))); } while (0)
;
76543 }
76544 gen->is_running = 0;
76545 Py_DECREF(yf)do { if ( --((PyObject*)(yf))->ob_refcnt != 0) ; else ( (*
(((PyObject*)((PyObject *)(yf)))->ob_type)->tp_dealloc)
((PyObject *)((PyObject *)(yf)))); } while (0)
;
76546 if (!ret) {
76547 ret = __Pyx_Coroutine_FinishDelegation(gen);
76548 }
76549 return __Pyx_Coroutine_MethodReturn(ret);
76550 }
76551throw_here:
76552 __Pyx_Raise(typ, val, tb, NULL((void*)0));
76553 return __Pyx_Coroutine_MethodReturn(__Pyx_Coroutine_SendEx(gen, NULL((void*)0)));
76554}
76555static int __Pyx_Coroutine_traverse(PyObject *self, visitproc visit, void *arg) {
76556 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
76557 Py_VISIT(gen->closure)do { if (gen->closure) { int vret = visit((PyObject *)(gen
->closure), arg); if (vret) return vret; } } while (0)
;
76558 Py_VISIT(gen->classobj)do { if (gen->classobj) { int vret = visit((PyObject *)(gen
->classobj), arg); if (vret) return vret; } } while (0)
;
76559 Py_VISIT(gen->yieldfrom)do { if (gen->yieldfrom) { int vret = visit((PyObject *)(gen
->yieldfrom), arg); if (vret) return vret; } } while (0)
;
76560 Py_VISIT(gen->exc_type)do { if (gen->exc_type) { int vret = visit((PyObject *)(gen
->exc_type), arg); if (vret) return vret; } } while (0)
;
76561 Py_VISIT(gen->exc_value)do { if (gen->exc_value) { int vret = visit((PyObject *)(gen
->exc_value), arg); if (vret) return vret; } } while (0)
;
76562 Py_VISIT(gen->exc_traceback)do { if (gen->exc_traceback) { int vret = visit((PyObject *
)(gen->exc_traceback), arg); if (vret) return vret; } } while
(0)
;
76563 return 0;
76564}
76565static int __Pyx_Coroutine_clear(PyObject *self) {
76566 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
76567 Py_CLEAR(gen->closure)do { if (gen->closure) { PyObject *_py_tmp = (PyObject *)(
gen->closure); (gen->closure) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
76568 Py_CLEAR(gen->classobj)do { if (gen->classobj) { PyObject *_py_tmp = (PyObject *)
(gen->classobj); (gen->classobj) = ((void*)0); do { if (
--((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
76569 Py_CLEAR(gen->yieldfrom)do { if (gen->yieldfrom) { PyObject *_py_tmp = (PyObject *
)(gen->yieldfrom); (gen->yieldfrom) = ((void*)0); do { if
( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*((
(PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
76570 Py_CLEAR(gen->exc_type)do { if (gen->exc_type) { PyObject *_py_tmp = (PyObject *)
(gen->exc_type); (gen->exc_type) = ((void*)0); do { if (
--((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
76571 Py_CLEAR(gen->exc_value)do { if (gen->exc_value) { PyObject *_py_tmp = (PyObject *
)(gen->exc_value); (gen->exc_value) = ((void*)0); do { if
( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*((
(PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
76572 Py_CLEAR(gen->exc_traceback)do { if (gen->exc_traceback) { PyObject *_py_tmp = (PyObject
*)(gen->exc_traceback); (gen->exc_traceback) = ((void*
)0); do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(_py_tmp)))); } while (0
); } } while (0)
;
76573 Py_CLEAR(gen->gi_name)do { if (gen->gi_name) { PyObject *_py_tmp = (PyObject *)(
gen->gi_name); (gen->gi_name) = ((void*)0); do { if ( --
((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else ( (*(((PyObject
*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(_py_tmp)))); } while (0); } } while (0)
;
76574 Py_CLEAR(gen->gi_qualname)do { if (gen->gi_qualname) { PyObject *_py_tmp = (PyObject
*)(gen->gi_qualname); (gen->gi_qualname) = ((void*)0);
do { if ( --((PyObject*)(_py_tmp))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(_py_tmp)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(_py_tmp)))); } while (0); } } while
(0)
;
76575 return 0;
76576}
76577static void __Pyx_Coroutine_dealloc(PyObject *self) {
76578 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
76579 PyObject_GC_UnTrack(gen);
76580 if (gen->gi_weakreflist != NULL((void*)0))
76581 PyObject_ClearWeakRefs(self);
76582 if (gen->resume_label > 0) {
76583 PyObject_GC_Track(self);
76584#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
76585 if (PyObject_CallFinalizerFromDealloc(self))
76586#else
76587 Py_TYPE(gen)(((PyObject*)(gen))->ob_type)->tp_del(self);
76588 if (self->ob_refcnt > 0)
76589#endif
76590 {
76591 return;
76592 }
76593 PyObject_GC_UnTrack(self);
76594 }
76595 __Pyx_Coroutine_clear(self);
76596 PyObject_GC_Del(gen);
76597}
76598static void __Pyx_Coroutine_del(PyObject *self) {
76599 PyObject *res;
76600 PyObject *error_type, *error_value, *error_traceback;
76601 __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
76602 if (gen->resume_label <= 0)
76603 return ;
76604#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030400a1
76605 assert(self->ob_refcnt == 0)((void) (0));
76606 self->ob_refcnt = 1;
76607#endif
76608 __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
76609 res = __Pyx_Coroutine_Close(self);
76610 if (res == NULL((void*)0))
76611 PyErr_WriteUnraisable(self);
76612 else
76613 Py_DECREF(res)do { if ( --((PyObject*)(res))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(res)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(res)))); } while (0)
;
76614 __Pyx_ErrRestore(error_type, error_value, error_traceback);
76615#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x030400a1
76616 assert(self->ob_refcnt > 0)((void) (0));
76617 if (--self->ob_refcnt == 0) {
76618 return;
76619 }
76620 {
76621 Py_ssize_t refcnt = self->ob_refcnt;
76622 _Py_NewReference(self)( (((PyObject*)(self))->ob_refcnt) = 1);
76623 self->ob_refcnt = refcnt;
76624 }
76625#if CYTHON_COMPILING_IN_CPYTHON1
76626 assert(PyType_IS_GC(self->ob_type) &&((void) (0))
76627 _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED)((void) (0));
76628 _Py_DEC_REFTOTAL;
76629#endif
76630#ifdef COUNT_ALLOCS
76631 --Py_TYPE(self)(((PyObject*)(self))->ob_type)->tp_frees;
76632 --Py_TYPE(self)(((PyObject*)(self))->ob_type)->tp_allocs;
76633#endif
76634#endif
76635}
76636static PyObject *
76637__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self)
76638{
76639 Py_INCREF(self->gi_name)( ((PyObject*)(self->gi_name))->ob_refcnt++);
76640 return self->gi_name;
76641}
76642static int
76643__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value)
76644{
76645 PyObject *tmp;
76646#if PY_MAJOR_VERSION2 >= 3
76647 if (unlikely(value == NULL || !PyUnicode_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<28))) !=
0)), 0)
) {
76648#else
76649 if (unlikely(value == NULL || !PyString_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<27))) !=
0)), 0)
) {
76650#endif
76651 PyErr_SetString(PyExc_TypeError,
76652 "__name__ must be set to a string object");
76653 return -1;
76654 }
76655 tmp = self->gi_name;
76656 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
76657 self->gi_name = value;
76658 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
76659 return 0;
76660}
76661static PyObject *
76662__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self)
76663{
76664 Py_INCREF(self->gi_qualname)( ((PyObject*)(self->gi_qualname))->ob_refcnt++);
76665 return self->gi_qualname;
76666}
76667static int
76668__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value)
76669{
76670 PyObject *tmp;
76671#if PY_MAJOR_VERSION2 >= 3
76672 if (unlikely(value == NULL || !PyUnicode_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<28))) !=
0)), 0)
) {
76673#else
76674 if (unlikely(value == NULL || !PyString_Check(value))__builtin_expect(!!(value == ((void*)0) || !((((((PyObject*)(
value))->ob_type))->tp_flags & ((1L<<27))) !=
0)), 0)
) {
76675#endif
76676 PyErr_SetString(PyExc_TypeError,
76677 "__qualname__ must be set to a string object");
76678 return -1;
76679 }
76680 tmp = self->gi_qualname;
76681 Py_INCREF(value)( ((PyObject*)(value))->ob_refcnt++);
76682 self->gi_qualname = value;
76683 Py_XDECREF(tmp)do { if ((tmp) == ((void*)0)) ; else do { if ( --((PyObject*)
(tmp))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(tmp)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(tmp)))); } while (0); } while (0)
;
76684 return 0;
76685}
76686static __pyx_CoroutineObject *__Pyx__Coroutine_New(PyTypeObject* type, __pyx_coroutine_body_t body,
76687 PyObject *closure, PyObject *name, PyObject *qualname) {
76688 __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type)( (__pyx_CoroutineObject *) _PyObject_GC_New(type) );
76689 if (gen == NULL((void*)0))
76690 return NULL((void*)0);
76691 gen->body = body;
76692 gen->closure = closure;
76693 Py_XINCREF(closure)do { if ((closure) == ((void*)0)) ; else ( ((PyObject*)(closure
))->ob_refcnt++); } while (0)
;
76694 gen->is_running = 0;
76695 gen->resume_label = 0;
76696 gen->classobj = NULL((void*)0);
76697 gen->yieldfrom = NULL((void*)0);
76698 gen->exc_type = NULL((void*)0);
76699 gen->exc_value = NULL((void*)0);
76700 gen->exc_traceback = NULL((void*)0);
76701 gen->gi_weakreflist = NULL((void*)0);
76702 Py_XINCREF(qualname)do { if ((qualname) == ((void*)0)) ; else ( ((PyObject*)(qualname
))->ob_refcnt++); } while (0)
;
76703 gen->gi_qualname = qualname;
76704 Py_XINCREF(name)do { if ((name) == ((void*)0)) ; else ( ((PyObject*)(name))->
ob_refcnt++); } while (0)
;
76705 gen->gi_name = name;
76706 PyObject_GC_Track(gen);
76707 return gen;
76708}
76709
76710static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
76711#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
76712 int result;
76713 PyObject *globals, *result_obj;
76714 globals = PyDict_New(); if (unlikely(!globals)__builtin_expect(!!(!globals), 0)) goto ignore;
76715 result = PyDict_SetItemString(globals, "_cython_coroutine_type",
76716 #ifdef __Pyx_Coroutine_USED
76717 (PyObject*)__pyx_CoroutineType);
76718 #else
76719 Py_None(&_Py_NoneStruct));
76720 #endif
76721 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0)) goto ignore;
76722 result = PyDict_SetItemString(globals, "_cython_generator_type",
76723 #ifdef __Pyx_Generator_USED
76724 (PyObject*)__pyx_GeneratorType);
76725 #else
76726 Py_None(&_Py_NoneStruct));
76727 #endif
76728 if (unlikely(result < 0)__builtin_expect(!!(result < 0), 0)) goto ignore;
76729 if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)__builtin_expect(!!(PyDict_SetItemString(globals, "_module", module
) < 0), 0)
) goto ignore;
76730 if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)__builtin_expect(!!(PyDict_SetItemString(globals, "__builtins__"
, __pyx_b) < 0), 0)
) goto ignore;
76731 result_obj = PyRun_String(py_code, Py_file_input, globals, globals)PyRun_StringFlags(py_code, 257, globals, globals, ((void*)0));
76732 if (unlikely(!result_obj)__builtin_expect(!!(!result_obj), 0)) goto ignore;
76733 Py_DECREF(result_obj)do { if ( --((PyObject*)(result_obj))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(result_obj)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(result_obj)))); } while
(0)
;
76734 Py_DECREF(globals)do { if ( --((PyObject*)(globals))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(globals)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(globals)))); } while (0)
;
76735 return module;
76736ignore:
76737 Py_XDECREF(globals)do { if ((globals) == ((void*)0)) ; else do { if ( --((PyObject
*)(globals))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(globals)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(globals)))); } while (0); } while (0)
;
76738 PyErr_WriteUnraisable(module);
76739 if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)__builtin_expect(!!(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type"
, 1) < 0), 0)
) {
76740 Py_DECREF(module)do { if ( --((PyObject*)(module))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(module)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(module)))); } while (0)
;
76741 module = NULL((void*)0);
76742 }
76743#else
76744 py_code++;
76745#endif
76746 return module;
76747}
76748
76749#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
76750static PyObject* __Pyx_patch_abc_module(PyObject *module);
76751static PyObject* __Pyx_patch_abc_module(PyObject *module) {
76752 module = __Pyx_Coroutine_patch_module(
76753 module, ""
76754"if _cython_generator_type is not None:\n"
76755" try: Generator = _module.Generator\n"
76756" except AttributeError: pass\n"
76757" else: Generator.register(_cython_generator_type)\n"
76758"if _cython_coroutine_type is not None:\n"
76759" try: Coroutine = _module.Coroutine\n"
76760" except AttributeError: pass\n"
76761" else: Coroutine.register(_cython_coroutine_type)\n"
76762 );
76763 return module;
76764}
76765#endif
76766static int __Pyx_patch_abc(void) {
76767#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
76768 static int abc_patched = 0;
76769 if (!abc_patched) {
76770 PyObject *module;
76771 module = PyImport_ImportModule((PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x03030000) ? "collections.abc" : "collections");
76772 if (!module) {
76773 PyErr_WriteUnraisable(NULL((void*)0));
76774 if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,__builtin_expect(!!(PyErr_WarnEx(PyExc_RuntimeWarning, ((((2 <<
24) | (7 << 16) | (12 << 8) | (0xF << 4) |
(0 << 0)) >= 0x03030000) ? "Cython module failed to register with collections.abc module"
: "Cython module failed to register with collections module"
), 1) < 0), 0)
76775 ((PY_VERSION_HEX >= 0x03030000) ?__builtin_expect(!!(PyErr_WarnEx(PyExc_RuntimeWarning, ((((2 <<
24) | (7 << 16) | (12 << 8) | (0xF << 4) |
(0 << 0)) >= 0x03030000) ? "Cython module failed to register with collections.abc module"
: "Cython module failed to register with collections module"
), 1) < 0), 0)
76776 "Cython module failed to register with collections.abc module" :__builtin_expect(!!(PyErr_WarnEx(PyExc_RuntimeWarning, ((((2 <<
24) | (7 << 16) | (12 << 8) | (0xF << 4) |
(0 << 0)) >= 0x03030000) ? "Cython module failed to register with collections.abc module"
: "Cython module failed to register with collections module"
), 1) < 0), 0)
76777 "Cython module failed to register with collections module"), 1) < 0)__builtin_expect(!!(PyErr_WarnEx(PyExc_RuntimeWarning, ((((2 <<
24) | (7 << 16) | (12 << 8) | (0xF << 4) |
(0 << 0)) >= 0x03030000) ? "Cython module failed to register with collections.abc module"
: "Cython module failed to register with collections module"
), 1) < 0), 0)
) {
76778 return -1;
76779 }
76780 } else {
76781 module = __Pyx_patch_abc_module(module);
76782 abc_patched = 1;
76783 if (unlikely(!module)__builtin_expect(!!(!module), 0))
76784 return -1;
76785 Py_DECREF(module)do { if ( --((PyObject*)(module))->ob_refcnt != 0) ; else (
(*(((PyObject*)((PyObject *)(module)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(module)))); } while (0)
;
76786 }
76787 module = PyImport_ImportModule("backports_abc");
76788 if (module) {
76789 module = __Pyx_patch_abc_module(module);
76790 Py_XDECREF(module)do { if ((module) == ((void*)0)) ; else do { if ( --((PyObject
*)(module))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(module)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(module)))); } while (0); } while (0)
;
76791 }
76792 if (!module) {
76793 PyErr_Clear();
76794 }
76795 }
76796#else
76797 if (0) __Pyx_Coroutine_patch_module(NULL((void*)0), NULL((void*)0));
76798#endif
76799 return 0;
76800}
76801
76802static PyMethodDef __pyx_Generator_methods[] = {
76803 {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O0x0008,
76804 (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")"send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration."},
76805 {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS0x0001,
76806 (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")"throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration."},
76807 {"close", (PyCFunction) __Pyx_Coroutine_Close, METH_NOARGS0x0004,
76808 (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")"close() -> raise GeneratorExit inside generator."},
76809 {0, 0, 0, 0}
76810};
76811static PyMemberDef __pyx_Generator_memberlist[] = {
76812 {(char *) "gi_running", T_BOOL14, offsetof(__pyx_CoroutineObject, is_running)__builtin_offsetof(__pyx_CoroutineObject, is_running), READONLY1, NULL((void*)0)},
76813 {(char*) "gi_yieldfrom", T_OBJECT6, offsetof(__pyx_CoroutineObject, yieldfrom)__builtin_offsetof(__pyx_CoroutineObject, yieldfrom), READONLY1,
76814 (char*) PyDoc_STR("object being iterated by 'yield from', or None")"object being iterated by 'yield from', or None"},
76815 {0, 0, 0, 0, 0}
76816};
76817static PyGetSetDef __pyx_Generator_getsets[] = {
76818 {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
76819 (char*) PyDoc_STR("name of the generator")"name of the generator", 0},
76820 {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
76821 (char*) PyDoc_STR("qualified name of the generator")"qualified name of the generator", 0},
76822 {0, 0, 0, 0, 0}
76823};
76824static PyTypeObject __pyx_GeneratorType_type = {
76825 PyVarObject_HEAD_INIT(0, 0)1, 0, 0,
76826 "generator",
76827 sizeof(__pyx_CoroutineObject),
76828 0,
76829 (destructor) __Pyx_Coroutine_dealloc,
76830 0,
76831 0,
76832 0,
76833 0,
76834 0,
76835 0,
76836 0,
76837 0,
76838 0,
76839 0,
76840 0,
76841 0,
76842 0,
76843 0,
76844 Py_TPFLAGS_DEFAULT( (1L<<0) | (1L<<1) | (1L<<3) | (1L<<
5) | (1L<<6) | (1L<<7) | (1L<<8) | 0 | (1L<<
17) | 0)
| Py_TPFLAGS_HAVE_GC(1L<<14) | Py_TPFLAGS_HAVE_FINALIZE0,
76845 0,
76846 (traverseproc) __Pyx_Coroutine_traverse,
76847 0,
76848 0,
76849 offsetof(__pyx_CoroutineObject, gi_weakreflist)__builtin_offsetof(__pyx_CoroutineObject, gi_weakreflist),
76850 0,
76851 (iternextfunc) __Pyx_Generator_Next,
76852 __pyx_Generator_methods,
76853 __pyx_Generator_memberlist,
76854 __pyx_Generator_getsets,
76855 0,
76856 0,
76857 0,
76858 0,
76859 0,
76860 0,
76861 0,
76862 0,
76863 0,
76864 0,
76865 0,
76866 0,
76867 0,
76868 0,
76869 0,
76870#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
76871 0,
76872#else
76873 __Pyx_Coroutine_del,
76874#endif
76875 0,
76876#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
>= 0x030400a1
76877 __Pyx_Coroutine_del,
76878#endif
76879};
76880static int __pyx_Generator_init(void) {
76881 __pyx_GeneratorType_type.tp_getattro = PyObject_GenericGetAttr;
76882 __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
76883 __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
76884 if (unlikely(!__pyx_GeneratorType)__builtin_expect(!!(!__pyx_GeneratorType), 0)) {
76885 return -1;
76886 }
76887 return 0;
76888}
76889
76890static int __Pyx_check_binary_version(void) {
76891 char ctversion[4], rtversion[4];
76892 PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION2, PY_MINOR_VERSION7);
76893 PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
76894 if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
76895 char message[200];
76896 PyOS_snprintf(message, sizeof(message),
76897 "compiletime version %s of module '%.100s' "
76898 "does not match runtime version %s",
76899 ctversion, __Pyx_MODULE_NAME"rados", rtversion);
76900 return PyErr_WarnEx(NULL((void*)0), message, 1);
76901 }
76902 return 0;
76903}
76904
76905#ifndef __PYX_HAVE_RT_ImportModule
76906#define __PYX_HAVE_RT_ImportModule
76907static PyObject *__Pyx_ImportModule(const char *name) {
76908 PyObject *py_name = 0;
76909 PyObject *py_module = 0;
76910 py_name = __Pyx_PyIdentifier_FromString(name)PyString_FromString(name);
76911 if (!py_name)
76912 goto bad;
76913 py_module = PyImport_Import(py_name);
76914 Py_DECREF(py_name)do { if ( --((PyObject*)(py_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_name)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(py_name)))); } while (0)
;
76915 return py_module;
76916bad:
76917 Py_XDECREF(py_name)do { if ((py_name) == ((void*)0)) ; else do { if ( --((PyObject
*)(py_name))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(py_name)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(py_name)))); } while (0); } while (0)
;
76918 return 0;
76919}
76920#endif
76921
76922#ifndef __PYX_HAVE_RT_ImportType
76923#define __PYX_HAVE_RT_ImportType
76924static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name,
76925 size_t size, int strict)
76926{
76927 PyObject *py_module = 0;
76928 PyObject *result = 0;
76929 PyObject *py_name = 0;
76930 char warning[200];
76931 Py_ssize_t basicsize;
76932#ifdef Py_LIMITED_API
76933 PyObject *py_basicsize;
76934#endif
76935 py_module = __Pyx_ImportModule(module_name);
76936 if (!py_module)
76937 goto bad;
76938 py_name = __Pyx_PyIdentifier_FromString(class_name)PyString_FromString(class_name);
76939 if (!py_name)
76940 goto bad;
76941 result = PyObject_GetAttr(py_module, py_name);
76942 Py_DECREF(py_name)do { if ( --((PyObject*)(py_name))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_name)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(py_name)))); } while (0)
;
76943 py_name = 0;
76944 Py_DECREF(py_module)do { if ( --((PyObject*)(py_module))->ob_refcnt != 0) ; else
( (*(((PyObject*)((PyObject *)(py_module)))->ob_type)->
tp_dealloc)((PyObject *)((PyObject *)(py_module)))); } while (
0)
;
76945 py_module = 0;
76946 if (!result)
76947 goto bad;
76948 if (!PyType_Check(result)((((((PyObject*)(result))->ob_type))->tp_flags & ((
1L<<31))) != 0)
) {
76949 PyErr_Format(PyExc_TypeError,
76950 "%.200s.%.200s is not a type object",
76951 module_name, class_name);
76952 goto bad;
76953 }
76954#ifndef Py_LIMITED_API
76955 basicsize = ((PyTypeObject *)result)->tp_basicsize;
76956#else
76957 py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
76958 if (!py_basicsize)
76959 goto bad;
76960 basicsize = PyLong_AsSsize_t(py_basicsize);
76961 Py_DECREF(py_basicsize)do { if ( --((PyObject*)(py_basicsize))->ob_refcnt != 0) ;
else ( (*(((PyObject*)((PyObject *)(py_basicsize)))->ob_type
)->tp_dealloc)((PyObject *)((PyObject *)(py_basicsize))));
} while (0)
;
76962 py_basicsize = 0;
76963 if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
76964 goto bad;
76965#endif
76966 if (!strict && (size_t)basicsize > size) {
76967 PyOS_snprintf(warning, sizeof(warning),
76968 "%s.%s size changed, may indicate binary incompatibility",
76969 module_name, class_name);
76970 if (PyErr_WarnEx(NULL((void*)0), warning, 0) < 0) goto bad;
76971 }
76972 else if ((size_t)basicsize != size) {
76973 PyErr_Format(PyExc_ValueError,
76974 "%.200s.%.200s has the wrong size, try recompiling",
76975 module_name, class_name);
76976 goto bad;
76977 }
76978 return (PyTypeObject *)result;
76979bad:
76980 Py_XDECREF(py_module)do { if ((py_module) == ((void*)0)) ; else do { if ( --((PyObject
*)(py_module))->ob_refcnt != 0) ; else ( (*(((PyObject*)((
PyObject *)(py_module)))->ob_type)->tp_dealloc)((PyObject
*)((PyObject *)(py_module)))); } while (0); } while (0)
;
76981 Py_XDECREF(result)do { if ((result) == ((void*)0)) ; else do { if ( --((PyObject
*)(result))->ob_refcnt != 0) ; else ( (*(((PyObject*)((PyObject
*)(result)))->ob_type)->tp_dealloc)((PyObject *)((PyObject
*)(result)))); } while (0); } while (0)
;
76982 return NULL((void*)0);
76983}
76984#endif
76985
76986static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
76987 while (t->p) {
76988 #if PY_MAJOR_VERSION2 < 3
76989 if (t->is_unicode) {
76990 *t->p = PyUnicode_DecodeUTF8PyUnicodeUCS4_DecodeUTF8(t->s, t->n - 1, NULL((void*)0));
76991 } else if (t->intern) {
76992 *t->p = PyString_InternFromString(t->s);
76993 } else {
76994 *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
76995 }
76996 #else
76997 if (t->is_unicode | t->is_str) {
76998 if (t->intern) {
76999 *t->p = PyUnicode_InternFromString(t->s);
77000 } else if (t->encoding) {
77001 *t->p = PyUnicode_DecodePyUnicodeUCS4_Decode(t->s, t->n - 1, t->encoding, NULL((void*)0));
77002 } else {
77003 *t->p = PyUnicode_FromStringAndSizePyUnicodeUCS4_FromStringAndSize(t->s, t->n - 1);
77004 }
77005 } else {
77006 *t->p = PyBytes_FromStringAndSizePyString_FromStringAndSize(t->s, t->n - 1);
77007 }
77008 #endif
77009 if (!*t->p)
77010 return -1;
77011 ++t;
77012 }
77013 return 0;
77014}
77015
77016static CYTHON_INLINE__inline__ PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
77017 return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str))PyUnicodeUCS4_Decode(c_str, (Py_ssize_t)strlen(c_str), "", ((
void*)0))
;
77018}
77019static CYTHON_INLINE__inline__ char* __Pyx_PyObject_AsString(PyObject* o) {
77020 Py_ssize_t ignore;
77021 return __Pyx_PyObject_AsStringAndSize(o, &ignore);
77022}
77023static CYTHON_INLINE__inline__ char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
77024#if CYTHON_COMPILING_IN_CPYTHON1 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII0 || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT0)
77025 if (
77026#if PY_MAJOR_VERSION2 < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII0
77027 __Pyx_sys_getdefaultencoding_not_ascii &&
77028#endif
77029 PyUnicode_Check(o)((((((PyObject*)(o))->ob_type))->tp_flags & ((1L<<
28))) != 0)
) {
77030#if PY_VERSION_HEX((2 << 24) | (7 << 16) | (12 << 8) | (0xF <<
4) | (0 << 0))
< 0x03030000
77031 char* defenc_c;
77032 PyObject* defenc = _PyUnicode_AsDefaultEncodedString_PyUnicodeUCS4_AsDefaultEncodedString(o, NULL((void*)0));
77033 if (!defenc) return NULL((void*)0);
77034 defenc_c = PyBytes_AS_STRING(defenc)(((PyStringObject *)(defenc))->ob_sval);
77035#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII0
77036 {
77037 char* end = defenc_c + PyBytes_GET_SIZE(defenc)(((PyVarObject*)(defenc))->ob_size);
77038 char* c;
77039 for (c = defenc_c; c < end; c++) {
77040 if ((unsigned char) (*c) >= 128) {
77041 PyUnicode_AsASCIIStringPyUnicodeUCS4_AsASCIIString(o);
77042 return NULL((void*)0);
77043 }
77044 }
77045 }
77046#endif
77047 *length = PyBytes_GET_SIZE(defenc)(((PyVarObject*)(defenc))->ob_size);
77048 return defenc_c;
77049#else
77050 if (__Pyx_PyUnicode_READY(o)(0) == -1) return NULL((void*)0);
77051#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII0
77052 if (PyUnicode_IS_ASCII(o)) {
77053 *length = PyUnicode_GET_LENGTH(o);
77054 return PyUnicode_AsUTF8(o);
77055 } else {
77056 PyUnicode_AsASCIIStringPyUnicodeUCS4_AsASCIIString(o);
77057 return NULL((void*)0);
77058 }
77059#else
77060 return PyUnicode_AsUTF8AndSize(o, length);
77061#endif
77062#endif
77063 } else
77064#endif
77065#if (!CYTHON_COMPILING_IN_PYPY0) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
77066 if (PyByteArray_Check(o)((((PyObject*)(o))->ob_type) == (&PyByteArray_Type) ||
PyType_IsSubtype((((PyObject*)(o))->ob_type), (&PyByteArray_Type
)))
) {
77067 *length = PyByteArray_GET_SIZE(o)(((void) (0)),(((PyVarObject*)(o))->ob_size));
77068 return PyByteArray_AS_STRING(o)(((void) (0)), (((PyVarObject*)(o))->ob_size) ? ((PyByteArrayObject
*)(o))->ob_bytes : _PyByteArray_empty_string)
;
77069 } else
77070#endif
77071 {
77072 char* result;
77073 int r = PyBytes_AsStringAndSizePyString_AsStringAndSize(o, &result, length);
77074 if (unlikely(r < 0)__builtin_expect(!!(r < 0), 0)) {
77075 return NULL((void*)0);
77076 } else {
77077 return result;
77078 }
77079 }
77080}
77081static CYTHON_INLINE__inline__ int __Pyx_PyObject_IsTrue(PyObject* x) {
77082 int is_true = x == Py_True((PyObject *) &_Py_TrueStruct);
77083 if (is_true | (x == Py_False((PyObject *) &_Py_ZeroStruct)) | (x == Py_None(&_Py_NoneStruct))) return is_true;
77084 else return PyObject_IsTrue(x);
77085}
77086static CYTHON_INLINE__inline__ PyObject* __Pyx_PyNumber_Int(PyObject* x) {
77087 PyNumberMethods *m;
77088 const char *name = NULL((void*)0);
77089 PyObject *res = NULL((void*)0);
77090#if PY_MAJOR_VERSION2 < 3
77091 if (PyInt_Check(x)((((x)->ob_type)->tp_flags & ((1L<<23))) != 0
)
|| PyLong_Check(x)((((((PyObject*)(x))->ob_type))->tp_flags & ((1L<<
24))) != 0)
)
77092#else
77093 if (PyLong_Check(x)((((((PyObject*)(x))->ob_type))->tp_flags & ((1L<<
24))) != 0)
)
77094#endif
77095 return __Pyx_NewRef(x)(( ((PyObject*)(x))->ob_refcnt++), x);
77096 m = Py_TYPE(x)(((PyObject*)(x))->ob_type)->tp_as_number;
77097#if PY_MAJOR_VERSION2 < 3
77098 if (m && m->nb_int) {
77099 name = "int";
77100 res = PyNumber_Int(x);
77101 }
77102 else if (m && m->nb_long) {
77103 name = "long";
77104 res = PyNumber_Long(x);
77105 }
77106#else
77107 if (m && m->nb_int) {
77108 name = "int";
77109 res = PyNumber_Long(x);
77110 }
77111#endif
77112 if (res) {
77113#if PY_MAJOR_VERSION2 < 3
77114 if (!PyInt_Check(res)((((res)->ob_type)->tp_flags & ((1L<<23))) !=
0)
&& !PyLong_Check(res)((((((PyObject*)(res))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
77115#else
77116 if (!PyLong_Check(res)((((((PyObject*)(res))->ob_type))->tp_flags & ((1L<<
24))) != 0)
) {
77117#endif
77118 PyErr_Format(PyExc_TypeError,
77119 "__%.4s__ returned non-%.4s (type %.200s)",
77120 name, name, Py_TYPE(res)(((PyObject*)(res))->ob_type)->tp_name);
77121 Py_DECREF(res)do { if ( --((PyObject*)(res))->ob_refcnt != 0) ; else ( (
*(((PyObject*)((PyObject *)(res)))->ob_type)->tp_dealloc
)((PyObject *)((PyObject *)(res)))); } while (0)
;
77122 return NULL((void*)0);
77123 }
77124 }
77125 else if (!PyErr_Occurred()) {
77126 PyErr_SetString(PyExc_TypeError,
77127 "an integer is required");
77128 }
77129 return res;
77130}
77131static CYTHON_INLINE__inline__ Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
77132 Py_ssize_t ival;
77133 PyObject *x;
77134#if PY_MAJOR_VERSION2 < 3
77135 if (likely(PyInt_CheckExact(b))__builtin_expect(!!(((b)->ob_type == &PyInt_Type)), 1)) {
77136 if (sizeof(Py_ssize_t) >= sizeof(long))
77137 return PyInt_AS_LONG(b)(((PyIntObject *)(b))->ob_ival);
77138 else
77139 return PyInt_AsSsize_t(x);
77140 }
77141#endif
77142 if (likely(PyLong_CheckExact(b))__builtin_expect(!!(((((PyObject*)(b))->ob_type) == &PyLong_Type
)), 1)
) {
77143 #if CYTHON_USE_PYLONG_INTERNALS1
77144 const digit* digits = ((PyLongObject*)b)->ob_digit;
77145 const Py_ssize_t size = Py_SIZE(b)(((PyVarObject*)(b))->ob_size);
77146 if (likely(__Pyx_sst_abs(size) <= 1)__builtin_expect(!!(labs(size) <= 1), 1)) {
77147 ival = likely(size)__builtin_expect(!!(size), 1) ? digits[0] : 0;
77148 if (size == -1) ival = -ival;
77149 return ival;
77150 } else {
77151 switch (size) {
77152 case 2:
77153 if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT30) {
77154 return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
77155 }
77156 break;
77157 case -2:
77158 if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT30) {
77159 return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
77160 }
77161 break;
77162 case 3:
77163 if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT30) {
77164 return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
77165 }
77166 break;
77167 case -3:
77168 if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT30) {
77169 return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
77170 }
77171 break;
77172 case 4:
77173 if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT30) {
77174 return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT30) | (size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
77175 }
77176 break;
77177 case -4:
77178 if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT30) {
77179 return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT30) | (size_t)digits[2]) << PyLong_SHIFT30) | (size_t)digits[1]) << PyLong_SHIFT30) | (size_t)digits[0]));
77180 }
77181 break;
77182 }
77183 }
77184 #endif
77185 return PyLong_AsSsize_t(b);
77186 }
77187 x = PyNumber_Index(b);
77188 if (!x) return -1;
77189 ival = PyInt_AsSsize_t(x);
77190 Py_DECREF(x)do { if ( --((PyObject*)(x))->ob_refcnt != 0) ; else ( (*(
((PyObject*)((PyObject *)(x)))->ob_type)->tp_dealloc)((
PyObject *)((PyObject *)(x)))); } while (0)
;
77191 return ival;
77192}
77193static CYTHON_INLINE__inline__ PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
77194 return PyInt_FromSize_t(ival);
77195}
77196
77197
77198#endif /* Py_PYTHON_H */