blob: a7ca79e1bf0856cd66109631aefa370d988337fd [file] [log] [blame]
Serhiy Storchaka1009bf12015-04-03 23:53:51 +03001/*[clinic input]
2preserve
3[clinic start generated code]*/
4
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03005PyDoc_STRVAR(_codecs_register__doc__,
6"register($module, search_function, /)\n"
7"--\n"
8"\n"
9"Register a codec search function.\n"
10"\n"
11"Search functions are expected to take one argument, the encoding name in\n"
12"all lower case letters, and either return None, or a tuple of functions\n"
13"(encoder, decoder, stream_reader, stream_writer) (or a CodecInfo object).");
14
15#define _CODECS_REGISTER_METHODDEF \
16 {"register", (PyCFunction)_codecs_register, METH_O, _codecs_register__doc__},
17
18PyDoc_STRVAR(_codecs_lookup__doc__,
19"lookup($module, encoding, /)\n"
20"--\n"
21"\n"
22"Looks up a codec tuple in the Python codec registry and returns a CodecInfo object.");
23
24#define _CODECS_LOOKUP_METHODDEF \
25 {"lookup", (PyCFunction)_codecs_lookup, METH_O, _codecs_lookup__doc__},
26
27static PyObject *
28_codecs_lookup_impl(PyModuleDef *module, const char *encoding);
29
30static PyObject *
31_codecs_lookup(PyModuleDef *module, PyObject *arg)
32{
33 PyObject *return_value = NULL;
34 const char *encoding;
35
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030036 if (!PyArg_Parse(arg, "s:lookup", &encoding)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030037 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030038 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030039 return_value = _codecs_lookup_impl(module, encoding);
40
41exit:
42 return return_value;
43}
44
45PyDoc_STRVAR(_codecs_encode__doc__,
Serhiy Storchakac97a9622015-08-09 12:23:08 +030046"encode($module, /, obj, encoding=\'utf-8\', errors=\'strict\')\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030047"--\n"
48"\n"
49"Encodes obj using the codec registered for encoding.\n"
50"\n"
Serhiy Storchakac97a9622015-08-09 12:23:08 +030051"The default encoding is \'utf-8\'. errors may be given to set a\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030052"different error handling scheme. Default is \'strict\' meaning that encoding\n"
53"errors raise a ValueError. Other possible values are \'ignore\', \'replace\'\n"
54"and \'backslashreplace\' as well as any other name registered with\n"
55"codecs.register_error that can handle ValueErrors.");
56
57#define _CODECS_ENCODE_METHODDEF \
58 {"encode", (PyCFunction)_codecs_encode, METH_VARARGS|METH_KEYWORDS, _codecs_encode__doc__},
59
60static PyObject *
61_codecs_encode_impl(PyModuleDef *module, PyObject *obj, const char *encoding,
62 const char *errors);
63
64static PyObject *
65_codecs_encode(PyModuleDef *module, PyObject *args, PyObject *kwargs)
66{
67 PyObject *return_value = NULL;
68 static char *_keywords[] = {"obj", "encoding", "errors", NULL};
69 PyObject *obj;
70 const char *encoding = NULL;
71 const char *errors = NULL;
72
73 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|ss:encode", _keywords,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030074 &obj, &encoding, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030075 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +030076 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030077 return_value = _codecs_encode_impl(module, obj, encoding, errors);
78
79exit:
80 return return_value;
81}
82
83PyDoc_STRVAR(_codecs_decode__doc__,
Serhiy Storchakac97a9622015-08-09 12:23:08 +030084"decode($module, /, obj, encoding=\'utf-8\', errors=\'strict\')\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030085"--\n"
86"\n"
87"Decodes obj using the codec registered for encoding.\n"
88"\n"
Serhiy Storchakac97a9622015-08-09 12:23:08 +030089"Default encoding is \'utf-8\'. errors may be given to set a\n"
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +030090"different error handling scheme. Default is \'strict\' meaning that encoding\n"
91"errors raise a ValueError. Other possible values are \'ignore\', \'replace\'\n"
92"and \'backslashreplace\' as well as any other name registered with\n"
93"codecs.register_error that can handle ValueErrors.");
94
95#define _CODECS_DECODE_METHODDEF \
96 {"decode", (PyCFunction)_codecs_decode, METH_VARARGS|METH_KEYWORDS, _codecs_decode__doc__},
97
98static PyObject *
99_codecs_decode_impl(PyModuleDef *module, PyObject *obj, const char *encoding,
100 const char *errors);
101
102static PyObject *
103_codecs_decode(PyModuleDef *module, PyObject *args, PyObject *kwargs)
104{
105 PyObject *return_value = NULL;
106 static char *_keywords[] = {"obj", "encoding", "errors", NULL};
107 PyObject *obj;
108 const char *encoding = NULL;
109 const char *errors = NULL;
110
111 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|ss:decode", _keywords,
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300112 &obj, &encoding, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300113 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300114 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300115 return_value = _codecs_decode_impl(module, obj, encoding, errors);
116
117exit:
118 return return_value;
119}
120
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300121PyDoc_STRVAR(_codecs__forget_codec__doc__,
122"_forget_codec($module, encoding, /)\n"
123"--\n"
124"\n"
125"Purge the named codec from the internal codec lookup cache");
126
127#define _CODECS__FORGET_CODEC_METHODDEF \
Serhiy Storchaka92e8af62015-04-04 00:12:11 +0300128 {"_forget_codec", (PyCFunction)_codecs__forget_codec, METH_O, _codecs__forget_codec__doc__},
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300129
130static PyObject *
131_codecs__forget_codec_impl(PyModuleDef *module, const char *encoding);
132
133static PyObject *
Serhiy Storchaka92e8af62015-04-04 00:12:11 +0300134_codecs__forget_codec(PyModuleDef *module, PyObject *arg)
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300135{
136 PyObject *return_value = NULL;
137 const char *encoding;
138
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300139 if (!PyArg_Parse(arg, "s:_forget_codec", &encoding)) {
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300140 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300141 }
Serhiy Storchaka1009bf12015-04-03 23:53:51 +0300142 return_value = _codecs__forget_codec_impl(module, encoding);
143
144exit:
145 return return_value;
146}
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300147
148PyDoc_STRVAR(_codecs_escape_decode__doc__,
149"escape_decode($module, data, errors=None, /)\n"
150"--\n"
151"\n");
152
153#define _CODECS_ESCAPE_DECODE_METHODDEF \
154 {"escape_decode", (PyCFunction)_codecs_escape_decode, METH_VARARGS, _codecs_escape_decode__doc__},
155
156static PyObject *
157_codecs_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
158 const char *errors);
159
160static PyObject *
161_codecs_escape_decode(PyModuleDef *module, PyObject *args)
162{
163 PyObject *return_value = NULL;
164 Py_buffer data = {NULL, NULL};
165 const char *errors = NULL;
166
167 if (!PyArg_ParseTuple(args, "s*|z:escape_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300168 &data, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300169 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300170 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300171 return_value = _codecs_escape_decode_impl(module, &data, errors);
172
173exit:
174 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300175 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300176 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300177 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300178
179 return return_value;
180}
181
182PyDoc_STRVAR(_codecs_escape_encode__doc__,
183"escape_encode($module, data, errors=None, /)\n"
184"--\n"
185"\n");
186
187#define _CODECS_ESCAPE_ENCODE_METHODDEF \
188 {"escape_encode", (PyCFunction)_codecs_escape_encode, METH_VARARGS, _codecs_escape_encode__doc__},
189
190static PyObject *
191_codecs_escape_encode_impl(PyModuleDef *module, PyObject *data,
192 const char *errors);
193
194static PyObject *
195_codecs_escape_encode(PyModuleDef *module, PyObject *args)
196{
197 PyObject *return_value = NULL;
198 PyObject *data;
199 const char *errors = NULL;
200
201 if (!PyArg_ParseTuple(args, "O!|z:escape_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300202 &PyBytes_Type, &data, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300203 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300204 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300205 return_value = _codecs_escape_encode_impl(module, data, errors);
206
207exit:
208 return return_value;
209}
210
211PyDoc_STRVAR(_codecs_unicode_internal_decode__doc__,
212"unicode_internal_decode($module, obj, errors=None, /)\n"
213"--\n"
214"\n");
215
216#define _CODECS_UNICODE_INTERNAL_DECODE_METHODDEF \
217 {"unicode_internal_decode", (PyCFunction)_codecs_unicode_internal_decode, METH_VARARGS, _codecs_unicode_internal_decode__doc__},
218
219static PyObject *
220_codecs_unicode_internal_decode_impl(PyModuleDef *module, PyObject *obj,
221 const char *errors);
222
223static PyObject *
224_codecs_unicode_internal_decode(PyModuleDef *module, PyObject *args)
225{
226 PyObject *return_value = NULL;
227 PyObject *obj;
228 const char *errors = NULL;
229
230 if (!PyArg_ParseTuple(args, "O|z:unicode_internal_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300231 &obj, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300232 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300233 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300234 return_value = _codecs_unicode_internal_decode_impl(module, obj, errors);
235
236exit:
237 return return_value;
238}
239
240PyDoc_STRVAR(_codecs_utf_7_decode__doc__,
241"utf_7_decode($module, data, errors=None, final=False, /)\n"
242"--\n"
243"\n");
244
245#define _CODECS_UTF_7_DECODE_METHODDEF \
246 {"utf_7_decode", (PyCFunction)_codecs_utf_7_decode, METH_VARARGS, _codecs_utf_7_decode__doc__},
247
248static PyObject *
249_codecs_utf_7_decode_impl(PyModuleDef *module, Py_buffer *data,
250 const char *errors, int final);
251
252static PyObject *
253_codecs_utf_7_decode(PyModuleDef *module, PyObject *args)
254{
255 PyObject *return_value = NULL;
256 Py_buffer data = {NULL, NULL};
257 const char *errors = NULL;
258 int final = 0;
259
260 if (!PyArg_ParseTuple(args, "y*|zi:utf_7_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300261 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300262 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300263 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300264 return_value = _codecs_utf_7_decode_impl(module, &data, errors, final);
265
266exit:
267 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300268 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300269 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300270 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300271
272 return return_value;
273}
274
275PyDoc_STRVAR(_codecs_utf_8_decode__doc__,
276"utf_8_decode($module, data, errors=None, final=False, /)\n"
277"--\n"
278"\n");
279
280#define _CODECS_UTF_8_DECODE_METHODDEF \
281 {"utf_8_decode", (PyCFunction)_codecs_utf_8_decode, METH_VARARGS, _codecs_utf_8_decode__doc__},
282
283static PyObject *
284_codecs_utf_8_decode_impl(PyModuleDef *module, Py_buffer *data,
285 const char *errors, int final);
286
287static PyObject *
288_codecs_utf_8_decode(PyModuleDef *module, PyObject *args)
289{
290 PyObject *return_value = NULL;
291 Py_buffer data = {NULL, NULL};
292 const char *errors = NULL;
293 int final = 0;
294
295 if (!PyArg_ParseTuple(args, "y*|zi:utf_8_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300296 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300297 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300298 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300299 return_value = _codecs_utf_8_decode_impl(module, &data, errors, final);
300
301exit:
302 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300303 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300304 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300305 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300306
307 return return_value;
308}
309
310PyDoc_STRVAR(_codecs_utf_16_decode__doc__,
311"utf_16_decode($module, data, errors=None, final=False, /)\n"
312"--\n"
313"\n");
314
315#define _CODECS_UTF_16_DECODE_METHODDEF \
316 {"utf_16_decode", (PyCFunction)_codecs_utf_16_decode, METH_VARARGS, _codecs_utf_16_decode__doc__},
317
318static PyObject *
319_codecs_utf_16_decode_impl(PyModuleDef *module, Py_buffer *data,
320 const char *errors, int final);
321
322static PyObject *
323_codecs_utf_16_decode(PyModuleDef *module, PyObject *args)
324{
325 PyObject *return_value = NULL;
326 Py_buffer data = {NULL, NULL};
327 const char *errors = NULL;
328 int final = 0;
329
330 if (!PyArg_ParseTuple(args, "y*|zi:utf_16_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300331 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300332 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300333 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300334 return_value = _codecs_utf_16_decode_impl(module, &data, errors, final);
335
336exit:
337 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300338 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300339 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300340 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300341
342 return return_value;
343}
344
345PyDoc_STRVAR(_codecs_utf_16_le_decode__doc__,
346"utf_16_le_decode($module, data, errors=None, final=False, /)\n"
347"--\n"
348"\n");
349
350#define _CODECS_UTF_16_LE_DECODE_METHODDEF \
351 {"utf_16_le_decode", (PyCFunction)_codecs_utf_16_le_decode, METH_VARARGS, _codecs_utf_16_le_decode__doc__},
352
353static PyObject *
354_codecs_utf_16_le_decode_impl(PyModuleDef *module, Py_buffer *data,
355 const char *errors, int final);
356
357static PyObject *
358_codecs_utf_16_le_decode(PyModuleDef *module, PyObject *args)
359{
360 PyObject *return_value = NULL;
361 Py_buffer data = {NULL, NULL};
362 const char *errors = NULL;
363 int final = 0;
364
365 if (!PyArg_ParseTuple(args, "y*|zi:utf_16_le_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300366 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300367 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300368 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300369 return_value = _codecs_utf_16_le_decode_impl(module, &data, errors, final);
370
371exit:
372 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300373 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300374 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300375 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300376
377 return return_value;
378}
379
380PyDoc_STRVAR(_codecs_utf_16_be_decode__doc__,
381"utf_16_be_decode($module, data, errors=None, final=False, /)\n"
382"--\n"
383"\n");
384
385#define _CODECS_UTF_16_BE_DECODE_METHODDEF \
386 {"utf_16_be_decode", (PyCFunction)_codecs_utf_16_be_decode, METH_VARARGS, _codecs_utf_16_be_decode__doc__},
387
388static PyObject *
389_codecs_utf_16_be_decode_impl(PyModuleDef *module, Py_buffer *data,
390 const char *errors, int final);
391
392static PyObject *
393_codecs_utf_16_be_decode(PyModuleDef *module, PyObject *args)
394{
395 PyObject *return_value = NULL;
396 Py_buffer data = {NULL, NULL};
397 const char *errors = NULL;
398 int final = 0;
399
400 if (!PyArg_ParseTuple(args, "y*|zi:utf_16_be_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300401 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300402 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300403 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300404 return_value = _codecs_utf_16_be_decode_impl(module, &data, errors, final);
405
406exit:
407 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300408 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300409 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300410 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300411
412 return return_value;
413}
414
415PyDoc_STRVAR(_codecs_utf_16_ex_decode__doc__,
416"utf_16_ex_decode($module, data, errors=None, byteorder=0, final=False,\n"
417" /)\n"
418"--\n"
419"\n");
420
421#define _CODECS_UTF_16_EX_DECODE_METHODDEF \
422 {"utf_16_ex_decode", (PyCFunction)_codecs_utf_16_ex_decode, METH_VARARGS, _codecs_utf_16_ex_decode__doc__},
423
424static PyObject *
425_codecs_utf_16_ex_decode_impl(PyModuleDef *module, Py_buffer *data,
426 const char *errors, int byteorder, int final);
427
428static PyObject *
429_codecs_utf_16_ex_decode(PyModuleDef *module, PyObject *args)
430{
431 PyObject *return_value = NULL;
432 Py_buffer data = {NULL, NULL};
433 const char *errors = NULL;
434 int byteorder = 0;
435 int final = 0;
436
437 if (!PyArg_ParseTuple(args, "y*|zii:utf_16_ex_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300438 &data, &errors, &byteorder, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300439 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300440 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300441 return_value = _codecs_utf_16_ex_decode_impl(module, &data, errors, byteorder, final);
442
443exit:
444 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300445 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300446 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300447 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300448
449 return return_value;
450}
451
452PyDoc_STRVAR(_codecs_utf_32_decode__doc__,
453"utf_32_decode($module, data, errors=None, final=False, /)\n"
454"--\n"
455"\n");
456
457#define _CODECS_UTF_32_DECODE_METHODDEF \
458 {"utf_32_decode", (PyCFunction)_codecs_utf_32_decode, METH_VARARGS, _codecs_utf_32_decode__doc__},
459
460static PyObject *
461_codecs_utf_32_decode_impl(PyModuleDef *module, Py_buffer *data,
462 const char *errors, int final);
463
464static PyObject *
465_codecs_utf_32_decode(PyModuleDef *module, PyObject *args)
466{
467 PyObject *return_value = NULL;
468 Py_buffer data = {NULL, NULL};
469 const char *errors = NULL;
470 int final = 0;
471
472 if (!PyArg_ParseTuple(args, "y*|zi:utf_32_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300473 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300474 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300475 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300476 return_value = _codecs_utf_32_decode_impl(module, &data, errors, final);
477
478exit:
479 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300480 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300481 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300482 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300483
484 return return_value;
485}
486
487PyDoc_STRVAR(_codecs_utf_32_le_decode__doc__,
488"utf_32_le_decode($module, data, errors=None, final=False, /)\n"
489"--\n"
490"\n");
491
492#define _CODECS_UTF_32_LE_DECODE_METHODDEF \
493 {"utf_32_le_decode", (PyCFunction)_codecs_utf_32_le_decode, METH_VARARGS, _codecs_utf_32_le_decode__doc__},
494
495static PyObject *
496_codecs_utf_32_le_decode_impl(PyModuleDef *module, Py_buffer *data,
497 const char *errors, int final);
498
499static PyObject *
500_codecs_utf_32_le_decode(PyModuleDef *module, PyObject *args)
501{
502 PyObject *return_value = NULL;
503 Py_buffer data = {NULL, NULL};
504 const char *errors = NULL;
505 int final = 0;
506
507 if (!PyArg_ParseTuple(args, "y*|zi:utf_32_le_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300508 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300509 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300510 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300511 return_value = _codecs_utf_32_le_decode_impl(module, &data, errors, final);
512
513exit:
514 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300515 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300516 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300517 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300518
519 return return_value;
520}
521
522PyDoc_STRVAR(_codecs_utf_32_be_decode__doc__,
523"utf_32_be_decode($module, data, errors=None, final=False, /)\n"
524"--\n"
525"\n");
526
527#define _CODECS_UTF_32_BE_DECODE_METHODDEF \
528 {"utf_32_be_decode", (PyCFunction)_codecs_utf_32_be_decode, METH_VARARGS, _codecs_utf_32_be_decode__doc__},
529
530static PyObject *
531_codecs_utf_32_be_decode_impl(PyModuleDef *module, Py_buffer *data,
532 const char *errors, int final);
533
534static PyObject *
535_codecs_utf_32_be_decode(PyModuleDef *module, PyObject *args)
536{
537 PyObject *return_value = NULL;
538 Py_buffer data = {NULL, NULL};
539 const char *errors = NULL;
540 int final = 0;
541
542 if (!PyArg_ParseTuple(args, "y*|zi:utf_32_be_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300543 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300544 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300545 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300546 return_value = _codecs_utf_32_be_decode_impl(module, &data, errors, final);
547
548exit:
549 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300550 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300551 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300552 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300553
554 return return_value;
555}
556
557PyDoc_STRVAR(_codecs_utf_32_ex_decode__doc__,
558"utf_32_ex_decode($module, data, errors=None, byteorder=0, final=False,\n"
559" /)\n"
560"--\n"
561"\n");
562
563#define _CODECS_UTF_32_EX_DECODE_METHODDEF \
564 {"utf_32_ex_decode", (PyCFunction)_codecs_utf_32_ex_decode, METH_VARARGS, _codecs_utf_32_ex_decode__doc__},
565
566static PyObject *
567_codecs_utf_32_ex_decode_impl(PyModuleDef *module, Py_buffer *data,
568 const char *errors, int byteorder, int final);
569
570static PyObject *
571_codecs_utf_32_ex_decode(PyModuleDef *module, PyObject *args)
572{
573 PyObject *return_value = NULL;
574 Py_buffer data = {NULL, NULL};
575 const char *errors = NULL;
576 int byteorder = 0;
577 int final = 0;
578
579 if (!PyArg_ParseTuple(args, "y*|zii:utf_32_ex_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300580 &data, &errors, &byteorder, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300581 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300582 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300583 return_value = _codecs_utf_32_ex_decode_impl(module, &data, errors, byteorder, final);
584
585exit:
586 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300587 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300588 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300589 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300590
591 return return_value;
592}
593
594PyDoc_STRVAR(_codecs_unicode_escape_decode__doc__,
595"unicode_escape_decode($module, data, errors=None, /)\n"
596"--\n"
597"\n");
598
599#define _CODECS_UNICODE_ESCAPE_DECODE_METHODDEF \
600 {"unicode_escape_decode", (PyCFunction)_codecs_unicode_escape_decode, METH_VARARGS, _codecs_unicode_escape_decode__doc__},
601
602static PyObject *
603_codecs_unicode_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
604 const char *errors);
605
606static PyObject *
607_codecs_unicode_escape_decode(PyModuleDef *module, PyObject *args)
608{
609 PyObject *return_value = NULL;
610 Py_buffer data = {NULL, NULL};
611 const char *errors = NULL;
612
613 if (!PyArg_ParseTuple(args, "s*|z:unicode_escape_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300614 &data, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300615 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300616 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300617 return_value = _codecs_unicode_escape_decode_impl(module, &data, errors);
618
619exit:
620 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300621 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300622 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300623 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300624
625 return return_value;
626}
627
628PyDoc_STRVAR(_codecs_raw_unicode_escape_decode__doc__,
629"raw_unicode_escape_decode($module, data, errors=None, /)\n"
630"--\n"
631"\n");
632
633#define _CODECS_RAW_UNICODE_ESCAPE_DECODE_METHODDEF \
634 {"raw_unicode_escape_decode", (PyCFunction)_codecs_raw_unicode_escape_decode, METH_VARARGS, _codecs_raw_unicode_escape_decode__doc__},
635
636static PyObject *
637_codecs_raw_unicode_escape_decode_impl(PyModuleDef *module, Py_buffer *data,
638 const char *errors);
639
640static PyObject *
641_codecs_raw_unicode_escape_decode(PyModuleDef *module, PyObject *args)
642{
643 PyObject *return_value = NULL;
644 Py_buffer data = {NULL, NULL};
645 const char *errors = NULL;
646
647 if (!PyArg_ParseTuple(args, "s*|z:raw_unicode_escape_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300648 &data, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300649 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300650 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300651 return_value = _codecs_raw_unicode_escape_decode_impl(module, &data, errors);
652
653exit:
654 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300655 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300656 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300657 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300658
659 return return_value;
660}
661
662PyDoc_STRVAR(_codecs_latin_1_decode__doc__,
663"latin_1_decode($module, data, errors=None, /)\n"
664"--\n"
665"\n");
666
667#define _CODECS_LATIN_1_DECODE_METHODDEF \
668 {"latin_1_decode", (PyCFunction)_codecs_latin_1_decode, METH_VARARGS, _codecs_latin_1_decode__doc__},
669
670static PyObject *
671_codecs_latin_1_decode_impl(PyModuleDef *module, Py_buffer *data,
672 const char *errors);
673
674static PyObject *
675_codecs_latin_1_decode(PyModuleDef *module, PyObject *args)
676{
677 PyObject *return_value = NULL;
678 Py_buffer data = {NULL, NULL};
679 const char *errors = NULL;
680
681 if (!PyArg_ParseTuple(args, "y*|z:latin_1_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300682 &data, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300683 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300684 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300685 return_value = _codecs_latin_1_decode_impl(module, &data, errors);
686
687exit:
688 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300689 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300690 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300691 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300692
693 return return_value;
694}
695
696PyDoc_STRVAR(_codecs_ascii_decode__doc__,
697"ascii_decode($module, data, errors=None, /)\n"
698"--\n"
699"\n");
700
701#define _CODECS_ASCII_DECODE_METHODDEF \
702 {"ascii_decode", (PyCFunction)_codecs_ascii_decode, METH_VARARGS, _codecs_ascii_decode__doc__},
703
704static PyObject *
705_codecs_ascii_decode_impl(PyModuleDef *module, Py_buffer *data,
706 const char *errors);
707
708static PyObject *
709_codecs_ascii_decode(PyModuleDef *module, PyObject *args)
710{
711 PyObject *return_value = NULL;
712 Py_buffer data = {NULL, NULL};
713 const char *errors = NULL;
714
715 if (!PyArg_ParseTuple(args, "y*|z:ascii_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300716 &data, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300717 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300718 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300719 return_value = _codecs_ascii_decode_impl(module, &data, errors);
720
721exit:
722 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300723 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300724 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300725 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300726
727 return return_value;
728}
729
730PyDoc_STRVAR(_codecs_charmap_decode__doc__,
731"charmap_decode($module, data, errors=None, mapping=None, /)\n"
732"--\n"
733"\n");
734
735#define _CODECS_CHARMAP_DECODE_METHODDEF \
736 {"charmap_decode", (PyCFunction)_codecs_charmap_decode, METH_VARARGS, _codecs_charmap_decode__doc__},
737
738static PyObject *
739_codecs_charmap_decode_impl(PyModuleDef *module, Py_buffer *data,
740 const char *errors, PyObject *mapping);
741
742static PyObject *
743_codecs_charmap_decode(PyModuleDef *module, PyObject *args)
744{
745 PyObject *return_value = NULL;
746 Py_buffer data = {NULL, NULL};
747 const char *errors = NULL;
748 PyObject *mapping = NULL;
749
750 if (!PyArg_ParseTuple(args, "y*|zO:charmap_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300751 &data, &errors, &mapping)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300752 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300753 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300754 return_value = _codecs_charmap_decode_impl(module, &data, errors, mapping);
755
756exit:
757 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300758 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300759 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300760 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300761
762 return return_value;
763}
764
765#if defined(HAVE_MBCS)
766
767PyDoc_STRVAR(_codecs_mbcs_decode__doc__,
768"mbcs_decode($module, data, errors=None, final=False, /)\n"
769"--\n"
770"\n");
771
772#define _CODECS_MBCS_DECODE_METHODDEF \
773 {"mbcs_decode", (PyCFunction)_codecs_mbcs_decode, METH_VARARGS, _codecs_mbcs_decode__doc__},
774
775static PyObject *
776_codecs_mbcs_decode_impl(PyModuleDef *module, Py_buffer *data,
777 const char *errors, int final);
778
779static PyObject *
780_codecs_mbcs_decode(PyModuleDef *module, PyObject *args)
781{
782 PyObject *return_value = NULL;
783 Py_buffer data = {NULL, NULL};
784 const char *errors = NULL;
785 int final = 0;
786
787 if (!PyArg_ParseTuple(args, "y*|zi:mbcs_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300788 &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300789 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300790 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300791 return_value = _codecs_mbcs_decode_impl(module, &data, errors, final);
792
793exit:
794 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300795 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300796 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300797 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300798
799 return return_value;
800}
801
802#endif /* defined(HAVE_MBCS) */
803
804#if defined(HAVE_MBCS)
805
806PyDoc_STRVAR(_codecs_code_page_decode__doc__,
807"code_page_decode($module, codepage, data, errors=None, final=False, /)\n"
808"--\n"
809"\n");
810
811#define _CODECS_CODE_PAGE_DECODE_METHODDEF \
812 {"code_page_decode", (PyCFunction)_codecs_code_page_decode, METH_VARARGS, _codecs_code_page_decode__doc__},
813
814static PyObject *
815_codecs_code_page_decode_impl(PyModuleDef *module, int codepage,
816 Py_buffer *data, const char *errors, int final);
817
818static PyObject *
819_codecs_code_page_decode(PyModuleDef *module, PyObject *args)
820{
821 PyObject *return_value = NULL;
822 int codepage;
823 Py_buffer data = {NULL, NULL};
824 const char *errors = NULL;
825 int final = 0;
826
827 if (!PyArg_ParseTuple(args, "iy*|zi:code_page_decode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300828 &codepage, &data, &errors, &final)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300829 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300830 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300831 return_value = _codecs_code_page_decode_impl(module, codepage, &data, errors, final);
832
833exit:
834 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300835 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300836 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300837 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300838
839 return return_value;
840}
841
842#endif /* defined(HAVE_MBCS) */
843
844PyDoc_STRVAR(_codecs_readbuffer_encode__doc__,
845"readbuffer_encode($module, data, errors=None, /)\n"
846"--\n"
847"\n");
848
849#define _CODECS_READBUFFER_ENCODE_METHODDEF \
850 {"readbuffer_encode", (PyCFunction)_codecs_readbuffer_encode, METH_VARARGS, _codecs_readbuffer_encode__doc__},
851
852static PyObject *
853_codecs_readbuffer_encode_impl(PyModuleDef *module, Py_buffer *data,
854 const char *errors);
855
856static PyObject *
857_codecs_readbuffer_encode(PyModuleDef *module, PyObject *args)
858{
859 PyObject *return_value = NULL;
860 Py_buffer data = {NULL, NULL};
861 const char *errors = NULL;
862
863 if (!PyArg_ParseTuple(args, "s*|z:readbuffer_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300864 &data, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300865 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300866 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300867 return_value = _codecs_readbuffer_encode_impl(module, &data, errors);
868
869exit:
870 /* Cleanup for data */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300871 if (data.obj) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300872 PyBuffer_Release(&data);
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300873 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300874
875 return return_value;
876}
877
878PyDoc_STRVAR(_codecs_unicode_internal_encode__doc__,
879"unicode_internal_encode($module, obj, errors=None, /)\n"
880"--\n"
881"\n");
882
883#define _CODECS_UNICODE_INTERNAL_ENCODE_METHODDEF \
884 {"unicode_internal_encode", (PyCFunction)_codecs_unicode_internal_encode, METH_VARARGS, _codecs_unicode_internal_encode__doc__},
885
886static PyObject *
887_codecs_unicode_internal_encode_impl(PyModuleDef *module, PyObject *obj,
888 const char *errors);
889
890static PyObject *
891_codecs_unicode_internal_encode(PyModuleDef *module, PyObject *args)
892{
893 PyObject *return_value = NULL;
894 PyObject *obj;
895 const char *errors = NULL;
896
897 if (!PyArg_ParseTuple(args, "O|z:unicode_internal_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300898 &obj, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300899 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300900 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300901 return_value = _codecs_unicode_internal_encode_impl(module, obj, errors);
902
903exit:
904 return return_value;
905}
906
907PyDoc_STRVAR(_codecs_utf_7_encode__doc__,
908"utf_7_encode($module, str, errors=None, /)\n"
909"--\n"
910"\n");
911
912#define _CODECS_UTF_7_ENCODE_METHODDEF \
913 {"utf_7_encode", (PyCFunction)_codecs_utf_7_encode, METH_VARARGS, _codecs_utf_7_encode__doc__},
914
915static PyObject *
916_codecs_utf_7_encode_impl(PyModuleDef *module, PyObject *str,
917 const char *errors);
918
919static PyObject *
920_codecs_utf_7_encode(PyModuleDef *module, PyObject *args)
921{
922 PyObject *return_value = NULL;
923 PyObject *str;
924 const char *errors = NULL;
925
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +0300926 if (!PyArg_ParseTuple(args, "U|z:utf_7_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300927 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300928 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300929 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300930 return_value = _codecs_utf_7_encode_impl(module, str, errors);
931
932exit:
933 return return_value;
934}
935
936PyDoc_STRVAR(_codecs_utf_8_encode__doc__,
937"utf_8_encode($module, str, errors=None, /)\n"
938"--\n"
939"\n");
940
941#define _CODECS_UTF_8_ENCODE_METHODDEF \
942 {"utf_8_encode", (PyCFunction)_codecs_utf_8_encode, METH_VARARGS, _codecs_utf_8_encode__doc__},
943
944static PyObject *
945_codecs_utf_8_encode_impl(PyModuleDef *module, PyObject *str,
946 const char *errors);
947
948static PyObject *
949_codecs_utf_8_encode(PyModuleDef *module, PyObject *args)
950{
951 PyObject *return_value = NULL;
952 PyObject *str;
953 const char *errors = NULL;
954
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +0300955 if (!PyArg_ParseTuple(args, "U|z:utf_8_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300956 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300957 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300958 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300959 return_value = _codecs_utf_8_encode_impl(module, str, errors);
960
961exit:
962 return return_value;
963}
964
965PyDoc_STRVAR(_codecs_utf_16_encode__doc__,
966"utf_16_encode($module, str, errors=None, byteorder=0, /)\n"
967"--\n"
968"\n");
969
970#define _CODECS_UTF_16_ENCODE_METHODDEF \
971 {"utf_16_encode", (PyCFunction)_codecs_utf_16_encode, METH_VARARGS, _codecs_utf_16_encode__doc__},
972
973static PyObject *
974_codecs_utf_16_encode_impl(PyModuleDef *module, PyObject *str,
975 const char *errors, int byteorder);
976
977static PyObject *
978_codecs_utf_16_encode(PyModuleDef *module, PyObject *args)
979{
980 PyObject *return_value = NULL;
981 PyObject *str;
982 const char *errors = NULL;
983 int byteorder = 0;
984
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +0300985 if (!PyArg_ParseTuple(args, "U|zi:utf_16_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300986 &str, &errors, &byteorder)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300987 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +0300988 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +0300989 return_value = _codecs_utf_16_encode_impl(module, str, errors, byteorder);
990
991exit:
992 return return_value;
993}
994
995PyDoc_STRVAR(_codecs_utf_16_le_encode__doc__,
996"utf_16_le_encode($module, str, errors=None, /)\n"
997"--\n"
998"\n");
999
1000#define _CODECS_UTF_16_LE_ENCODE_METHODDEF \
1001 {"utf_16_le_encode", (PyCFunction)_codecs_utf_16_le_encode, METH_VARARGS, _codecs_utf_16_le_encode__doc__},
1002
1003static PyObject *
1004_codecs_utf_16_le_encode_impl(PyModuleDef *module, PyObject *str,
1005 const char *errors);
1006
1007static PyObject *
1008_codecs_utf_16_le_encode(PyModuleDef *module, PyObject *args)
1009{
1010 PyObject *return_value = NULL;
1011 PyObject *str;
1012 const char *errors = NULL;
1013
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001014 if (!PyArg_ParseTuple(args, "U|z:utf_16_le_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001015 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001016 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001017 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001018 return_value = _codecs_utf_16_le_encode_impl(module, str, errors);
1019
1020exit:
1021 return return_value;
1022}
1023
1024PyDoc_STRVAR(_codecs_utf_16_be_encode__doc__,
1025"utf_16_be_encode($module, str, errors=None, /)\n"
1026"--\n"
1027"\n");
1028
1029#define _CODECS_UTF_16_BE_ENCODE_METHODDEF \
1030 {"utf_16_be_encode", (PyCFunction)_codecs_utf_16_be_encode, METH_VARARGS, _codecs_utf_16_be_encode__doc__},
1031
1032static PyObject *
1033_codecs_utf_16_be_encode_impl(PyModuleDef *module, PyObject *str,
1034 const char *errors);
1035
1036static PyObject *
1037_codecs_utf_16_be_encode(PyModuleDef *module, PyObject *args)
1038{
1039 PyObject *return_value = NULL;
1040 PyObject *str;
1041 const char *errors = NULL;
1042
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001043 if (!PyArg_ParseTuple(args, "U|z:utf_16_be_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001044 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001045 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001046 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001047 return_value = _codecs_utf_16_be_encode_impl(module, str, errors);
1048
1049exit:
1050 return return_value;
1051}
1052
1053PyDoc_STRVAR(_codecs_utf_32_encode__doc__,
1054"utf_32_encode($module, str, errors=None, byteorder=0, /)\n"
1055"--\n"
1056"\n");
1057
1058#define _CODECS_UTF_32_ENCODE_METHODDEF \
1059 {"utf_32_encode", (PyCFunction)_codecs_utf_32_encode, METH_VARARGS, _codecs_utf_32_encode__doc__},
1060
1061static PyObject *
1062_codecs_utf_32_encode_impl(PyModuleDef *module, PyObject *str,
1063 const char *errors, int byteorder);
1064
1065static PyObject *
1066_codecs_utf_32_encode(PyModuleDef *module, PyObject *args)
1067{
1068 PyObject *return_value = NULL;
1069 PyObject *str;
1070 const char *errors = NULL;
1071 int byteorder = 0;
1072
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001073 if (!PyArg_ParseTuple(args, "U|zi:utf_32_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001074 &str, &errors, &byteorder)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001075 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001076 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001077 return_value = _codecs_utf_32_encode_impl(module, str, errors, byteorder);
1078
1079exit:
1080 return return_value;
1081}
1082
1083PyDoc_STRVAR(_codecs_utf_32_le_encode__doc__,
1084"utf_32_le_encode($module, str, errors=None, /)\n"
1085"--\n"
1086"\n");
1087
1088#define _CODECS_UTF_32_LE_ENCODE_METHODDEF \
1089 {"utf_32_le_encode", (PyCFunction)_codecs_utf_32_le_encode, METH_VARARGS, _codecs_utf_32_le_encode__doc__},
1090
1091static PyObject *
1092_codecs_utf_32_le_encode_impl(PyModuleDef *module, PyObject *str,
1093 const char *errors);
1094
1095static PyObject *
1096_codecs_utf_32_le_encode(PyModuleDef *module, PyObject *args)
1097{
1098 PyObject *return_value = NULL;
1099 PyObject *str;
1100 const char *errors = NULL;
1101
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001102 if (!PyArg_ParseTuple(args, "U|z:utf_32_le_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001103 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001104 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001105 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001106 return_value = _codecs_utf_32_le_encode_impl(module, str, errors);
1107
1108exit:
1109 return return_value;
1110}
1111
1112PyDoc_STRVAR(_codecs_utf_32_be_encode__doc__,
1113"utf_32_be_encode($module, str, errors=None, /)\n"
1114"--\n"
1115"\n");
1116
1117#define _CODECS_UTF_32_BE_ENCODE_METHODDEF \
1118 {"utf_32_be_encode", (PyCFunction)_codecs_utf_32_be_encode, METH_VARARGS, _codecs_utf_32_be_encode__doc__},
1119
1120static PyObject *
1121_codecs_utf_32_be_encode_impl(PyModuleDef *module, PyObject *str,
1122 const char *errors);
1123
1124static PyObject *
1125_codecs_utf_32_be_encode(PyModuleDef *module, PyObject *args)
1126{
1127 PyObject *return_value = NULL;
1128 PyObject *str;
1129 const char *errors = NULL;
1130
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001131 if (!PyArg_ParseTuple(args, "U|z:utf_32_be_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001132 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001133 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001134 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001135 return_value = _codecs_utf_32_be_encode_impl(module, str, errors);
1136
1137exit:
1138 return return_value;
1139}
1140
1141PyDoc_STRVAR(_codecs_unicode_escape_encode__doc__,
1142"unicode_escape_encode($module, str, errors=None, /)\n"
1143"--\n"
1144"\n");
1145
1146#define _CODECS_UNICODE_ESCAPE_ENCODE_METHODDEF \
1147 {"unicode_escape_encode", (PyCFunction)_codecs_unicode_escape_encode, METH_VARARGS, _codecs_unicode_escape_encode__doc__},
1148
1149static PyObject *
1150_codecs_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
1151 const char *errors);
1152
1153static PyObject *
1154_codecs_unicode_escape_encode(PyModuleDef *module, PyObject *args)
1155{
1156 PyObject *return_value = NULL;
1157 PyObject *str;
1158 const char *errors = NULL;
1159
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001160 if (!PyArg_ParseTuple(args, "U|z:unicode_escape_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001161 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001162 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001163 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001164 return_value = _codecs_unicode_escape_encode_impl(module, str, errors);
1165
1166exit:
1167 return return_value;
1168}
1169
1170PyDoc_STRVAR(_codecs_raw_unicode_escape_encode__doc__,
1171"raw_unicode_escape_encode($module, str, errors=None, /)\n"
1172"--\n"
1173"\n");
1174
1175#define _CODECS_RAW_UNICODE_ESCAPE_ENCODE_METHODDEF \
1176 {"raw_unicode_escape_encode", (PyCFunction)_codecs_raw_unicode_escape_encode, METH_VARARGS, _codecs_raw_unicode_escape_encode__doc__},
1177
1178static PyObject *
1179_codecs_raw_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
1180 const char *errors);
1181
1182static PyObject *
1183_codecs_raw_unicode_escape_encode(PyModuleDef *module, PyObject *args)
1184{
1185 PyObject *return_value = NULL;
1186 PyObject *str;
1187 const char *errors = NULL;
1188
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001189 if (!PyArg_ParseTuple(args, "U|z:raw_unicode_escape_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001190 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001191 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001192 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001193 return_value = _codecs_raw_unicode_escape_encode_impl(module, str, errors);
1194
1195exit:
1196 return return_value;
1197}
1198
1199PyDoc_STRVAR(_codecs_latin_1_encode__doc__,
1200"latin_1_encode($module, str, errors=None, /)\n"
1201"--\n"
1202"\n");
1203
1204#define _CODECS_LATIN_1_ENCODE_METHODDEF \
1205 {"latin_1_encode", (PyCFunction)_codecs_latin_1_encode, METH_VARARGS, _codecs_latin_1_encode__doc__},
1206
1207static PyObject *
1208_codecs_latin_1_encode_impl(PyModuleDef *module, PyObject *str,
1209 const char *errors);
1210
1211static PyObject *
1212_codecs_latin_1_encode(PyModuleDef *module, PyObject *args)
1213{
1214 PyObject *return_value = NULL;
1215 PyObject *str;
1216 const char *errors = NULL;
1217
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001218 if (!PyArg_ParseTuple(args, "U|z:latin_1_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001219 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001220 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001221 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001222 return_value = _codecs_latin_1_encode_impl(module, str, errors);
1223
1224exit:
1225 return return_value;
1226}
1227
1228PyDoc_STRVAR(_codecs_ascii_encode__doc__,
1229"ascii_encode($module, str, errors=None, /)\n"
1230"--\n"
1231"\n");
1232
1233#define _CODECS_ASCII_ENCODE_METHODDEF \
1234 {"ascii_encode", (PyCFunction)_codecs_ascii_encode, METH_VARARGS, _codecs_ascii_encode__doc__},
1235
1236static PyObject *
1237_codecs_ascii_encode_impl(PyModuleDef *module, PyObject *str,
1238 const char *errors);
1239
1240static PyObject *
1241_codecs_ascii_encode(PyModuleDef *module, PyObject *args)
1242{
1243 PyObject *return_value = NULL;
1244 PyObject *str;
1245 const char *errors = NULL;
1246
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001247 if (!PyArg_ParseTuple(args, "U|z:ascii_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001248 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001249 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001250 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001251 return_value = _codecs_ascii_encode_impl(module, str, errors);
1252
1253exit:
1254 return return_value;
1255}
1256
1257PyDoc_STRVAR(_codecs_charmap_encode__doc__,
1258"charmap_encode($module, str, errors=None, mapping=None, /)\n"
1259"--\n"
1260"\n");
1261
1262#define _CODECS_CHARMAP_ENCODE_METHODDEF \
1263 {"charmap_encode", (PyCFunction)_codecs_charmap_encode, METH_VARARGS, _codecs_charmap_encode__doc__},
1264
1265static PyObject *
1266_codecs_charmap_encode_impl(PyModuleDef *module, PyObject *str,
1267 const char *errors, PyObject *mapping);
1268
1269static PyObject *
1270_codecs_charmap_encode(PyModuleDef *module, PyObject *args)
1271{
1272 PyObject *return_value = NULL;
1273 PyObject *str;
1274 const char *errors = NULL;
1275 PyObject *mapping = NULL;
1276
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001277 if (!PyArg_ParseTuple(args, "U|zO:charmap_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001278 &str, &errors, &mapping)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001279 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001280 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001281 return_value = _codecs_charmap_encode_impl(module, str, errors, mapping);
1282
1283exit:
1284 return return_value;
1285}
1286
1287PyDoc_STRVAR(_codecs_charmap_build__doc__,
1288"charmap_build($module, map, /)\n"
1289"--\n"
1290"\n");
1291
1292#define _CODECS_CHARMAP_BUILD_METHODDEF \
1293 {"charmap_build", (PyCFunction)_codecs_charmap_build, METH_O, _codecs_charmap_build__doc__},
1294
1295static PyObject *
1296_codecs_charmap_build_impl(PyModuleDef *module, PyObject *map);
1297
1298static PyObject *
1299_codecs_charmap_build(PyModuleDef *module, PyObject *arg)
1300{
1301 PyObject *return_value = NULL;
1302 PyObject *map;
1303
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001304 if (!PyArg_Parse(arg, "U:charmap_build", &map)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001305 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001306 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001307 return_value = _codecs_charmap_build_impl(module, map);
1308
1309exit:
1310 return return_value;
1311}
1312
1313#if defined(HAVE_MBCS)
1314
1315PyDoc_STRVAR(_codecs_mbcs_encode__doc__,
1316"mbcs_encode($module, str, errors=None, /)\n"
1317"--\n"
1318"\n");
1319
1320#define _CODECS_MBCS_ENCODE_METHODDEF \
1321 {"mbcs_encode", (PyCFunction)_codecs_mbcs_encode, METH_VARARGS, _codecs_mbcs_encode__doc__},
1322
1323static PyObject *
1324_codecs_mbcs_encode_impl(PyModuleDef *module, PyObject *str,
1325 const char *errors);
1326
1327static PyObject *
1328_codecs_mbcs_encode(PyModuleDef *module, PyObject *args)
1329{
1330 PyObject *return_value = NULL;
1331 PyObject *str;
1332 const char *errors = NULL;
1333
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001334 if (!PyArg_ParseTuple(args, "U|z:mbcs_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001335 &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001336 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001337 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001338 return_value = _codecs_mbcs_encode_impl(module, str, errors);
1339
1340exit:
1341 return return_value;
1342}
1343
1344#endif /* defined(HAVE_MBCS) */
1345
1346#if defined(HAVE_MBCS)
1347
1348PyDoc_STRVAR(_codecs_code_page_encode__doc__,
1349"code_page_encode($module, code_page, str, errors=None, /)\n"
1350"--\n"
1351"\n");
1352
1353#define _CODECS_CODE_PAGE_ENCODE_METHODDEF \
1354 {"code_page_encode", (PyCFunction)_codecs_code_page_encode, METH_VARARGS, _codecs_code_page_encode__doc__},
1355
1356static PyObject *
1357_codecs_code_page_encode_impl(PyModuleDef *module, int code_page,
1358 PyObject *str, const char *errors);
1359
1360static PyObject *
1361_codecs_code_page_encode(PyModuleDef *module, PyObject *args)
1362{
1363 PyObject *return_value = NULL;
1364 int code_page;
1365 PyObject *str;
1366 const char *errors = NULL;
1367
Serhiy Storchaka2eb6b0d2016-04-14 12:30:54 +03001368 if (!PyArg_ParseTuple(args, "iU|z:code_page_encode",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001369 &code_page, &str, &errors)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001370 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001371 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001372 return_value = _codecs_code_page_encode_impl(module, code_page, str, errors);
1373
1374exit:
1375 return return_value;
1376}
1377
1378#endif /* defined(HAVE_MBCS) */
1379
1380PyDoc_STRVAR(_codecs_register_error__doc__,
1381"register_error($module, errors, handler, /)\n"
1382"--\n"
1383"\n"
1384"Register the specified error handler under the name errors.\n"
1385"\n"
1386"handler must be a callable object, that will be called with an exception\n"
1387"instance containing information about the location of the encoding/decoding\n"
1388"error and must return a (replacement, new position) tuple.");
1389
1390#define _CODECS_REGISTER_ERROR_METHODDEF \
1391 {"register_error", (PyCFunction)_codecs_register_error, METH_VARARGS, _codecs_register_error__doc__},
1392
1393static PyObject *
1394_codecs_register_error_impl(PyModuleDef *module, const char *errors,
1395 PyObject *handler);
1396
1397static PyObject *
1398_codecs_register_error(PyModuleDef *module, PyObject *args)
1399{
1400 PyObject *return_value = NULL;
1401 const char *errors;
1402 PyObject *handler;
1403
1404 if (!PyArg_ParseTuple(args, "sO:register_error",
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001405 &errors, &handler)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001406 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001407 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001408 return_value = _codecs_register_error_impl(module, errors, handler);
1409
1410exit:
1411 return return_value;
1412}
1413
1414PyDoc_STRVAR(_codecs_lookup_error__doc__,
1415"lookup_error($module, name, /)\n"
1416"--\n"
1417"\n"
1418"lookup_error(errors) -> handler\n"
1419"\n"
1420"Return the error handler for the specified error handling name or raise a\n"
1421"LookupError, if no handler exists under this name.");
1422
1423#define _CODECS_LOOKUP_ERROR_METHODDEF \
1424 {"lookup_error", (PyCFunction)_codecs_lookup_error, METH_O, _codecs_lookup_error__doc__},
1425
1426static PyObject *
1427_codecs_lookup_error_impl(PyModuleDef *module, const char *name);
1428
1429static PyObject *
1430_codecs_lookup_error(PyModuleDef *module, PyObject *arg)
1431{
1432 PyObject *return_value = NULL;
1433 const char *name;
1434
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001435 if (!PyArg_Parse(arg, "s:lookup_error", &name)) {
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001436 goto exit;
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001437 }
Serhiy Storchaka0c59ff62015-05-12 13:15:57 +03001438 return_value = _codecs_lookup_error_impl(module, name);
1439
1440exit:
1441 return return_value;
1442}
1443
1444#ifndef _CODECS_MBCS_DECODE_METHODDEF
1445 #define _CODECS_MBCS_DECODE_METHODDEF
1446#endif /* !defined(_CODECS_MBCS_DECODE_METHODDEF) */
1447
1448#ifndef _CODECS_CODE_PAGE_DECODE_METHODDEF
1449 #define _CODECS_CODE_PAGE_DECODE_METHODDEF
1450#endif /* !defined(_CODECS_CODE_PAGE_DECODE_METHODDEF) */
1451
1452#ifndef _CODECS_MBCS_ENCODE_METHODDEF
1453 #define _CODECS_MBCS_ENCODE_METHODDEF
1454#endif /* !defined(_CODECS_MBCS_ENCODE_METHODDEF) */
1455
1456#ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
1457 #define _CODECS_CODE_PAGE_ENCODE_METHODDEF
1458#endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
Serhiy Storchaka5dee6552016-06-09 16:16:06 +03001459/*[clinic end generated code: output=120320fe2ac32085 input=a9049054013a1b77]*/