17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_compress__doc__, 67db96d56Sopenharmony_ci"compress($module, data, /, level=Z_DEFAULT_COMPRESSION, wbits=MAX_WBITS)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Returns a bytes object containing compressed data.\n" 107db96d56Sopenharmony_ci"\n" 117db96d56Sopenharmony_ci" data\n" 127db96d56Sopenharmony_ci" Binary data to be compressed.\n" 137db96d56Sopenharmony_ci" level\n" 147db96d56Sopenharmony_ci" Compression level, in 0-9 or -1.\n" 157db96d56Sopenharmony_ci" wbits\n" 167db96d56Sopenharmony_ci" The window buffer size and container format."); 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ci#define ZLIB_COMPRESS_METHODDEF \ 197db96d56Sopenharmony_ci {"compress", _PyCFunction_CAST(zlib_compress), METH_FASTCALL|METH_KEYWORDS, zlib_compress__doc__}, 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_cistatic PyObject * 227db96d56Sopenharmony_cizlib_compress_impl(PyObject *module, Py_buffer *data, int level, int wbits); 237db96d56Sopenharmony_ci 247db96d56Sopenharmony_cistatic PyObject * 257db96d56Sopenharmony_cizlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 267db96d56Sopenharmony_ci{ 277db96d56Sopenharmony_ci PyObject *return_value = NULL; 287db96d56Sopenharmony_ci static const char * const _keywords[] = {"", "level", "wbits", NULL}; 297db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; 307db96d56Sopenharmony_ci PyObject *argsbuf[3]; 317db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 327db96d56Sopenharmony_ci Py_buffer data = {NULL, NULL}; 337db96d56Sopenharmony_ci int level = Z_DEFAULT_COMPRESSION; 347db96d56Sopenharmony_ci int wbits = MAX_WBITS; 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 377db96d56Sopenharmony_ci if (!args) { 387db96d56Sopenharmony_ci goto exit; 397db96d56Sopenharmony_ci } 407db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) { 417db96d56Sopenharmony_ci goto exit; 427db96d56Sopenharmony_ci } 437db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&data, 'C')) { 447db96d56Sopenharmony_ci _PyArg_BadArgument("compress", "argument 1", "contiguous buffer", args[0]); 457db96d56Sopenharmony_ci goto exit; 467db96d56Sopenharmony_ci } 477db96d56Sopenharmony_ci if (!noptargs) { 487db96d56Sopenharmony_ci goto skip_optional_pos; 497db96d56Sopenharmony_ci } 507db96d56Sopenharmony_ci if (args[1]) { 517db96d56Sopenharmony_ci level = _PyLong_AsInt(args[1]); 527db96d56Sopenharmony_ci if (level == -1 && PyErr_Occurred()) { 537db96d56Sopenharmony_ci goto exit; 547db96d56Sopenharmony_ci } 557db96d56Sopenharmony_ci if (!--noptargs) { 567db96d56Sopenharmony_ci goto skip_optional_pos; 577db96d56Sopenharmony_ci } 587db96d56Sopenharmony_ci } 597db96d56Sopenharmony_ci wbits = _PyLong_AsInt(args[2]); 607db96d56Sopenharmony_ci if (wbits == -1 && PyErr_Occurred()) { 617db96d56Sopenharmony_ci goto exit; 627db96d56Sopenharmony_ci } 637db96d56Sopenharmony_ciskip_optional_pos: 647db96d56Sopenharmony_ci return_value = zlib_compress_impl(module, &data, level, wbits); 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ciexit: 677db96d56Sopenharmony_ci /* Cleanup for data */ 687db96d56Sopenharmony_ci if (data.obj) { 697db96d56Sopenharmony_ci PyBuffer_Release(&data); 707db96d56Sopenharmony_ci } 717db96d56Sopenharmony_ci 727db96d56Sopenharmony_ci return return_value; 737db96d56Sopenharmony_ci} 747db96d56Sopenharmony_ci 757db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_decompress__doc__, 767db96d56Sopenharmony_ci"decompress($module, data, /, wbits=MAX_WBITS, bufsize=DEF_BUF_SIZE)\n" 777db96d56Sopenharmony_ci"--\n" 787db96d56Sopenharmony_ci"\n" 797db96d56Sopenharmony_ci"Returns a bytes object containing the uncompressed data.\n" 807db96d56Sopenharmony_ci"\n" 817db96d56Sopenharmony_ci" data\n" 827db96d56Sopenharmony_ci" Compressed data.\n" 837db96d56Sopenharmony_ci" wbits\n" 847db96d56Sopenharmony_ci" The window buffer size and container format.\n" 857db96d56Sopenharmony_ci" bufsize\n" 867db96d56Sopenharmony_ci" The initial output buffer size."); 877db96d56Sopenharmony_ci 887db96d56Sopenharmony_ci#define ZLIB_DECOMPRESS_METHODDEF \ 897db96d56Sopenharmony_ci {"decompress", _PyCFunction_CAST(zlib_decompress), METH_FASTCALL|METH_KEYWORDS, zlib_decompress__doc__}, 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_cistatic PyObject * 927db96d56Sopenharmony_cizlib_decompress_impl(PyObject *module, Py_buffer *data, int wbits, 937db96d56Sopenharmony_ci Py_ssize_t bufsize); 947db96d56Sopenharmony_ci 957db96d56Sopenharmony_cistatic PyObject * 967db96d56Sopenharmony_cizlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 977db96d56Sopenharmony_ci{ 987db96d56Sopenharmony_ci PyObject *return_value = NULL; 997db96d56Sopenharmony_ci static const char * const _keywords[] = {"", "wbits", "bufsize", NULL}; 1007db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; 1017db96d56Sopenharmony_ci PyObject *argsbuf[3]; 1027db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 1037db96d56Sopenharmony_ci Py_buffer data = {NULL, NULL}; 1047db96d56Sopenharmony_ci int wbits = MAX_WBITS; 1057db96d56Sopenharmony_ci Py_ssize_t bufsize = DEF_BUF_SIZE; 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 1087db96d56Sopenharmony_ci if (!args) { 1097db96d56Sopenharmony_ci goto exit; 1107db96d56Sopenharmony_ci } 1117db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) { 1127db96d56Sopenharmony_ci goto exit; 1137db96d56Sopenharmony_ci } 1147db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&data, 'C')) { 1157db96d56Sopenharmony_ci _PyArg_BadArgument("decompress", "argument 1", "contiguous buffer", args[0]); 1167db96d56Sopenharmony_ci goto exit; 1177db96d56Sopenharmony_ci } 1187db96d56Sopenharmony_ci if (!noptargs) { 1197db96d56Sopenharmony_ci goto skip_optional_pos; 1207db96d56Sopenharmony_ci } 1217db96d56Sopenharmony_ci if (args[1]) { 1227db96d56Sopenharmony_ci wbits = _PyLong_AsInt(args[1]); 1237db96d56Sopenharmony_ci if (wbits == -1 && PyErr_Occurred()) { 1247db96d56Sopenharmony_ci goto exit; 1257db96d56Sopenharmony_ci } 1267db96d56Sopenharmony_ci if (!--noptargs) { 1277db96d56Sopenharmony_ci goto skip_optional_pos; 1287db96d56Sopenharmony_ci } 1297db96d56Sopenharmony_ci } 1307db96d56Sopenharmony_ci { 1317db96d56Sopenharmony_ci Py_ssize_t ival = -1; 1327db96d56Sopenharmony_ci PyObject *iobj = _PyNumber_Index(args[2]); 1337db96d56Sopenharmony_ci if (iobj != NULL) { 1347db96d56Sopenharmony_ci ival = PyLong_AsSsize_t(iobj); 1357db96d56Sopenharmony_ci Py_DECREF(iobj); 1367db96d56Sopenharmony_ci } 1377db96d56Sopenharmony_ci if (ival == -1 && PyErr_Occurred()) { 1387db96d56Sopenharmony_ci goto exit; 1397db96d56Sopenharmony_ci } 1407db96d56Sopenharmony_ci bufsize = ival; 1417db96d56Sopenharmony_ci } 1427db96d56Sopenharmony_ciskip_optional_pos: 1437db96d56Sopenharmony_ci return_value = zlib_decompress_impl(module, &data, wbits, bufsize); 1447db96d56Sopenharmony_ci 1457db96d56Sopenharmony_ciexit: 1467db96d56Sopenharmony_ci /* Cleanup for data */ 1477db96d56Sopenharmony_ci if (data.obj) { 1487db96d56Sopenharmony_ci PyBuffer_Release(&data); 1497db96d56Sopenharmony_ci } 1507db96d56Sopenharmony_ci 1517db96d56Sopenharmony_ci return return_value; 1527db96d56Sopenharmony_ci} 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_compressobj__doc__, 1557db96d56Sopenharmony_ci"compressobj($module, /, level=Z_DEFAULT_COMPRESSION, method=DEFLATED,\n" 1567db96d56Sopenharmony_ci" wbits=MAX_WBITS, memLevel=DEF_MEM_LEVEL,\n" 1577db96d56Sopenharmony_ci" strategy=Z_DEFAULT_STRATEGY, zdict=None)\n" 1587db96d56Sopenharmony_ci"--\n" 1597db96d56Sopenharmony_ci"\n" 1607db96d56Sopenharmony_ci"Return a compressor object.\n" 1617db96d56Sopenharmony_ci"\n" 1627db96d56Sopenharmony_ci" level\n" 1637db96d56Sopenharmony_ci" The compression level (an integer in the range 0-9 or -1; default is\n" 1647db96d56Sopenharmony_ci" currently equivalent to 6). Higher compression levels are slower,\n" 1657db96d56Sopenharmony_ci" but produce smaller results.\n" 1667db96d56Sopenharmony_ci" method\n" 1677db96d56Sopenharmony_ci" The compression algorithm. If given, this must be DEFLATED.\n" 1687db96d56Sopenharmony_ci" wbits\n" 1697db96d56Sopenharmony_ci" +9 to +15: The base-two logarithm of the window size. Include a zlib\n" 1707db96d56Sopenharmony_ci" container.\n" 1717db96d56Sopenharmony_ci" -9 to -15: Generate a raw stream.\n" 1727db96d56Sopenharmony_ci" +25 to +31: Include a gzip container.\n" 1737db96d56Sopenharmony_ci" memLevel\n" 1747db96d56Sopenharmony_ci" Controls the amount of memory used for internal compression state.\n" 1757db96d56Sopenharmony_ci" Valid values range from 1 to 9. Higher values result in higher memory\n" 1767db96d56Sopenharmony_ci" usage, faster compression, and smaller output.\n" 1777db96d56Sopenharmony_ci" strategy\n" 1787db96d56Sopenharmony_ci" Used to tune the compression algorithm. Possible values are\n" 1797db96d56Sopenharmony_ci" Z_DEFAULT_STRATEGY, Z_FILTERED, and Z_HUFFMAN_ONLY.\n" 1807db96d56Sopenharmony_ci" zdict\n" 1817db96d56Sopenharmony_ci" The predefined compression dictionary - a sequence of bytes\n" 1827db96d56Sopenharmony_ci" containing subsequences that are likely to occur in the input data."); 1837db96d56Sopenharmony_ci 1847db96d56Sopenharmony_ci#define ZLIB_COMPRESSOBJ_METHODDEF \ 1857db96d56Sopenharmony_ci {"compressobj", _PyCFunction_CAST(zlib_compressobj), METH_FASTCALL|METH_KEYWORDS, zlib_compressobj__doc__}, 1867db96d56Sopenharmony_ci 1877db96d56Sopenharmony_cistatic PyObject * 1887db96d56Sopenharmony_cizlib_compressobj_impl(PyObject *module, int level, int method, int wbits, 1897db96d56Sopenharmony_ci int memLevel, int strategy, Py_buffer *zdict); 1907db96d56Sopenharmony_ci 1917db96d56Sopenharmony_cistatic PyObject * 1927db96d56Sopenharmony_cizlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 1937db96d56Sopenharmony_ci{ 1947db96d56Sopenharmony_ci PyObject *return_value = NULL; 1957db96d56Sopenharmony_ci static const char * const _keywords[] = {"level", "method", "wbits", "memLevel", "strategy", "zdict", NULL}; 1967db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "compressobj", 0}; 1977db96d56Sopenharmony_ci PyObject *argsbuf[6]; 1987db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; 1997db96d56Sopenharmony_ci int level = Z_DEFAULT_COMPRESSION; 2007db96d56Sopenharmony_ci int method = DEFLATED; 2017db96d56Sopenharmony_ci int wbits = MAX_WBITS; 2027db96d56Sopenharmony_ci int memLevel = DEF_MEM_LEVEL; 2037db96d56Sopenharmony_ci int strategy = Z_DEFAULT_STRATEGY; 2047db96d56Sopenharmony_ci Py_buffer zdict = {NULL, NULL}; 2057db96d56Sopenharmony_ci 2067db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 6, 0, argsbuf); 2077db96d56Sopenharmony_ci if (!args) { 2087db96d56Sopenharmony_ci goto exit; 2097db96d56Sopenharmony_ci } 2107db96d56Sopenharmony_ci if (!noptargs) { 2117db96d56Sopenharmony_ci goto skip_optional_pos; 2127db96d56Sopenharmony_ci } 2137db96d56Sopenharmony_ci if (args[0]) { 2147db96d56Sopenharmony_ci level = _PyLong_AsInt(args[0]); 2157db96d56Sopenharmony_ci if (level == -1 && PyErr_Occurred()) { 2167db96d56Sopenharmony_ci goto exit; 2177db96d56Sopenharmony_ci } 2187db96d56Sopenharmony_ci if (!--noptargs) { 2197db96d56Sopenharmony_ci goto skip_optional_pos; 2207db96d56Sopenharmony_ci } 2217db96d56Sopenharmony_ci } 2227db96d56Sopenharmony_ci if (args[1]) { 2237db96d56Sopenharmony_ci method = _PyLong_AsInt(args[1]); 2247db96d56Sopenharmony_ci if (method == -1 && PyErr_Occurred()) { 2257db96d56Sopenharmony_ci goto exit; 2267db96d56Sopenharmony_ci } 2277db96d56Sopenharmony_ci if (!--noptargs) { 2287db96d56Sopenharmony_ci goto skip_optional_pos; 2297db96d56Sopenharmony_ci } 2307db96d56Sopenharmony_ci } 2317db96d56Sopenharmony_ci if (args[2]) { 2327db96d56Sopenharmony_ci wbits = _PyLong_AsInt(args[2]); 2337db96d56Sopenharmony_ci if (wbits == -1 && PyErr_Occurred()) { 2347db96d56Sopenharmony_ci goto exit; 2357db96d56Sopenharmony_ci } 2367db96d56Sopenharmony_ci if (!--noptargs) { 2377db96d56Sopenharmony_ci goto skip_optional_pos; 2387db96d56Sopenharmony_ci } 2397db96d56Sopenharmony_ci } 2407db96d56Sopenharmony_ci if (args[3]) { 2417db96d56Sopenharmony_ci memLevel = _PyLong_AsInt(args[3]); 2427db96d56Sopenharmony_ci if (memLevel == -1 && PyErr_Occurred()) { 2437db96d56Sopenharmony_ci goto exit; 2447db96d56Sopenharmony_ci } 2457db96d56Sopenharmony_ci if (!--noptargs) { 2467db96d56Sopenharmony_ci goto skip_optional_pos; 2477db96d56Sopenharmony_ci } 2487db96d56Sopenharmony_ci } 2497db96d56Sopenharmony_ci if (args[4]) { 2507db96d56Sopenharmony_ci strategy = _PyLong_AsInt(args[4]); 2517db96d56Sopenharmony_ci if (strategy == -1 && PyErr_Occurred()) { 2527db96d56Sopenharmony_ci goto exit; 2537db96d56Sopenharmony_ci } 2547db96d56Sopenharmony_ci if (!--noptargs) { 2557db96d56Sopenharmony_ci goto skip_optional_pos; 2567db96d56Sopenharmony_ci } 2577db96d56Sopenharmony_ci } 2587db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[5], &zdict, PyBUF_SIMPLE) != 0) { 2597db96d56Sopenharmony_ci goto exit; 2607db96d56Sopenharmony_ci } 2617db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&zdict, 'C')) { 2627db96d56Sopenharmony_ci _PyArg_BadArgument("compressobj", "argument 'zdict'", "contiguous buffer", args[5]); 2637db96d56Sopenharmony_ci goto exit; 2647db96d56Sopenharmony_ci } 2657db96d56Sopenharmony_ciskip_optional_pos: 2667db96d56Sopenharmony_ci return_value = zlib_compressobj_impl(module, level, method, wbits, memLevel, strategy, &zdict); 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ciexit: 2697db96d56Sopenharmony_ci /* Cleanup for zdict */ 2707db96d56Sopenharmony_ci if (zdict.obj) { 2717db96d56Sopenharmony_ci PyBuffer_Release(&zdict); 2727db96d56Sopenharmony_ci } 2737db96d56Sopenharmony_ci 2747db96d56Sopenharmony_ci return return_value; 2757db96d56Sopenharmony_ci} 2767db96d56Sopenharmony_ci 2777db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_decompressobj__doc__, 2787db96d56Sopenharmony_ci"decompressobj($module, /, wbits=MAX_WBITS, zdict=b\'\')\n" 2797db96d56Sopenharmony_ci"--\n" 2807db96d56Sopenharmony_ci"\n" 2817db96d56Sopenharmony_ci"Return a decompressor object.\n" 2827db96d56Sopenharmony_ci"\n" 2837db96d56Sopenharmony_ci" wbits\n" 2847db96d56Sopenharmony_ci" The window buffer size and container format.\n" 2857db96d56Sopenharmony_ci" zdict\n" 2867db96d56Sopenharmony_ci" The predefined compression dictionary. This must be the same\n" 2877db96d56Sopenharmony_ci" dictionary as used by the compressor that produced the input data."); 2887db96d56Sopenharmony_ci 2897db96d56Sopenharmony_ci#define ZLIB_DECOMPRESSOBJ_METHODDEF \ 2907db96d56Sopenharmony_ci {"decompressobj", _PyCFunction_CAST(zlib_decompressobj), METH_FASTCALL|METH_KEYWORDS, zlib_decompressobj__doc__}, 2917db96d56Sopenharmony_ci 2927db96d56Sopenharmony_cistatic PyObject * 2937db96d56Sopenharmony_cizlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict); 2947db96d56Sopenharmony_ci 2957db96d56Sopenharmony_cistatic PyObject * 2967db96d56Sopenharmony_cizlib_decompressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 2977db96d56Sopenharmony_ci{ 2987db96d56Sopenharmony_ci PyObject *return_value = NULL; 2997db96d56Sopenharmony_ci static const char * const _keywords[] = {"wbits", "zdict", NULL}; 3007db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "decompressobj", 0}; 3017db96d56Sopenharmony_ci PyObject *argsbuf[2]; 3027db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; 3037db96d56Sopenharmony_ci int wbits = MAX_WBITS; 3047db96d56Sopenharmony_ci PyObject *zdict = NULL; 3057db96d56Sopenharmony_ci 3067db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 2, 0, argsbuf); 3077db96d56Sopenharmony_ci if (!args) { 3087db96d56Sopenharmony_ci goto exit; 3097db96d56Sopenharmony_ci } 3107db96d56Sopenharmony_ci if (!noptargs) { 3117db96d56Sopenharmony_ci goto skip_optional_pos; 3127db96d56Sopenharmony_ci } 3137db96d56Sopenharmony_ci if (args[0]) { 3147db96d56Sopenharmony_ci wbits = _PyLong_AsInt(args[0]); 3157db96d56Sopenharmony_ci if (wbits == -1 && PyErr_Occurred()) { 3167db96d56Sopenharmony_ci goto exit; 3177db96d56Sopenharmony_ci } 3187db96d56Sopenharmony_ci if (!--noptargs) { 3197db96d56Sopenharmony_ci goto skip_optional_pos; 3207db96d56Sopenharmony_ci } 3217db96d56Sopenharmony_ci } 3227db96d56Sopenharmony_ci zdict = args[1]; 3237db96d56Sopenharmony_ciskip_optional_pos: 3247db96d56Sopenharmony_ci return_value = zlib_decompressobj_impl(module, wbits, zdict); 3257db96d56Sopenharmony_ci 3267db96d56Sopenharmony_ciexit: 3277db96d56Sopenharmony_ci return return_value; 3287db96d56Sopenharmony_ci} 3297db96d56Sopenharmony_ci 3307db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Compress_compress__doc__, 3317db96d56Sopenharmony_ci"compress($self, data, /)\n" 3327db96d56Sopenharmony_ci"--\n" 3337db96d56Sopenharmony_ci"\n" 3347db96d56Sopenharmony_ci"Returns a bytes object containing compressed data.\n" 3357db96d56Sopenharmony_ci"\n" 3367db96d56Sopenharmony_ci" data\n" 3377db96d56Sopenharmony_ci" Binary data to be compressed.\n" 3387db96d56Sopenharmony_ci"\n" 3397db96d56Sopenharmony_ci"After calling this function, some of the input data may still\n" 3407db96d56Sopenharmony_ci"be stored in internal buffers for later processing.\n" 3417db96d56Sopenharmony_ci"Call the flush() method to clear these buffers."); 3427db96d56Sopenharmony_ci 3437db96d56Sopenharmony_ci#define ZLIB_COMPRESS_COMPRESS_METHODDEF \ 3447db96d56Sopenharmony_ci {"compress", _PyCFunction_CAST(zlib_Compress_compress), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Compress_compress__doc__}, 3457db96d56Sopenharmony_ci 3467db96d56Sopenharmony_cistatic PyObject * 3477db96d56Sopenharmony_cizlib_Compress_compress_impl(compobject *self, PyTypeObject *cls, 3487db96d56Sopenharmony_ci Py_buffer *data); 3497db96d56Sopenharmony_ci 3507db96d56Sopenharmony_cistatic PyObject * 3517db96d56Sopenharmony_cizlib_Compress_compress(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 3527db96d56Sopenharmony_ci{ 3537db96d56Sopenharmony_ci PyObject *return_value = NULL; 3547db96d56Sopenharmony_ci static const char * const _keywords[] = {"", NULL}; 3557db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "compress", 0}; 3567db96d56Sopenharmony_ci PyObject *argsbuf[1]; 3577db96d56Sopenharmony_ci Py_buffer data = {NULL, NULL}; 3587db96d56Sopenharmony_ci 3597db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); 3607db96d56Sopenharmony_ci if (!args) { 3617db96d56Sopenharmony_ci goto exit; 3627db96d56Sopenharmony_ci } 3637db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) { 3647db96d56Sopenharmony_ci goto exit; 3657db96d56Sopenharmony_ci } 3667db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&data, 'C')) { 3677db96d56Sopenharmony_ci _PyArg_BadArgument("compress", "argument 1", "contiguous buffer", args[0]); 3687db96d56Sopenharmony_ci goto exit; 3697db96d56Sopenharmony_ci } 3707db96d56Sopenharmony_ci return_value = zlib_Compress_compress_impl(self, cls, &data); 3717db96d56Sopenharmony_ci 3727db96d56Sopenharmony_ciexit: 3737db96d56Sopenharmony_ci /* Cleanup for data */ 3747db96d56Sopenharmony_ci if (data.obj) { 3757db96d56Sopenharmony_ci PyBuffer_Release(&data); 3767db96d56Sopenharmony_ci } 3777db96d56Sopenharmony_ci 3787db96d56Sopenharmony_ci return return_value; 3797db96d56Sopenharmony_ci} 3807db96d56Sopenharmony_ci 3817db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Decompress_decompress__doc__, 3827db96d56Sopenharmony_ci"decompress($self, data, /, max_length=0)\n" 3837db96d56Sopenharmony_ci"--\n" 3847db96d56Sopenharmony_ci"\n" 3857db96d56Sopenharmony_ci"Return a bytes object containing the decompressed version of the data.\n" 3867db96d56Sopenharmony_ci"\n" 3877db96d56Sopenharmony_ci" data\n" 3887db96d56Sopenharmony_ci" The binary data to decompress.\n" 3897db96d56Sopenharmony_ci" max_length\n" 3907db96d56Sopenharmony_ci" The maximum allowable length of the decompressed data.\n" 3917db96d56Sopenharmony_ci" Unconsumed input data will be stored in\n" 3927db96d56Sopenharmony_ci" the unconsumed_tail attribute.\n" 3937db96d56Sopenharmony_ci"\n" 3947db96d56Sopenharmony_ci"After calling this function, some of the input data may still be stored in\n" 3957db96d56Sopenharmony_ci"internal buffers for later processing.\n" 3967db96d56Sopenharmony_ci"Call the flush() method to clear these buffers."); 3977db96d56Sopenharmony_ci 3987db96d56Sopenharmony_ci#define ZLIB_DECOMPRESS_DECOMPRESS_METHODDEF \ 3997db96d56Sopenharmony_ci {"decompress", _PyCFunction_CAST(zlib_Decompress_decompress), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Decompress_decompress__doc__}, 4007db96d56Sopenharmony_ci 4017db96d56Sopenharmony_cistatic PyObject * 4027db96d56Sopenharmony_cizlib_Decompress_decompress_impl(compobject *self, PyTypeObject *cls, 4037db96d56Sopenharmony_ci Py_buffer *data, Py_ssize_t max_length); 4047db96d56Sopenharmony_ci 4057db96d56Sopenharmony_cistatic PyObject * 4067db96d56Sopenharmony_cizlib_Decompress_decompress(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 4077db96d56Sopenharmony_ci{ 4087db96d56Sopenharmony_ci PyObject *return_value = NULL; 4097db96d56Sopenharmony_ci static const char * const _keywords[] = {"", "max_length", NULL}; 4107db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "decompress", 0}; 4117db96d56Sopenharmony_ci PyObject *argsbuf[2]; 4127db96d56Sopenharmony_ci Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 4137db96d56Sopenharmony_ci Py_buffer data = {NULL, NULL}; 4147db96d56Sopenharmony_ci Py_ssize_t max_length = 0; 4157db96d56Sopenharmony_ci 4167db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf); 4177db96d56Sopenharmony_ci if (!args) { 4187db96d56Sopenharmony_ci goto exit; 4197db96d56Sopenharmony_ci } 4207db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) { 4217db96d56Sopenharmony_ci goto exit; 4227db96d56Sopenharmony_ci } 4237db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&data, 'C')) { 4247db96d56Sopenharmony_ci _PyArg_BadArgument("decompress", "argument 1", "contiguous buffer", args[0]); 4257db96d56Sopenharmony_ci goto exit; 4267db96d56Sopenharmony_ci } 4277db96d56Sopenharmony_ci if (!noptargs) { 4287db96d56Sopenharmony_ci goto skip_optional_pos; 4297db96d56Sopenharmony_ci } 4307db96d56Sopenharmony_ci { 4317db96d56Sopenharmony_ci Py_ssize_t ival = -1; 4327db96d56Sopenharmony_ci PyObject *iobj = _PyNumber_Index(args[1]); 4337db96d56Sopenharmony_ci if (iobj != NULL) { 4347db96d56Sopenharmony_ci ival = PyLong_AsSsize_t(iobj); 4357db96d56Sopenharmony_ci Py_DECREF(iobj); 4367db96d56Sopenharmony_ci } 4377db96d56Sopenharmony_ci if (ival == -1 && PyErr_Occurred()) { 4387db96d56Sopenharmony_ci goto exit; 4397db96d56Sopenharmony_ci } 4407db96d56Sopenharmony_ci max_length = ival; 4417db96d56Sopenharmony_ci } 4427db96d56Sopenharmony_ciskip_optional_pos: 4437db96d56Sopenharmony_ci return_value = zlib_Decompress_decompress_impl(self, cls, &data, max_length); 4447db96d56Sopenharmony_ci 4457db96d56Sopenharmony_ciexit: 4467db96d56Sopenharmony_ci /* Cleanup for data */ 4477db96d56Sopenharmony_ci if (data.obj) { 4487db96d56Sopenharmony_ci PyBuffer_Release(&data); 4497db96d56Sopenharmony_ci } 4507db96d56Sopenharmony_ci 4517db96d56Sopenharmony_ci return return_value; 4527db96d56Sopenharmony_ci} 4537db96d56Sopenharmony_ci 4547db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Compress_flush__doc__, 4557db96d56Sopenharmony_ci"flush($self, mode=zlib.Z_FINISH, /)\n" 4567db96d56Sopenharmony_ci"--\n" 4577db96d56Sopenharmony_ci"\n" 4587db96d56Sopenharmony_ci"Return a bytes object containing any remaining compressed data.\n" 4597db96d56Sopenharmony_ci"\n" 4607db96d56Sopenharmony_ci" mode\n" 4617db96d56Sopenharmony_ci" One of the constants Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH.\n" 4627db96d56Sopenharmony_ci" If mode == Z_FINISH, the compressor object can no longer be\n" 4637db96d56Sopenharmony_ci" used after calling the flush() method. Otherwise, more data\n" 4647db96d56Sopenharmony_ci" can still be compressed."); 4657db96d56Sopenharmony_ci 4667db96d56Sopenharmony_ci#define ZLIB_COMPRESS_FLUSH_METHODDEF \ 4677db96d56Sopenharmony_ci {"flush", _PyCFunction_CAST(zlib_Compress_flush), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Compress_flush__doc__}, 4687db96d56Sopenharmony_ci 4697db96d56Sopenharmony_cistatic PyObject * 4707db96d56Sopenharmony_cizlib_Compress_flush_impl(compobject *self, PyTypeObject *cls, int mode); 4717db96d56Sopenharmony_ci 4727db96d56Sopenharmony_cistatic PyObject * 4737db96d56Sopenharmony_cizlib_Compress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 4747db96d56Sopenharmony_ci{ 4757db96d56Sopenharmony_ci PyObject *return_value = NULL; 4767db96d56Sopenharmony_ci static const char * const _keywords[] = {"", NULL}; 4777db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0}; 4787db96d56Sopenharmony_ci PyObject *argsbuf[1]; 4797db96d56Sopenharmony_ci int mode = Z_FINISH; 4807db96d56Sopenharmony_ci 4817db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf); 4827db96d56Sopenharmony_ci if (!args) { 4837db96d56Sopenharmony_ci goto exit; 4847db96d56Sopenharmony_ci } 4857db96d56Sopenharmony_ci if (nargs < 1) { 4867db96d56Sopenharmony_ci goto skip_optional_posonly; 4877db96d56Sopenharmony_ci } 4887db96d56Sopenharmony_ci mode = _PyLong_AsInt(args[0]); 4897db96d56Sopenharmony_ci if (mode == -1 && PyErr_Occurred()) { 4907db96d56Sopenharmony_ci goto exit; 4917db96d56Sopenharmony_ci } 4927db96d56Sopenharmony_ciskip_optional_posonly: 4937db96d56Sopenharmony_ci return_value = zlib_Compress_flush_impl(self, cls, mode); 4947db96d56Sopenharmony_ci 4957db96d56Sopenharmony_ciexit: 4967db96d56Sopenharmony_ci return return_value; 4977db96d56Sopenharmony_ci} 4987db96d56Sopenharmony_ci 4997db96d56Sopenharmony_ci#if defined(HAVE_ZLIB_COPY) 5007db96d56Sopenharmony_ci 5017db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Compress_copy__doc__, 5027db96d56Sopenharmony_ci"copy($self, /)\n" 5037db96d56Sopenharmony_ci"--\n" 5047db96d56Sopenharmony_ci"\n" 5057db96d56Sopenharmony_ci"Return a copy of the compression object."); 5067db96d56Sopenharmony_ci 5077db96d56Sopenharmony_ci#define ZLIB_COMPRESS_COPY_METHODDEF \ 5087db96d56Sopenharmony_ci {"copy", _PyCFunction_CAST(zlib_Compress_copy), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Compress_copy__doc__}, 5097db96d56Sopenharmony_ci 5107db96d56Sopenharmony_cistatic PyObject * 5117db96d56Sopenharmony_cizlib_Compress_copy_impl(compobject *self, PyTypeObject *cls); 5127db96d56Sopenharmony_ci 5137db96d56Sopenharmony_cistatic PyObject * 5147db96d56Sopenharmony_cizlib_Compress_copy(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 5157db96d56Sopenharmony_ci{ 5167db96d56Sopenharmony_ci if (nargs) { 5177db96d56Sopenharmony_ci PyErr_SetString(PyExc_TypeError, "copy() takes no arguments"); 5187db96d56Sopenharmony_ci return NULL; 5197db96d56Sopenharmony_ci } 5207db96d56Sopenharmony_ci return zlib_Compress_copy_impl(self, cls); 5217db96d56Sopenharmony_ci} 5227db96d56Sopenharmony_ci 5237db96d56Sopenharmony_ci#endif /* defined(HAVE_ZLIB_COPY) */ 5247db96d56Sopenharmony_ci 5257db96d56Sopenharmony_ci#if defined(HAVE_ZLIB_COPY) 5267db96d56Sopenharmony_ci 5277db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Compress___copy____doc__, 5287db96d56Sopenharmony_ci"__copy__($self, /)\n" 5297db96d56Sopenharmony_ci"--\n" 5307db96d56Sopenharmony_ci"\n"); 5317db96d56Sopenharmony_ci 5327db96d56Sopenharmony_ci#define ZLIB_COMPRESS___COPY___METHODDEF \ 5337db96d56Sopenharmony_ci {"__copy__", _PyCFunction_CAST(zlib_Compress___copy__), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Compress___copy____doc__}, 5347db96d56Sopenharmony_ci 5357db96d56Sopenharmony_cistatic PyObject * 5367db96d56Sopenharmony_cizlib_Compress___copy___impl(compobject *self, PyTypeObject *cls); 5377db96d56Sopenharmony_ci 5387db96d56Sopenharmony_cistatic PyObject * 5397db96d56Sopenharmony_cizlib_Compress___copy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 5407db96d56Sopenharmony_ci{ 5417db96d56Sopenharmony_ci if (nargs) { 5427db96d56Sopenharmony_ci PyErr_SetString(PyExc_TypeError, "__copy__() takes no arguments"); 5437db96d56Sopenharmony_ci return NULL; 5447db96d56Sopenharmony_ci } 5457db96d56Sopenharmony_ci return zlib_Compress___copy___impl(self, cls); 5467db96d56Sopenharmony_ci} 5477db96d56Sopenharmony_ci 5487db96d56Sopenharmony_ci#endif /* defined(HAVE_ZLIB_COPY) */ 5497db96d56Sopenharmony_ci 5507db96d56Sopenharmony_ci#if defined(HAVE_ZLIB_COPY) 5517db96d56Sopenharmony_ci 5527db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Compress___deepcopy____doc__, 5537db96d56Sopenharmony_ci"__deepcopy__($self, memo, /)\n" 5547db96d56Sopenharmony_ci"--\n" 5557db96d56Sopenharmony_ci"\n"); 5567db96d56Sopenharmony_ci 5577db96d56Sopenharmony_ci#define ZLIB_COMPRESS___DEEPCOPY___METHODDEF \ 5587db96d56Sopenharmony_ci {"__deepcopy__", _PyCFunction_CAST(zlib_Compress___deepcopy__), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Compress___deepcopy____doc__}, 5597db96d56Sopenharmony_ci 5607db96d56Sopenharmony_cistatic PyObject * 5617db96d56Sopenharmony_cizlib_Compress___deepcopy___impl(compobject *self, PyTypeObject *cls, 5627db96d56Sopenharmony_ci PyObject *memo); 5637db96d56Sopenharmony_ci 5647db96d56Sopenharmony_cistatic PyObject * 5657db96d56Sopenharmony_cizlib_Compress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 5667db96d56Sopenharmony_ci{ 5677db96d56Sopenharmony_ci PyObject *return_value = NULL; 5687db96d56Sopenharmony_ci static const char * const _keywords[] = {"", NULL}; 5697db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0}; 5707db96d56Sopenharmony_ci PyObject *argsbuf[1]; 5717db96d56Sopenharmony_ci PyObject *memo; 5727db96d56Sopenharmony_ci 5737db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); 5747db96d56Sopenharmony_ci if (!args) { 5757db96d56Sopenharmony_ci goto exit; 5767db96d56Sopenharmony_ci } 5777db96d56Sopenharmony_ci memo = args[0]; 5787db96d56Sopenharmony_ci return_value = zlib_Compress___deepcopy___impl(self, cls, memo); 5797db96d56Sopenharmony_ci 5807db96d56Sopenharmony_ciexit: 5817db96d56Sopenharmony_ci return return_value; 5827db96d56Sopenharmony_ci} 5837db96d56Sopenharmony_ci 5847db96d56Sopenharmony_ci#endif /* defined(HAVE_ZLIB_COPY) */ 5857db96d56Sopenharmony_ci 5867db96d56Sopenharmony_ci#if defined(HAVE_ZLIB_COPY) 5877db96d56Sopenharmony_ci 5887db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Decompress_copy__doc__, 5897db96d56Sopenharmony_ci"copy($self, /)\n" 5907db96d56Sopenharmony_ci"--\n" 5917db96d56Sopenharmony_ci"\n" 5927db96d56Sopenharmony_ci"Return a copy of the decompression object."); 5937db96d56Sopenharmony_ci 5947db96d56Sopenharmony_ci#define ZLIB_DECOMPRESS_COPY_METHODDEF \ 5957db96d56Sopenharmony_ci {"copy", _PyCFunction_CAST(zlib_Decompress_copy), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Decompress_copy__doc__}, 5967db96d56Sopenharmony_ci 5977db96d56Sopenharmony_cistatic PyObject * 5987db96d56Sopenharmony_cizlib_Decompress_copy_impl(compobject *self, PyTypeObject *cls); 5997db96d56Sopenharmony_ci 6007db96d56Sopenharmony_cistatic PyObject * 6017db96d56Sopenharmony_cizlib_Decompress_copy(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 6027db96d56Sopenharmony_ci{ 6037db96d56Sopenharmony_ci if (nargs) { 6047db96d56Sopenharmony_ci PyErr_SetString(PyExc_TypeError, "copy() takes no arguments"); 6057db96d56Sopenharmony_ci return NULL; 6067db96d56Sopenharmony_ci } 6077db96d56Sopenharmony_ci return zlib_Decompress_copy_impl(self, cls); 6087db96d56Sopenharmony_ci} 6097db96d56Sopenharmony_ci 6107db96d56Sopenharmony_ci#endif /* defined(HAVE_ZLIB_COPY) */ 6117db96d56Sopenharmony_ci 6127db96d56Sopenharmony_ci#if defined(HAVE_ZLIB_COPY) 6137db96d56Sopenharmony_ci 6147db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Decompress___copy____doc__, 6157db96d56Sopenharmony_ci"__copy__($self, /)\n" 6167db96d56Sopenharmony_ci"--\n" 6177db96d56Sopenharmony_ci"\n"); 6187db96d56Sopenharmony_ci 6197db96d56Sopenharmony_ci#define ZLIB_DECOMPRESS___COPY___METHODDEF \ 6207db96d56Sopenharmony_ci {"__copy__", _PyCFunction_CAST(zlib_Decompress___copy__), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Decompress___copy____doc__}, 6217db96d56Sopenharmony_ci 6227db96d56Sopenharmony_cistatic PyObject * 6237db96d56Sopenharmony_cizlib_Decompress___copy___impl(compobject *self, PyTypeObject *cls); 6247db96d56Sopenharmony_ci 6257db96d56Sopenharmony_cistatic PyObject * 6267db96d56Sopenharmony_cizlib_Decompress___copy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 6277db96d56Sopenharmony_ci{ 6287db96d56Sopenharmony_ci if (nargs) { 6297db96d56Sopenharmony_ci PyErr_SetString(PyExc_TypeError, "__copy__() takes no arguments"); 6307db96d56Sopenharmony_ci return NULL; 6317db96d56Sopenharmony_ci } 6327db96d56Sopenharmony_ci return zlib_Decompress___copy___impl(self, cls); 6337db96d56Sopenharmony_ci} 6347db96d56Sopenharmony_ci 6357db96d56Sopenharmony_ci#endif /* defined(HAVE_ZLIB_COPY) */ 6367db96d56Sopenharmony_ci 6377db96d56Sopenharmony_ci#if defined(HAVE_ZLIB_COPY) 6387db96d56Sopenharmony_ci 6397db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Decompress___deepcopy____doc__, 6407db96d56Sopenharmony_ci"__deepcopy__($self, memo, /)\n" 6417db96d56Sopenharmony_ci"--\n" 6427db96d56Sopenharmony_ci"\n"); 6437db96d56Sopenharmony_ci 6447db96d56Sopenharmony_ci#define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF \ 6457db96d56Sopenharmony_ci {"__deepcopy__", _PyCFunction_CAST(zlib_Decompress___deepcopy__), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Decompress___deepcopy____doc__}, 6467db96d56Sopenharmony_ci 6477db96d56Sopenharmony_cistatic PyObject * 6487db96d56Sopenharmony_cizlib_Decompress___deepcopy___impl(compobject *self, PyTypeObject *cls, 6497db96d56Sopenharmony_ci PyObject *memo); 6507db96d56Sopenharmony_ci 6517db96d56Sopenharmony_cistatic PyObject * 6527db96d56Sopenharmony_cizlib_Decompress___deepcopy__(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 6537db96d56Sopenharmony_ci{ 6547db96d56Sopenharmony_ci PyObject *return_value = NULL; 6557db96d56Sopenharmony_ci static const char * const _keywords[] = {"", NULL}; 6567db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "__deepcopy__", 0}; 6577db96d56Sopenharmony_ci PyObject *argsbuf[1]; 6587db96d56Sopenharmony_ci PyObject *memo; 6597db96d56Sopenharmony_ci 6607db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); 6617db96d56Sopenharmony_ci if (!args) { 6627db96d56Sopenharmony_ci goto exit; 6637db96d56Sopenharmony_ci } 6647db96d56Sopenharmony_ci memo = args[0]; 6657db96d56Sopenharmony_ci return_value = zlib_Decompress___deepcopy___impl(self, cls, memo); 6667db96d56Sopenharmony_ci 6677db96d56Sopenharmony_ciexit: 6687db96d56Sopenharmony_ci return return_value; 6697db96d56Sopenharmony_ci} 6707db96d56Sopenharmony_ci 6717db96d56Sopenharmony_ci#endif /* defined(HAVE_ZLIB_COPY) */ 6727db96d56Sopenharmony_ci 6737db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_Decompress_flush__doc__, 6747db96d56Sopenharmony_ci"flush($self, length=zlib.DEF_BUF_SIZE, /)\n" 6757db96d56Sopenharmony_ci"--\n" 6767db96d56Sopenharmony_ci"\n" 6777db96d56Sopenharmony_ci"Return a bytes object containing any remaining decompressed data.\n" 6787db96d56Sopenharmony_ci"\n" 6797db96d56Sopenharmony_ci" length\n" 6807db96d56Sopenharmony_ci" the initial size of the output buffer."); 6817db96d56Sopenharmony_ci 6827db96d56Sopenharmony_ci#define ZLIB_DECOMPRESS_FLUSH_METHODDEF \ 6837db96d56Sopenharmony_ci {"flush", _PyCFunction_CAST(zlib_Decompress_flush), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, zlib_Decompress_flush__doc__}, 6847db96d56Sopenharmony_ci 6857db96d56Sopenharmony_cistatic PyObject * 6867db96d56Sopenharmony_cizlib_Decompress_flush_impl(compobject *self, PyTypeObject *cls, 6877db96d56Sopenharmony_ci Py_ssize_t length); 6887db96d56Sopenharmony_ci 6897db96d56Sopenharmony_cistatic PyObject * 6907db96d56Sopenharmony_cizlib_Decompress_flush(compobject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 6917db96d56Sopenharmony_ci{ 6927db96d56Sopenharmony_ci PyObject *return_value = NULL; 6937db96d56Sopenharmony_ci static const char * const _keywords[] = {"", NULL}; 6947db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "flush", 0}; 6957db96d56Sopenharmony_ci PyObject *argsbuf[1]; 6967db96d56Sopenharmony_ci Py_ssize_t length = DEF_BUF_SIZE; 6977db96d56Sopenharmony_ci 6987db96d56Sopenharmony_ci args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf); 6997db96d56Sopenharmony_ci if (!args) { 7007db96d56Sopenharmony_ci goto exit; 7017db96d56Sopenharmony_ci } 7027db96d56Sopenharmony_ci if (nargs < 1) { 7037db96d56Sopenharmony_ci goto skip_optional_posonly; 7047db96d56Sopenharmony_ci } 7057db96d56Sopenharmony_ci { 7067db96d56Sopenharmony_ci Py_ssize_t ival = -1; 7077db96d56Sopenharmony_ci PyObject *iobj = _PyNumber_Index(args[0]); 7087db96d56Sopenharmony_ci if (iobj != NULL) { 7097db96d56Sopenharmony_ci ival = PyLong_AsSsize_t(iobj); 7107db96d56Sopenharmony_ci Py_DECREF(iobj); 7117db96d56Sopenharmony_ci } 7127db96d56Sopenharmony_ci if (ival == -1 && PyErr_Occurred()) { 7137db96d56Sopenharmony_ci goto exit; 7147db96d56Sopenharmony_ci } 7157db96d56Sopenharmony_ci length = ival; 7167db96d56Sopenharmony_ci } 7177db96d56Sopenharmony_ciskip_optional_posonly: 7187db96d56Sopenharmony_ci return_value = zlib_Decompress_flush_impl(self, cls, length); 7197db96d56Sopenharmony_ci 7207db96d56Sopenharmony_ciexit: 7217db96d56Sopenharmony_ci return return_value; 7227db96d56Sopenharmony_ci} 7237db96d56Sopenharmony_ci 7247db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_adler32__doc__, 7257db96d56Sopenharmony_ci"adler32($module, data, value=1, /)\n" 7267db96d56Sopenharmony_ci"--\n" 7277db96d56Sopenharmony_ci"\n" 7287db96d56Sopenharmony_ci"Compute an Adler-32 checksum of data.\n" 7297db96d56Sopenharmony_ci"\n" 7307db96d56Sopenharmony_ci" value\n" 7317db96d56Sopenharmony_ci" Starting value of the checksum.\n" 7327db96d56Sopenharmony_ci"\n" 7337db96d56Sopenharmony_ci"The returned checksum is an integer."); 7347db96d56Sopenharmony_ci 7357db96d56Sopenharmony_ci#define ZLIB_ADLER32_METHODDEF \ 7367db96d56Sopenharmony_ci {"adler32", _PyCFunction_CAST(zlib_adler32), METH_FASTCALL, zlib_adler32__doc__}, 7377db96d56Sopenharmony_ci 7387db96d56Sopenharmony_cistatic PyObject * 7397db96d56Sopenharmony_cizlib_adler32_impl(PyObject *module, Py_buffer *data, unsigned int value); 7407db96d56Sopenharmony_ci 7417db96d56Sopenharmony_cistatic PyObject * 7427db96d56Sopenharmony_cizlib_adler32(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 7437db96d56Sopenharmony_ci{ 7447db96d56Sopenharmony_ci PyObject *return_value = NULL; 7457db96d56Sopenharmony_ci Py_buffer data = {NULL, NULL}; 7467db96d56Sopenharmony_ci unsigned int value = 1; 7477db96d56Sopenharmony_ci 7487db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("adler32", nargs, 1, 2)) { 7497db96d56Sopenharmony_ci goto exit; 7507db96d56Sopenharmony_ci } 7517db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) { 7527db96d56Sopenharmony_ci goto exit; 7537db96d56Sopenharmony_ci } 7547db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&data, 'C')) { 7557db96d56Sopenharmony_ci _PyArg_BadArgument("adler32", "argument 1", "contiguous buffer", args[0]); 7567db96d56Sopenharmony_ci goto exit; 7577db96d56Sopenharmony_ci } 7587db96d56Sopenharmony_ci if (nargs < 2) { 7597db96d56Sopenharmony_ci goto skip_optional; 7607db96d56Sopenharmony_ci } 7617db96d56Sopenharmony_ci value = (unsigned int)PyLong_AsUnsignedLongMask(args[1]); 7627db96d56Sopenharmony_ci if (value == (unsigned int)-1 && PyErr_Occurred()) { 7637db96d56Sopenharmony_ci goto exit; 7647db96d56Sopenharmony_ci } 7657db96d56Sopenharmony_ciskip_optional: 7667db96d56Sopenharmony_ci return_value = zlib_adler32_impl(module, &data, value); 7677db96d56Sopenharmony_ci 7687db96d56Sopenharmony_ciexit: 7697db96d56Sopenharmony_ci /* Cleanup for data */ 7707db96d56Sopenharmony_ci if (data.obj) { 7717db96d56Sopenharmony_ci PyBuffer_Release(&data); 7727db96d56Sopenharmony_ci } 7737db96d56Sopenharmony_ci 7747db96d56Sopenharmony_ci return return_value; 7757db96d56Sopenharmony_ci} 7767db96d56Sopenharmony_ci 7777db96d56Sopenharmony_ciPyDoc_STRVAR(zlib_crc32__doc__, 7787db96d56Sopenharmony_ci"crc32($module, data, value=0, /)\n" 7797db96d56Sopenharmony_ci"--\n" 7807db96d56Sopenharmony_ci"\n" 7817db96d56Sopenharmony_ci"Compute a CRC-32 checksum of data.\n" 7827db96d56Sopenharmony_ci"\n" 7837db96d56Sopenharmony_ci" value\n" 7847db96d56Sopenharmony_ci" Starting value of the checksum.\n" 7857db96d56Sopenharmony_ci"\n" 7867db96d56Sopenharmony_ci"The returned checksum is an integer."); 7877db96d56Sopenharmony_ci 7887db96d56Sopenharmony_ci#define ZLIB_CRC32_METHODDEF \ 7897db96d56Sopenharmony_ci {"crc32", _PyCFunction_CAST(zlib_crc32), METH_FASTCALL, zlib_crc32__doc__}, 7907db96d56Sopenharmony_ci 7917db96d56Sopenharmony_cistatic unsigned int 7927db96d56Sopenharmony_cizlib_crc32_impl(PyObject *module, Py_buffer *data, unsigned int value); 7937db96d56Sopenharmony_ci 7947db96d56Sopenharmony_cistatic PyObject * 7957db96d56Sopenharmony_cizlib_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs) 7967db96d56Sopenharmony_ci{ 7977db96d56Sopenharmony_ci PyObject *return_value = NULL; 7987db96d56Sopenharmony_ci Py_buffer data = {NULL, NULL}; 7997db96d56Sopenharmony_ci unsigned int value = 0; 8007db96d56Sopenharmony_ci unsigned int _return_value; 8017db96d56Sopenharmony_ci 8027db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("crc32", nargs, 1, 2)) { 8037db96d56Sopenharmony_ci goto exit; 8047db96d56Sopenharmony_ci } 8057db96d56Sopenharmony_ci if (PyObject_GetBuffer(args[0], &data, PyBUF_SIMPLE) != 0) { 8067db96d56Sopenharmony_ci goto exit; 8077db96d56Sopenharmony_ci } 8087db96d56Sopenharmony_ci if (!PyBuffer_IsContiguous(&data, 'C')) { 8097db96d56Sopenharmony_ci _PyArg_BadArgument("crc32", "argument 1", "contiguous buffer", args[0]); 8107db96d56Sopenharmony_ci goto exit; 8117db96d56Sopenharmony_ci } 8127db96d56Sopenharmony_ci if (nargs < 2) { 8137db96d56Sopenharmony_ci goto skip_optional; 8147db96d56Sopenharmony_ci } 8157db96d56Sopenharmony_ci value = (unsigned int)PyLong_AsUnsignedLongMask(args[1]); 8167db96d56Sopenharmony_ci if (value == (unsigned int)-1 && PyErr_Occurred()) { 8177db96d56Sopenharmony_ci goto exit; 8187db96d56Sopenharmony_ci } 8197db96d56Sopenharmony_ciskip_optional: 8207db96d56Sopenharmony_ci _return_value = zlib_crc32_impl(module, &data, value); 8217db96d56Sopenharmony_ci if ((_return_value == (unsigned int)-1) && PyErr_Occurred()) { 8227db96d56Sopenharmony_ci goto exit; 8237db96d56Sopenharmony_ci } 8247db96d56Sopenharmony_ci return_value = PyLong_FromUnsignedLong((unsigned long)_return_value); 8257db96d56Sopenharmony_ci 8267db96d56Sopenharmony_ciexit: 8277db96d56Sopenharmony_ci /* Cleanup for data */ 8287db96d56Sopenharmony_ci if (data.obj) { 8297db96d56Sopenharmony_ci PyBuffer_Release(&data); 8307db96d56Sopenharmony_ci } 8317db96d56Sopenharmony_ci 8327db96d56Sopenharmony_ci return return_value; 8337db96d56Sopenharmony_ci} 8347db96d56Sopenharmony_ci 8357db96d56Sopenharmony_ci#ifndef ZLIB_COMPRESS_COPY_METHODDEF 8367db96d56Sopenharmony_ci #define ZLIB_COMPRESS_COPY_METHODDEF 8377db96d56Sopenharmony_ci#endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */ 8387db96d56Sopenharmony_ci 8397db96d56Sopenharmony_ci#ifndef ZLIB_COMPRESS___COPY___METHODDEF 8407db96d56Sopenharmony_ci #define ZLIB_COMPRESS___COPY___METHODDEF 8417db96d56Sopenharmony_ci#endif /* !defined(ZLIB_COMPRESS___COPY___METHODDEF) */ 8427db96d56Sopenharmony_ci 8437db96d56Sopenharmony_ci#ifndef ZLIB_COMPRESS___DEEPCOPY___METHODDEF 8447db96d56Sopenharmony_ci #define ZLIB_COMPRESS___DEEPCOPY___METHODDEF 8457db96d56Sopenharmony_ci#endif /* !defined(ZLIB_COMPRESS___DEEPCOPY___METHODDEF) */ 8467db96d56Sopenharmony_ci 8477db96d56Sopenharmony_ci#ifndef ZLIB_DECOMPRESS_COPY_METHODDEF 8487db96d56Sopenharmony_ci #define ZLIB_DECOMPRESS_COPY_METHODDEF 8497db96d56Sopenharmony_ci#endif /* !defined(ZLIB_DECOMPRESS_COPY_METHODDEF) */ 8507db96d56Sopenharmony_ci 8517db96d56Sopenharmony_ci#ifndef ZLIB_DECOMPRESS___COPY___METHODDEF 8527db96d56Sopenharmony_ci #define ZLIB_DECOMPRESS___COPY___METHODDEF 8537db96d56Sopenharmony_ci#endif /* !defined(ZLIB_DECOMPRESS___COPY___METHODDEF) */ 8547db96d56Sopenharmony_ci 8557db96d56Sopenharmony_ci#ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF 8567db96d56Sopenharmony_ci #define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF 8577db96d56Sopenharmony_ci#endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */ 8587db96d56Sopenharmony_ci/*[clinic end generated code: output=757804b3ad33454f input=a9049054013a1b77]*/ 859