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