blob: 5ddbbe221b98b97a55f04fb13f87b6dc5d793783 [file] [log] [blame]
Brett Cannonf2de1fc2014-08-22 11:45:03 -04001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
5PyDoc_STRVAR(_multibytecodec_MultibyteCodec_encode__doc__,
6"encode($self, /, input, errors=None)\n"
7"--\n"
8"\n"
9"Return an encoded string version of `input\'.\n"
10"\n"
11"\'errors\' may be given to set a different error handling scheme. Default is\n"
12"\'strict\' meaning that encoding errors raise a UnicodeEncodeError. Other possible\n"
13"values are \'ignore\', \'replace\' and \'xmlcharrefreplace\' as well as any other name\n"
14"registered with codecs.register_error that can handle UnicodeEncodeErrors.");
15
16#define _MULTIBYTECODEC_MULTIBYTECODEC_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +020017 {"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_encode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_encode__doc__},
Brett Cannonf2de1fc2014-08-22 11:45:03 -040018
19static PyObject *
Larry Hastings89964c42015-04-14 18:07:59 -040020_multibytecodec_MultibyteCodec_encode_impl(MultibyteCodecObject *self,
21 PyObject *input,
22 const char *errors);
Brett Cannonf2de1fc2014-08-22 11:45:03 -040023
24static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +020025_multibytecodec_MultibyteCodec_encode(MultibyteCodecObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Brett Cannonf2de1fc2014-08-22 11:45:03 -040026{
27 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +030028 static const char * const _keywords[] = {"input", "errors", NULL};
Serhiy Storchaka31913912019-03-14 10:32:22 +020029 static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
30 PyObject *argsbuf[2];
31 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Brett Cannonf2de1fc2014-08-22 11:45:03 -040032 PyObject *input;
33 const char *errors = NULL;
34
Serhiy Storchaka31913912019-03-14 10:32:22 +020035 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
36 if (!args) {
Brett Cannonf2de1fc2014-08-22 11:45:03 -040037 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030038 }
Serhiy Storchaka31913912019-03-14 10:32:22 +020039 input = args[0];
40 if (!noptargs) {
41 goto skip_optional_pos;
42 }
43 if (args[1] == Py_None) {
44 errors = NULL;
45 }
46 else if (PyUnicode_Check(args[1])) {
47 Py_ssize_t errors_length;
48 errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
49 if (errors == NULL) {
50 goto exit;
51 }
52 if (strlen(errors) != (size_t)errors_length) {
53 PyErr_SetString(PyExc_ValueError, "embedded null character");
54 goto exit;
55 }
56 }
57 else {
Rémi Lapeyre4901fe22019-08-29 16:49:08 +020058 _PyArg_BadArgument("encode", "argument 'errors'", "str or None", args[1]);
Serhiy Storchaka31913912019-03-14 10:32:22 +020059 goto exit;
60 }
61skip_optional_pos:
Brett Cannonf2de1fc2014-08-22 11:45:03 -040062 return_value = _multibytecodec_MultibyteCodec_encode_impl(self, input, errors);
63
64exit:
65 return return_value;
66}
67
68PyDoc_STRVAR(_multibytecodec_MultibyteCodec_decode__doc__,
69"decode($self, /, input, errors=None)\n"
70"--\n"
71"\n"
72"Decodes \'input\'.\n"
73"\n"
74"\'errors\' may be given to set a different error handling scheme. Default is\n"
75"\'strict\' meaning that encoding errors raise a UnicodeDecodeError. Other possible\n"
76"values are \'ignore\' and \'replace\' as well as any other name registered with\n"
77"codecs.register_error that is able to handle UnicodeDecodeErrors.\"");
78
79#define _MULTIBYTECODEC_MULTIBYTECODEC_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +020080 {"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_decode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_decode__doc__},
Brett Cannonf2de1fc2014-08-22 11:45:03 -040081
82static PyObject *
Larry Hastings89964c42015-04-14 18:07:59 -040083_multibytecodec_MultibyteCodec_decode_impl(MultibyteCodecObject *self,
84 Py_buffer *input,
85 const char *errors);
Brett Cannonf2de1fc2014-08-22 11:45:03 -040086
87static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +020088_multibytecodec_MultibyteCodec_decode(MultibyteCodecObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Brett Cannonf2de1fc2014-08-22 11:45:03 -040089{
90 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +030091 static const char * const _keywords[] = {"input", "errors", NULL};
Serhiy Storchaka31913912019-03-14 10:32:22 +020092 static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
93 PyObject *argsbuf[2];
94 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Brett Cannonf2de1fc2014-08-22 11:45:03 -040095 Py_buffer input = {NULL, NULL};
96 const char *errors = NULL;
97
Serhiy Storchaka31913912019-03-14 10:32:22 +020098 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
99 if (!args) {
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400100 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300101 }
Serhiy Storchaka31913912019-03-14 10:32:22 +0200102 if (PyObject_GetBuffer(args[0], &input, PyBUF_SIMPLE) != 0) {
103 goto exit;
104 }
105 if (!PyBuffer_IsContiguous(&input, 'C')) {
Rémi Lapeyre4901fe22019-08-29 16:49:08 +0200106 _PyArg_BadArgument("decode", "argument 'input'", "contiguous buffer", args[0]);
Serhiy Storchaka31913912019-03-14 10:32:22 +0200107 goto exit;
108 }
109 if (!noptargs) {
110 goto skip_optional_pos;
111 }
112 if (args[1] == Py_None) {
113 errors = NULL;
114 }
115 else if (PyUnicode_Check(args[1])) {
116 Py_ssize_t errors_length;
117 errors = PyUnicode_AsUTF8AndSize(args[1], &errors_length);
118 if (errors == NULL) {
119 goto exit;
120 }
121 if (strlen(errors) != (size_t)errors_length) {
122 PyErr_SetString(PyExc_ValueError, "embedded null character");
123 goto exit;
124 }
125 }
126 else {
Rémi Lapeyre4901fe22019-08-29 16:49:08 +0200127 _PyArg_BadArgument("decode", "argument 'errors'", "str or None", args[1]);
Serhiy Storchaka31913912019-03-14 10:32:22 +0200128 goto exit;
129 }
130skip_optional_pos:
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400131 return_value = _multibytecodec_MultibyteCodec_decode_impl(self, &input, errors);
132
133exit:
134 /* Cleanup for input */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300135 if (input.obj) {
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400136 PyBuffer_Release(&input);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300137 }
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400138
139 return return_value;
140}
141
142PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_encode__doc__,
Serhiy Storchaka8b2e8b62015-05-30 11:30:39 +0300143"encode($self, /, input, final=False)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500144"--\n"
145"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400146
147#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_ENCODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200148 {"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalEncoder_encode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalEncoder_encode__doc__},
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400149
150static PyObject *
Larry Hastings89964c42015-04-14 18:07:59 -0400151_multibytecodec_MultibyteIncrementalEncoder_encode_impl(MultibyteIncrementalEncoderObject *self,
152 PyObject *input,
153 int final);
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400154
155static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200156_multibytecodec_MultibyteIncrementalEncoder_encode(MultibyteIncrementalEncoderObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400157{
158 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300159 static const char * const _keywords[] = {"input", "final", NULL};
Serhiy Storchaka31913912019-03-14 10:32:22 +0200160 static _PyArg_Parser _parser = {NULL, _keywords, "encode", 0};
161 PyObject *argsbuf[2];
162 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400163 PyObject *input;
164 int final = 0;
165
Serhiy Storchaka31913912019-03-14 10:32:22 +0200166 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
167 if (!args) {
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400168 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300169 }
Serhiy Storchaka31913912019-03-14 10:32:22 +0200170 input = args[0];
171 if (!noptargs) {
172 goto skip_optional_pos;
173 }
174 if (PyFloat_Check(args[1])) {
175 PyErr_SetString(PyExc_TypeError,
176 "integer argument expected, got float" );
177 goto exit;
178 }
179 final = _PyLong_AsInt(args[1]);
180 if (final == -1 && PyErr_Occurred()) {
181 goto exit;
182 }
183skip_optional_pos:
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400184 return_value = _multibytecodec_MultibyteIncrementalEncoder_encode_impl(self, input, final);
185
186exit:
187 return return_value;
188}
189
Christopher Thorneac22f6a2018-11-01 10:48:49 +0000190PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_getstate__doc__,
191"getstate($self, /)\n"
192"--\n"
193"\n");
194
195#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_GETSTATE_METHODDEF \
196 {"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_getstate, METH_NOARGS, _multibytecodec_MultibyteIncrementalEncoder_getstate__doc__},
197
198static PyObject *
199_multibytecodec_MultibyteIncrementalEncoder_getstate_impl(MultibyteIncrementalEncoderObject *self);
200
201static PyObject *
202_multibytecodec_MultibyteIncrementalEncoder_getstate(MultibyteIncrementalEncoderObject *self, PyObject *Py_UNUSED(ignored))
203{
204 return _multibytecodec_MultibyteIncrementalEncoder_getstate_impl(self);
205}
206
207PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_setstate__doc__,
208"setstate($self, state, /)\n"
209"--\n"
210"\n");
211
212#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_SETSTATE_METHODDEF \
213 {"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_setstate, METH_O, _multibytecodec_MultibyteIncrementalEncoder_setstate__doc__},
214
215static PyObject *
216_multibytecodec_MultibyteIncrementalEncoder_setstate_impl(MultibyteIncrementalEncoderObject *self,
217 PyLongObject *statelong);
218
219static PyObject *
220_multibytecodec_MultibyteIncrementalEncoder_setstate(MultibyteIncrementalEncoderObject *self, PyObject *arg)
221{
222 PyObject *return_value = NULL;
223 PyLongObject *statelong;
224
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200225 if (!PyLong_Check(arg)) {
Rémi Lapeyre4901fe22019-08-29 16:49:08 +0200226 _PyArg_BadArgument("setstate", "argument", "int", arg);
Christopher Thorneac22f6a2018-11-01 10:48:49 +0000227 goto exit;
228 }
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200229 statelong = (PyLongObject *)arg;
Christopher Thorneac22f6a2018-11-01 10:48:49 +0000230 return_value = _multibytecodec_MultibyteIncrementalEncoder_setstate_impl(self, statelong);
231
232exit:
233 return return_value;
234}
235
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400236PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalEncoder_reset__doc__,
237"reset($self, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500238"--\n"
239"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400240
241#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_RESET_METHODDEF \
242 {"reset", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_reset, METH_NOARGS, _multibytecodec_MultibyteIncrementalEncoder_reset__doc__},
243
244static PyObject *
245_multibytecodec_MultibyteIncrementalEncoder_reset_impl(MultibyteIncrementalEncoderObject *self);
246
247static PyObject *
248_multibytecodec_MultibyteIncrementalEncoder_reset(MultibyteIncrementalEncoderObject *self, PyObject *Py_UNUSED(ignored))
249{
250 return _multibytecodec_MultibyteIncrementalEncoder_reset_impl(self);
251}
252
253PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_decode__doc__,
Serhiy Storchaka8b2e8b62015-05-30 11:30:39 +0300254"decode($self, /, input, final=False)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500255"--\n"
256"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400257
258#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_DECODE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200259 {"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalDecoder_decode, METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalDecoder_decode__doc__},
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400260
261static PyObject *
Larry Hastings89964c42015-04-14 18:07:59 -0400262_multibytecodec_MultibyteIncrementalDecoder_decode_impl(MultibyteIncrementalDecoderObject *self,
263 Py_buffer *input,
264 int final);
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400265
266static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200267_multibytecodec_MultibyteIncrementalDecoder_decode(MultibyteIncrementalDecoderObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400268{
269 PyObject *return_value = NULL;
Serhiy Storchaka9171a8b2016-08-14 10:52:18 +0300270 static const char * const _keywords[] = {"input", "final", NULL};
Serhiy Storchaka31913912019-03-14 10:32:22 +0200271 static _PyArg_Parser _parser = {NULL, _keywords, "decode", 0};
272 PyObject *argsbuf[2];
273 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400274 Py_buffer input = {NULL, NULL};
275 int final = 0;
276
Serhiy Storchaka31913912019-03-14 10:32:22 +0200277 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
278 if (!args) {
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400279 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300280 }
Serhiy Storchaka31913912019-03-14 10:32:22 +0200281 if (PyObject_GetBuffer(args[0], &input, PyBUF_SIMPLE) != 0) {
282 goto exit;
283 }
284 if (!PyBuffer_IsContiguous(&input, 'C')) {
Rémi Lapeyre4901fe22019-08-29 16:49:08 +0200285 _PyArg_BadArgument("decode", "argument 'input'", "contiguous buffer", args[0]);
Serhiy Storchaka31913912019-03-14 10:32:22 +0200286 goto exit;
287 }
288 if (!noptargs) {
289 goto skip_optional_pos;
290 }
291 if (PyFloat_Check(args[1])) {
292 PyErr_SetString(PyExc_TypeError,
293 "integer argument expected, got float" );
294 goto exit;
295 }
296 final = _PyLong_AsInt(args[1]);
297 if (final == -1 && PyErr_Occurred()) {
298 goto exit;
299 }
300skip_optional_pos:
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400301 return_value = _multibytecodec_MultibyteIncrementalDecoder_decode_impl(self, &input, final);
302
303exit:
304 /* Cleanup for input */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300305 if (input.obj) {
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400306 PyBuffer_Release(&input);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300307 }
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400308
309 return return_value;
310}
311
Christopher Thorneac22f6a2018-11-01 10:48:49 +0000312PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_getstate__doc__,
313"getstate($self, /)\n"
314"--\n"
315"\n");
316
317#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_GETSTATE_METHODDEF \
318 {"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_getstate, METH_NOARGS, _multibytecodec_MultibyteIncrementalDecoder_getstate__doc__},
319
320static PyObject *
321_multibytecodec_MultibyteIncrementalDecoder_getstate_impl(MultibyteIncrementalDecoderObject *self);
322
323static PyObject *
324_multibytecodec_MultibyteIncrementalDecoder_getstate(MultibyteIncrementalDecoderObject *self, PyObject *Py_UNUSED(ignored))
325{
326 return _multibytecodec_MultibyteIncrementalDecoder_getstate_impl(self);
327}
328
329PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_setstate__doc__,
330"setstate($self, state, /)\n"
331"--\n"
332"\n");
333
334#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_SETSTATE_METHODDEF \
335 {"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_setstate, METH_O, _multibytecodec_MultibyteIncrementalDecoder_setstate__doc__},
336
337static PyObject *
338_multibytecodec_MultibyteIncrementalDecoder_setstate_impl(MultibyteIncrementalDecoderObject *self,
339 PyObject *state);
340
341static PyObject *
342_multibytecodec_MultibyteIncrementalDecoder_setstate(MultibyteIncrementalDecoderObject *self, PyObject *arg)
343{
344 PyObject *return_value = NULL;
345 PyObject *state;
346
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200347 if (!PyTuple_Check(arg)) {
Rémi Lapeyre4901fe22019-08-29 16:49:08 +0200348 _PyArg_BadArgument("setstate", "argument", "tuple", arg);
Christopher Thorneac22f6a2018-11-01 10:48:49 +0000349 goto exit;
350 }
Serhiy Storchaka32d96a22018-12-25 13:23:47 +0200351 state = arg;
Christopher Thorneac22f6a2018-11-01 10:48:49 +0000352 return_value = _multibytecodec_MultibyteIncrementalDecoder_setstate_impl(self, state);
353
354exit:
355 return return_value;
356}
357
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400358PyDoc_STRVAR(_multibytecodec_MultibyteIncrementalDecoder_reset__doc__,
359"reset($self, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500360"--\n"
361"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400362
363#define _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_RESET_METHODDEF \
364 {"reset", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_reset, METH_NOARGS, _multibytecodec_MultibyteIncrementalDecoder_reset__doc__},
365
366static PyObject *
367_multibytecodec_MultibyteIncrementalDecoder_reset_impl(MultibyteIncrementalDecoderObject *self);
368
369static PyObject *
370_multibytecodec_MultibyteIncrementalDecoder_reset(MultibyteIncrementalDecoderObject *self, PyObject *Py_UNUSED(ignored))
371{
372 return _multibytecodec_MultibyteIncrementalDecoder_reset_impl(self);
373}
374
375PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_read__doc__,
376"read($self, sizeobj=None, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500377"--\n"
378"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400379
380#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READ_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200381 {"read", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_read, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_read__doc__},
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400382
383static PyObject *
Larry Hastings89964c42015-04-14 18:07:59 -0400384_multibytecodec_MultibyteStreamReader_read_impl(MultibyteStreamReaderObject *self,
385 PyObject *sizeobj);
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400386
387static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200388_multibytecodec_MultibyteStreamReader_read(MultibyteStreamReaderObject *self, PyObject *const *args, Py_ssize_t nargs)
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400389{
390 PyObject *return_value = NULL;
391 PyObject *sizeobj = Py_None;
392
Serhiy Storchaka2a39d252019-01-11 18:01:42 +0200393 if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
Victor Stinner0c4a8282017-01-17 02:21:47 +0100394 goto exit;
395 }
Serhiy Storchaka2a39d252019-01-11 18:01:42 +0200396 if (nargs < 1) {
397 goto skip_optional;
398 }
399 sizeobj = args[0];
400skip_optional:
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400401 return_value = _multibytecodec_MultibyteStreamReader_read_impl(self, sizeobj);
402
403exit:
404 return return_value;
405}
406
407PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_readline__doc__,
408"readline($self, sizeobj=None, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500409"--\n"
410"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400411
412#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINE_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200413 {"readline", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readline, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readline__doc__},
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400414
415static PyObject *
Larry Hastings89964c42015-04-14 18:07:59 -0400416_multibytecodec_MultibyteStreamReader_readline_impl(MultibyteStreamReaderObject *self,
417 PyObject *sizeobj);
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400418
419static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200420_multibytecodec_MultibyteStreamReader_readline(MultibyteStreamReaderObject *self, PyObject *const *args, Py_ssize_t nargs)
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400421{
422 PyObject *return_value = NULL;
423 PyObject *sizeobj = Py_None;
424
Serhiy Storchaka2a39d252019-01-11 18:01:42 +0200425 if (!_PyArg_CheckPositional("readline", nargs, 0, 1)) {
Victor Stinner0c4a8282017-01-17 02:21:47 +0100426 goto exit;
427 }
Serhiy Storchaka2a39d252019-01-11 18:01:42 +0200428 if (nargs < 1) {
429 goto skip_optional;
430 }
431 sizeobj = args[0];
432skip_optional:
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400433 return_value = _multibytecodec_MultibyteStreamReader_readline_impl(self, sizeobj);
434
435exit:
436 return return_value;
437}
438
439PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_readlines__doc__,
440"readlines($self, sizehintobj=None, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500441"--\n"
442"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400443
444#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINES_METHODDEF \
Serhiy Storchaka4a934d42018-11-27 11:27:36 +0200445 {"readlines", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readlines, METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readlines__doc__},
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400446
447static PyObject *
Larry Hastings89964c42015-04-14 18:07:59 -0400448_multibytecodec_MultibyteStreamReader_readlines_impl(MultibyteStreamReaderObject *self,
449 PyObject *sizehintobj);
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400450
451static PyObject *
Serhiy Storchakaa5552f02017-12-15 13:11:11 +0200452_multibytecodec_MultibyteStreamReader_readlines(MultibyteStreamReaderObject *self, PyObject *const *args, Py_ssize_t nargs)
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400453{
454 PyObject *return_value = NULL;
455 PyObject *sizehintobj = Py_None;
456
Serhiy Storchaka2a39d252019-01-11 18:01:42 +0200457 if (!_PyArg_CheckPositional("readlines", nargs, 0, 1)) {
Victor Stinner0c4a8282017-01-17 02:21:47 +0100458 goto exit;
459 }
Serhiy Storchaka2a39d252019-01-11 18:01:42 +0200460 if (nargs < 1) {
461 goto skip_optional;
462 }
463 sizehintobj = args[0];
464skip_optional:
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400465 return_value = _multibytecodec_MultibyteStreamReader_readlines_impl(self, sizehintobj);
466
467exit:
468 return return_value;
469}
470
471PyDoc_STRVAR(_multibytecodec_MultibyteStreamReader_reset__doc__,
472"reset($self, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500473"--\n"
474"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400475
476#define _MULTIBYTECODEC_MULTIBYTESTREAMREADER_RESET_METHODDEF \
477 {"reset", (PyCFunction)_multibytecodec_MultibyteStreamReader_reset, METH_NOARGS, _multibytecodec_MultibyteStreamReader_reset__doc__},
478
479static PyObject *
480_multibytecodec_MultibyteStreamReader_reset_impl(MultibyteStreamReaderObject *self);
481
482static PyObject *
483_multibytecodec_MultibyteStreamReader_reset(MultibyteStreamReaderObject *self, PyObject *Py_UNUSED(ignored))
484{
485 return _multibytecodec_MultibyteStreamReader_reset_impl(self);
486}
487
488PyDoc_STRVAR(_multibytecodec_MultibyteStreamWriter_write__doc__,
489"write($self, strobj, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500490"--\n"
491"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400492
493#define _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITE_METHODDEF \
494 {"write", (PyCFunction)_multibytecodec_MultibyteStreamWriter_write, METH_O, _multibytecodec_MultibyteStreamWriter_write__doc__},
495
496PyDoc_STRVAR(_multibytecodec_MultibyteStreamWriter_writelines__doc__,
497"writelines($self, lines, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500498"--\n"
499"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400500
501#define _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITELINES_METHODDEF \
502 {"writelines", (PyCFunction)_multibytecodec_MultibyteStreamWriter_writelines, METH_O, _multibytecodec_MultibyteStreamWriter_writelines__doc__},
503
504PyDoc_STRVAR(_multibytecodec_MultibyteStreamWriter_reset__doc__,
505"reset($self, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500506"--\n"
507"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400508
509#define _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_RESET_METHODDEF \
510 {"reset", (PyCFunction)_multibytecodec_MultibyteStreamWriter_reset, METH_NOARGS, _multibytecodec_MultibyteStreamWriter_reset__doc__},
511
512static PyObject *
513_multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject *self);
514
515static PyObject *
516_multibytecodec_MultibyteStreamWriter_reset(MultibyteStreamWriterObject *self, PyObject *Py_UNUSED(ignored))
517{
518 return _multibytecodec_MultibyteStreamWriter_reset_impl(self);
519}
520
521PyDoc_STRVAR(_multibytecodec___create_codec__doc__,
522"__create_codec($module, arg, /)\n"
Zachary Ware8ef887c2015-04-13 18:22:35 -0500523"--\n"
524"\n");
Brett Cannonf2de1fc2014-08-22 11:45:03 -0400525
526#define _MULTIBYTECODEC___CREATE_CODEC_METHODDEF \
527 {"__create_codec", (PyCFunction)_multibytecodec___create_codec, METH_O, _multibytecodec___create_codec__doc__},
Rémi Lapeyre4901fe22019-08-29 16:49:08 +0200528/*[clinic end generated code: output=5ce6fd4ca1f95620 input=a9049054013a1b77]*/