/src/cpython/Modules/_io/clinic/stringio.c.h
Line | Count | Source (jump to first uncovered line) |
1 | | /*[clinic input] |
2 | | preserve |
3 | | [clinic start generated code]*/ |
4 | | |
5 | | #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) |
6 | | # include "pycore_gc.h" // PyGC_Head |
7 | | # include "pycore_runtime.h" // _Py_ID() |
8 | | #endif |
9 | | #include "pycore_abstract.h" // _Py_convert_optional_to_ssize_t() |
10 | | #include "pycore_critical_section.h"// Py_BEGIN_CRITICAL_SECTION() |
11 | | #include "pycore_modsupport.h" // _PyArg_CheckPositional() |
12 | | |
13 | | PyDoc_STRVAR(_io_StringIO_getvalue__doc__, |
14 | | "getvalue($self, /)\n" |
15 | | "--\n" |
16 | | "\n" |
17 | | "Retrieve the entire contents of the object."); |
18 | | |
19 | | #define _IO_STRINGIO_GETVALUE_METHODDEF \ |
20 | | {"getvalue", (PyCFunction)_io_StringIO_getvalue, METH_NOARGS, _io_StringIO_getvalue__doc__}, |
21 | | |
22 | | static PyObject * |
23 | | _io_StringIO_getvalue_impl(stringio *self); |
24 | | |
25 | | static PyObject * |
26 | | _io_StringIO_getvalue(PyObject *self, PyObject *Py_UNUSED(ignored)) |
27 | 0 | { |
28 | 0 | PyObject *return_value = NULL; |
29 | |
|
30 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
31 | 0 | return_value = _io_StringIO_getvalue_impl((stringio *)self); |
32 | 0 | Py_END_CRITICAL_SECTION(); |
33 | |
|
34 | 0 | return return_value; |
35 | 0 | } |
36 | | |
37 | | PyDoc_STRVAR(_io_StringIO_tell__doc__, |
38 | | "tell($self, /)\n" |
39 | | "--\n" |
40 | | "\n" |
41 | | "Tell the current file position."); |
42 | | |
43 | | #define _IO_STRINGIO_TELL_METHODDEF \ |
44 | | {"tell", (PyCFunction)_io_StringIO_tell, METH_NOARGS, _io_StringIO_tell__doc__}, |
45 | | |
46 | | static PyObject * |
47 | | _io_StringIO_tell_impl(stringio *self); |
48 | | |
49 | | static PyObject * |
50 | | _io_StringIO_tell(PyObject *self, PyObject *Py_UNUSED(ignored)) |
51 | 0 | { |
52 | 0 | PyObject *return_value = NULL; |
53 | |
|
54 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
55 | 0 | return_value = _io_StringIO_tell_impl((stringio *)self); |
56 | 0 | Py_END_CRITICAL_SECTION(); |
57 | |
|
58 | 0 | return return_value; |
59 | 0 | } |
60 | | |
61 | | PyDoc_STRVAR(_io_StringIO_read__doc__, |
62 | | "read($self, size=-1, /)\n" |
63 | | "--\n" |
64 | | "\n" |
65 | | "Read at most size characters, returned as a string.\n" |
66 | | "\n" |
67 | | "If the argument is negative or omitted, read until EOF\n" |
68 | | "is reached. Return an empty string at EOF."); |
69 | | |
70 | | #define _IO_STRINGIO_READ_METHODDEF \ |
71 | | {"read", _PyCFunction_CAST(_io_StringIO_read), METH_FASTCALL, _io_StringIO_read__doc__}, |
72 | | |
73 | | static PyObject * |
74 | | _io_StringIO_read_impl(stringio *self, Py_ssize_t size); |
75 | | |
76 | | static PyObject * |
77 | | _io_StringIO_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs) |
78 | 61.9k | { |
79 | 61.9k | PyObject *return_value = NULL; |
80 | 61.9k | Py_ssize_t size = -1; |
81 | | |
82 | 61.9k | if (!_PyArg_CheckPositional("read", nargs, 0, 1)) { |
83 | 0 | goto exit; |
84 | 0 | } |
85 | 61.9k | if (nargs < 1) { |
86 | 0 | goto skip_optional; |
87 | 0 | } |
88 | 61.9k | if (!_Py_convert_optional_to_ssize_t(args[0], &size)) { |
89 | 0 | goto exit; |
90 | 0 | } |
91 | 61.9k | skip_optional: |
92 | 61.9k | Py_BEGIN_CRITICAL_SECTION(self); |
93 | 61.9k | return_value = _io_StringIO_read_impl((stringio *)self, size); |
94 | 61.9k | Py_END_CRITICAL_SECTION(); |
95 | | |
96 | 61.9k | exit: |
97 | 61.9k | return return_value; |
98 | 61.9k | } |
99 | | |
100 | | PyDoc_STRVAR(_io_StringIO_readline__doc__, |
101 | | "readline($self, size=-1, /)\n" |
102 | | "--\n" |
103 | | "\n" |
104 | | "Read until newline or EOF.\n" |
105 | | "\n" |
106 | | "Returns an empty string if EOF is hit immediately."); |
107 | | |
108 | | #define _IO_STRINGIO_READLINE_METHODDEF \ |
109 | | {"readline", _PyCFunction_CAST(_io_StringIO_readline), METH_FASTCALL, _io_StringIO_readline__doc__}, |
110 | | |
111 | | static PyObject * |
112 | | _io_StringIO_readline_impl(stringio *self, Py_ssize_t size); |
113 | | |
114 | | static PyObject * |
115 | | _io_StringIO_readline(PyObject *self, PyObject *const *args, Py_ssize_t nargs) |
116 | 0 | { |
117 | 0 | PyObject *return_value = NULL; |
118 | 0 | Py_ssize_t size = -1; |
119 | |
|
120 | 0 | if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) { |
121 | 0 | goto exit; |
122 | 0 | } |
123 | 0 | if (nargs < 1) { |
124 | 0 | goto skip_optional; |
125 | 0 | } |
126 | 0 | if (!_Py_convert_optional_to_ssize_t(args[0], &size)) { |
127 | 0 | goto exit; |
128 | 0 | } |
129 | 0 | skip_optional: |
130 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
131 | 0 | return_value = _io_StringIO_readline_impl((stringio *)self, size); |
132 | 0 | Py_END_CRITICAL_SECTION(); |
133 | |
|
134 | 0 | exit: |
135 | 0 | return return_value; |
136 | 0 | } |
137 | | |
138 | | PyDoc_STRVAR(_io_StringIO_truncate__doc__, |
139 | | "truncate($self, pos=None, /)\n" |
140 | | "--\n" |
141 | | "\n" |
142 | | "Truncate size to pos.\n" |
143 | | "\n" |
144 | | "The pos argument defaults to the current file position, as\n" |
145 | | "returned by tell(). The current file position is unchanged.\n" |
146 | | "Returns the new absolute position."); |
147 | | |
148 | | #define _IO_STRINGIO_TRUNCATE_METHODDEF \ |
149 | | {"truncate", _PyCFunction_CAST(_io_StringIO_truncate), METH_FASTCALL, _io_StringIO_truncate__doc__}, |
150 | | |
151 | | static PyObject * |
152 | | _io_StringIO_truncate_impl(stringio *self, PyObject *pos); |
153 | | |
154 | | static PyObject * |
155 | | _io_StringIO_truncate(PyObject *self, PyObject *const *args, Py_ssize_t nargs) |
156 | 39.7k | { |
157 | 39.7k | PyObject *return_value = NULL; |
158 | 39.7k | PyObject *pos = Py_None; |
159 | | |
160 | 39.7k | if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) { |
161 | 0 | goto exit; |
162 | 0 | } |
163 | 39.7k | if (nargs < 1) { |
164 | 39.7k | goto skip_optional; |
165 | 39.7k | } |
166 | 0 | pos = args[0]; |
167 | 39.7k | skip_optional: |
168 | 39.7k | Py_BEGIN_CRITICAL_SECTION(self); |
169 | 39.7k | return_value = _io_StringIO_truncate_impl((stringio *)self, pos); |
170 | 39.7k | Py_END_CRITICAL_SECTION(); |
171 | | |
172 | 39.7k | exit: |
173 | 39.7k | return return_value; |
174 | 39.7k | } |
175 | | |
176 | | PyDoc_STRVAR(_io_StringIO_seek__doc__, |
177 | | "seek($self, pos, whence=0, /)\n" |
178 | | "--\n" |
179 | | "\n" |
180 | | "Change stream position.\n" |
181 | | "\n" |
182 | | "Seek to character offset pos relative to position indicated by whence:\n" |
183 | | " 0 Start of stream (the default). pos should be >= 0;\n" |
184 | | " 1 Current position - pos must be 0;\n" |
185 | | " 2 End of stream - pos must be 0.\n" |
186 | | "Returns the new absolute position."); |
187 | | |
188 | | #define _IO_STRINGIO_SEEK_METHODDEF \ |
189 | | {"seek", _PyCFunction_CAST(_io_StringIO_seek), METH_FASTCALL, _io_StringIO_seek__doc__}, |
190 | | |
191 | | static PyObject * |
192 | | _io_StringIO_seek_impl(stringio *self, Py_ssize_t pos, int whence); |
193 | | |
194 | | static PyObject * |
195 | | _io_StringIO_seek(PyObject *self, PyObject *const *args, Py_ssize_t nargs) |
196 | 79.4k | { |
197 | 79.4k | PyObject *return_value = NULL; |
198 | 79.4k | Py_ssize_t pos; |
199 | 79.4k | int whence = 0; |
200 | | |
201 | 79.4k | if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) { |
202 | 0 | goto exit; |
203 | 0 | } |
204 | 79.4k | { |
205 | 79.4k | Py_ssize_t ival = -1; |
206 | 79.4k | PyObject *iobj = _PyNumber_Index(args[0]); |
207 | 79.4k | if (iobj != NULL) { |
208 | 79.4k | ival = PyLong_AsSsize_t(iobj); |
209 | 79.4k | Py_DECREF(iobj); |
210 | 79.4k | } |
211 | 79.4k | if (ival == -1 && PyErr_Occurred()) { |
212 | 0 | goto exit; |
213 | 0 | } |
214 | 79.4k | pos = ival; |
215 | 79.4k | } |
216 | 79.4k | if (nargs < 2) { |
217 | 79.4k | goto skip_optional; |
218 | 79.4k | } |
219 | 0 | whence = PyLong_AsInt(args[1]); |
220 | 0 | if (whence == -1 && PyErr_Occurred()) { |
221 | 0 | goto exit; |
222 | 0 | } |
223 | 79.4k | skip_optional: |
224 | 79.4k | Py_BEGIN_CRITICAL_SECTION(self); |
225 | 79.4k | return_value = _io_StringIO_seek_impl((stringio *)self, pos, whence); |
226 | 79.4k | Py_END_CRITICAL_SECTION(); |
227 | | |
228 | 79.4k | exit: |
229 | 79.4k | return return_value; |
230 | 79.4k | } |
231 | | |
232 | | PyDoc_STRVAR(_io_StringIO_write__doc__, |
233 | | "write($self, s, /)\n" |
234 | | "--\n" |
235 | | "\n" |
236 | | "Write string to file.\n" |
237 | | "\n" |
238 | | "Returns the number of characters written, which is always equal to\n" |
239 | | "the length of the string."); |
240 | | |
241 | | #define _IO_STRINGIO_WRITE_METHODDEF \ |
242 | | {"write", (PyCFunction)_io_StringIO_write, METH_O, _io_StringIO_write__doc__}, |
243 | | |
244 | | static PyObject * |
245 | | _io_StringIO_write_impl(stringio *self, PyObject *obj); |
246 | | |
247 | | static PyObject * |
248 | | _io_StringIO_write(PyObject *self, PyObject *obj) |
249 | 66.0k | { |
250 | 66.0k | PyObject *return_value = NULL; |
251 | | |
252 | 66.0k | Py_BEGIN_CRITICAL_SECTION(self); |
253 | 66.0k | return_value = _io_StringIO_write_impl((stringio *)self, obj); |
254 | 66.0k | Py_END_CRITICAL_SECTION(); |
255 | | |
256 | 66.0k | return return_value; |
257 | 66.0k | } |
258 | | |
259 | | PyDoc_STRVAR(_io_StringIO_close__doc__, |
260 | | "close($self, /)\n" |
261 | | "--\n" |
262 | | "\n" |
263 | | "Close the IO object.\n" |
264 | | "\n" |
265 | | "Attempting any further operation after the object is closed\n" |
266 | | "will raise a ValueError.\n" |
267 | | "\n" |
268 | | "This method has no effect if the file is already closed."); |
269 | | |
270 | | #define _IO_STRINGIO_CLOSE_METHODDEF \ |
271 | | {"close", (PyCFunction)_io_StringIO_close, METH_NOARGS, _io_StringIO_close__doc__}, |
272 | | |
273 | | static PyObject * |
274 | | _io_StringIO_close_impl(stringio *self); |
275 | | |
276 | | static PyObject * |
277 | | _io_StringIO_close(PyObject *self, PyObject *Py_UNUSED(ignored)) |
278 | 0 | { |
279 | 0 | PyObject *return_value = NULL; |
280 | |
|
281 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
282 | 0 | return_value = _io_StringIO_close_impl((stringio *)self); |
283 | 0 | Py_END_CRITICAL_SECTION(); |
284 | |
|
285 | 0 | return return_value; |
286 | 0 | } |
287 | | |
288 | | PyDoc_STRVAR(_io_StringIO___init____doc__, |
289 | | "StringIO(initial_value=\'\', newline=\'\\n\')\n" |
290 | | "--\n" |
291 | | "\n" |
292 | | "Text I/O implementation using an in-memory buffer.\n" |
293 | | "\n" |
294 | | "The initial_value argument sets the value of object. The newline\n" |
295 | | "argument is like the one of TextIOWrapper\'s constructor."); |
296 | | |
297 | | static int |
298 | | _io_StringIO___init___impl(stringio *self, PyObject *value, |
299 | | PyObject *newline_obj); |
300 | | |
301 | | static int |
302 | | _io_StringIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) |
303 | 34.8k | { |
304 | 34.8k | int return_value = -1; |
305 | 34.8k | #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE) |
306 | | |
307 | 34.8k | #define NUM_KEYWORDS 2 |
308 | 34.8k | static struct { |
309 | 34.8k | PyGC_Head _this_is_not_used; |
310 | 34.8k | PyObject_VAR_HEAD |
311 | 34.8k | Py_hash_t ob_hash; |
312 | 34.8k | PyObject *ob_item[NUM_KEYWORDS]; |
313 | 34.8k | } _kwtuple = { |
314 | 34.8k | .ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS) |
315 | 34.8k | .ob_hash = -1, |
316 | 34.8k | .ob_item = { &_Py_ID(initial_value), &_Py_ID(newline), }, |
317 | 34.8k | }; |
318 | 34.8k | #undef NUM_KEYWORDS |
319 | 34.8k | #define KWTUPLE (&_kwtuple.ob_base.ob_base) |
320 | | |
321 | | #else // !Py_BUILD_CORE |
322 | | # define KWTUPLE NULL |
323 | | #endif // !Py_BUILD_CORE |
324 | | |
325 | 34.8k | static const char * const _keywords[] = {"initial_value", "newline", NULL}; |
326 | 34.8k | static _PyArg_Parser _parser = { |
327 | 34.8k | .keywords = _keywords, |
328 | 34.8k | .fname = "StringIO", |
329 | 34.8k | .kwtuple = KWTUPLE, |
330 | 34.8k | }; |
331 | 34.8k | #undef KWTUPLE |
332 | 34.8k | PyObject *argsbuf[2]; |
333 | 34.8k | PyObject * const *fastargs; |
334 | 34.8k | Py_ssize_t nargs = PyTuple_GET_SIZE(args); |
335 | 34.8k | Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0; |
336 | 34.8k | PyObject *value = NULL; |
337 | 34.8k | PyObject *newline_obj = NULL; |
338 | | |
339 | 34.8k | fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, |
340 | 34.8k | /*minpos*/ 0, /*maxpos*/ 2, /*minkw*/ 0, /*varpos*/ 0, argsbuf); |
341 | 34.8k | if (!fastargs) { |
342 | 0 | goto exit; |
343 | 0 | } |
344 | 34.8k | if (!noptargs) { |
345 | 0 | goto skip_optional_pos; |
346 | 0 | } |
347 | 34.8k | if (fastargs[0]) { |
348 | 17.4k | value = fastargs[0]; |
349 | 17.4k | if (!--noptargs) { |
350 | 17.4k | goto skip_optional_pos; |
351 | 17.4k | } |
352 | 17.4k | } |
353 | 17.4k | newline_obj = fastargs[1]; |
354 | 34.8k | skip_optional_pos: |
355 | 34.8k | return_value = _io_StringIO___init___impl((stringio *)self, value, newline_obj); |
356 | | |
357 | 34.8k | exit: |
358 | 34.8k | return return_value; |
359 | 34.8k | } |
360 | | |
361 | | PyDoc_STRVAR(_io_StringIO_readable__doc__, |
362 | | "readable($self, /)\n" |
363 | | "--\n" |
364 | | "\n" |
365 | | "Returns True if the IO object can be read."); |
366 | | |
367 | | #define _IO_STRINGIO_READABLE_METHODDEF \ |
368 | | {"readable", (PyCFunction)_io_StringIO_readable, METH_NOARGS, _io_StringIO_readable__doc__}, |
369 | | |
370 | | static PyObject * |
371 | | _io_StringIO_readable_impl(stringio *self); |
372 | | |
373 | | static PyObject * |
374 | | _io_StringIO_readable(PyObject *self, PyObject *Py_UNUSED(ignored)) |
375 | 0 | { |
376 | 0 | PyObject *return_value = NULL; |
377 | |
|
378 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
379 | 0 | return_value = _io_StringIO_readable_impl((stringio *)self); |
380 | 0 | Py_END_CRITICAL_SECTION(); |
381 | |
|
382 | 0 | return return_value; |
383 | 0 | } |
384 | | |
385 | | PyDoc_STRVAR(_io_StringIO_writable__doc__, |
386 | | "writable($self, /)\n" |
387 | | "--\n" |
388 | | "\n" |
389 | | "Returns True if the IO object can be written."); |
390 | | |
391 | | #define _IO_STRINGIO_WRITABLE_METHODDEF \ |
392 | | {"writable", (PyCFunction)_io_StringIO_writable, METH_NOARGS, _io_StringIO_writable__doc__}, |
393 | | |
394 | | static PyObject * |
395 | | _io_StringIO_writable_impl(stringio *self); |
396 | | |
397 | | static PyObject * |
398 | | _io_StringIO_writable(PyObject *self, PyObject *Py_UNUSED(ignored)) |
399 | 0 | { |
400 | 0 | PyObject *return_value = NULL; |
401 | |
|
402 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
403 | 0 | return_value = _io_StringIO_writable_impl((stringio *)self); |
404 | 0 | Py_END_CRITICAL_SECTION(); |
405 | |
|
406 | 0 | return return_value; |
407 | 0 | } |
408 | | |
409 | | PyDoc_STRVAR(_io_StringIO_seekable__doc__, |
410 | | "seekable($self, /)\n" |
411 | | "--\n" |
412 | | "\n" |
413 | | "Returns True if the IO object can be seeked."); |
414 | | |
415 | | #define _IO_STRINGIO_SEEKABLE_METHODDEF \ |
416 | | {"seekable", (PyCFunction)_io_StringIO_seekable, METH_NOARGS, _io_StringIO_seekable__doc__}, |
417 | | |
418 | | static PyObject * |
419 | | _io_StringIO_seekable_impl(stringio *self); |
420 | | |
421 | | static PyObject * |
422 | | _io_StringIO_seekable(PyObject *self, PyObject *Py_UNUSED(ignored)) |
423 | 0 | { |
424 | 0 | PyObject *return_value = NULL; |
425 | |
|
426 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
427 | 0 | return_value = _io_StringIO_seekable_impl((stringio *)self); |
428 | 0 | Py_END_CRITICAL_SECTION(); |
429 | |
|
430 | 0 | return return_value; |
431 | 0 | } |
432 | | |
433 | | PyDoc_STRVAR(_io_StringIO___getstate____doc__, |
434 | | "__getstate__($self, /)\n" |
435 | | "--\n" |
436 | | "\n"); |
437 | | |
438 | | #define _IO_STRINGIO___GETSTATE___METHODDEF \ |
439 | | {"__getstate__", (PyCFunction)_io_StringIO___getstate__, METH_NOARGS, _io_StringIO___getstate____doc__}, |
440 | | |
441 | | static PyObject * |
442 | | _io_StringIO___getstate___impl(stringio *self); |
443 | | |
444 | | static PyObject * |
445 | | _io_StringIO___getstate__(PyObject *self, PyObject *Py_UNUSED(ignored)) |
446 | 0 | { |
447 | 0 | PyObject *return_value = NULL; |
448 | |
|
449 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
450 | 0 | return_value = _io_StringIO___getstate___impl((stringio *)self); |
451 | 0 | Py_END_CRITICAL_SECTION(); |
452 | |
|
453 | 0 | return return_value; |
454 | 0 | } |
455 | | |
456 | | PyDoc_STRVAR(_io_StringIO___setstate____doc__, |
457 | | "__setstate__($self, state, /)\n" |
458 | | "--\n" |
459 | | "\n"); |
460 | | |
461 | | #define _IO_STRINGIO___SETSTATE___METHODDEF \ |
462 | | {"__setstate__", (PyCFunction)_io_StringIO___setstate__, METH_O, _io_StringIO___setstate____doc__}, |
463 | | |
464 | | static PyObject * |
465 | | _io_StringIO___setstate___impl(stringio *self, PyObject *state); |
466 | | |
467 | | static PyObject * |
468 | | _io_StringIO___setstate__(PyObject *self, PyObject *state) |
469 | 0 | { |
470 | 0 | PyObject *return_value = NULL; |
471 | |
|
472 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
473 | 0 | return_value = _io_StringIO___setstate___impl((stringio *)self, state); |
474 | 0 | Py_END_CRITICAL_SECTION(); |
475 | |
|
476 | 0 | return return_value; |
477 | 0 | } |
478 | | |
479 | | #if !defined(_io_StringIO_closed_DOCSTR) |
480 | | # define _io_StringIO_closed_DOCSTR NULL |
481 | | #endif |
482 | | #if defined(_IO_STRINGIO_CLOSED_GETSETDEF) |
483 | | # undef _IO_STRINGIO_CLOSED_GETSETDEF |
484 | | # define _IO_STRINGIO_CLOSED_GETSETDEF {"closed", (getter)_io_StringIO_closed_get, (setter)_io_StringIO_closed_set, _io_StringIO_closed_DOCSTR}, |
485 | | #else |
486 | | # define _IO_STRINGIO_CLOSED_GETSETDEF {"closed", (getter)_io_StringIO_closed_get, NULL, _io_StringIO_closed_DOCSTR}, |
487 | | #endif |
488 | | |
489 | | static PyObject * |
490 | | _io_StringIO_closed_get_impl(stringio *self); |
491 | | |
492 | | static PyObject * |
493 | | _io_StringIO_closed_get(PyObject *self, void *Py_UNUSED(context)) |
494 | 39.7k | { |
495 | 39.7k | PyObject *return_value = NULL; |
496 | | |
497 | 39.7k | Py_BEGIN_CRITICAL_SECTION(self); |
498 | 39.7k | return_value = _io_StringIO_closed_get_impl((stringio *)self); |
499 | 39.7k | Py_END_CRITICAL_SECTION(); |
500 | | |
501 | 39.7k | return return_value; |
502 | 39.7k | } |
503 | | |
504 | | #if !defined(_io_StringIO_line_buffering_DOCSTR) |
505 | | # define _io_StringIO_line_buffering_DOCSTR NULL |
506 | | #endif |
507 | | #if defined(_IO_STRINGIO_LINE_BUFFERING_GETSETDEF) |
508 | | # undef _IO_STRINGIO_LINE_BUFFERING_GETSETDEF |
509 | | # define _IO_STRINGIO_LINE_BUFFERING_GETSETDEF {"line_buffering", (getter)_io_StringIO_line_buffering_get, (setter)_io_StringIO_line_buffering_set, _io_StringIO_line_buffering_DOCSTR}, |
510 | | #else |
511 | | # define _IO_STRINGIO_LINE_BUFFERING_GETSETDEF {"line_buffering", (getter)_io_StringIO_line_buffering_get, NULL, _io_StringIO_line_buffering_DOCSTR}, |
512 | | #endif |
513 | | |
514 | | static PyObject * |
515 | | _io_StringIO_line_buffering_get_impl(stringio *self); |
516 | | |
517 | | static PyObject * |
518 | | _io_StringIO_line_buffering_get(PyObject *self, void *Py_UNUSED(context)) |
519 | 0 | { |
520 | 0 | PyObject *return_value = NULL; |
521 | |
|
522 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
523 | 0 | return_value = _io_StringIO_line_buffering_get_impl((stringio *)self); |
524 | 0 | Py_END_CRITICAL_SECTION(); |
525 | |
|
526 | 0 | return return_value; |
527 | 0 | } |
528 | | |
529 | | #if !defined(_io_StringIO_newlines_DOCSTR) |
530 | | # define _io_StringIO_newlines_DOCSTR NULL |
531 | | #endif |
532 | | #if defined(_IO_STRINGIO_NEWLINES_GETSETDEF) |
533 | | # undef _IO_STRINGIO_NEWLINES_GETSETDEF |
534 | | # define _IO_STRINGIO_NEWLINES_GETSETDEF {"newlines", (getter)_io_StringIO_newlines_get, (setter)_io_StringIO_newlines_set, _io_StringIO_newlines_DOCSTR}, |
535 | | #else |
536 | | # define _IO_STRINGIO_NEWLINES_GETSETDEF {"newlines", (getter)_io_StringIO_newlines_get, NULL, _io_StringIO_newlines_DOCSTR}, |
537 | | #endif |
538 | | |
539 | | static PyObject * |
540 | | _io_StringIO_newlines_get_impl(stringio *self); |
541 | | |
542 | | static PyObject * |
543 | | _io_StringIO_newlines_get(PyObject *self, void *Py_UNUSED(context)) |
544 | 0 | { |
545 | 0 | PyObject *return_value = NULL; |
546 | |
|
547 | 0 | Py_BEGIN_CRITICAL_SECTION(self); |
548 | 0 | return_value = _io_StringIO_newlines_get_impl((stringio *)self); |
549 | 0 | Py_END_CRITICAL_SECTION(); |
550 | |
|
551 | 0 | return return_value; |
552 | 0 | } |
553 | | /*[clinic end generated code: output=bccc25ef8e6ce9ef input=a9049054013a1b77]*/ |