Issue #26244: Clarify default zlib compression level in documentation
Based on patch by Aviv Palivoda.
diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst
index a815d1f..1869bb8 100644
--- a/Doc/library/zlib.rst
+++ b/Doc/library/zlib.rst
@@ -60,10 +60,11 @@
Returns a compression object, to be used for compressing data streams that won't
fit into memory at once.
- *level* is the compression level -- an integer from ``0`` to ``9``. A value
- of ``1`` is fastest and produces the least compression, while a value of
+ *level* is the compression level -- an integer from ``0`` to ``9`` or ``-1``.
+ A value of ``1`` is fastest and produces the least compression, while a value of
``9`` is slowest and produces the most. ``0`` is no compression. The default
- value is ``6``.
+ value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a default
+ compromise between speed and compression (currently equivalent to level 6).
*method* is the compression algorithm. Currently, the only supported value is
``DEFLATED``.
diff --git a/Misc/ACKS b/Misc/ACKS
index 426d19f..b07244a 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1071,6 +1071,7 @@
Martin Packman
Shriphani Palakodety
Julien Palard
+Aviv Palivoda
Ondrej Palkovsky
Mike Pall
Todd R. Palmer
diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h
index c5cdf42..2d75bc9 100644
--- a/Modules/clinic/zlibmodule.c.h
+++ b/Modules/clinic/zlibmodule.c.h
@@ -89,8 +89,9 @@
"Return a compressor object.\n"
"\n"
" level\n"
-" The compression level (an integer in the range 0-9; default is 6).\n"
-" Higher compression levels are slower, but produce smaller results.\n"
+" The compression level (an integer in the range 0-9 or -1; default is\n"
+" currently equivalent to 6). Higher compression levels are slower,\n"
+" but produce smaller results.\n"
" method\n"
" The compression algorithm. If given, this must be DEFLATED.\n"
" wbits\n"
@@ -438,4 +439,4 @@
#ifndef ZLIB_COMPRESS_COPY_METHODDEF
#define ZLIB_COMPRESS_COPY_METHODDEF
#endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */
-/*[clinic end generated code: output=7734aec079550bc8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=cf81e1deae3af0ce input=a9049054013a1b77]*/
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index d5a6e53..11a34bb 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -390,8 +390,9 @@
zlib.compressobj
level: int(c_default="Z_DEFAULT_COMPRESSION") = Z_DEFAULT_COMPRESSION
- The compression level (an integer in the range 0-9; default is 6).
- Higher compression levels are slower, but produce smaller results.
+ The compression level (an integer in the range 0-9 or -1; default is
+ currently equivalent to 6). Higher compression levels are slower,
+ but produce smaller results.
method: int(c_default="DEFLATED") = DEFLATED
The compression algorithm. If given, this must be DEFLATED.
wbits: int(c_default="MAX_WBITS") = MAX_WBITS
@@ -413,7 +414,7 @@
static PyObject *
zlib_compressobj_impl(PyModuleDef *module, int level, int method, int wbits,
int memLevel, int strategy, Py_buffer *zdict)
-/*[clinic end generated code: output=2949bbb9a5723ccd input=b034847f8821f6af]*/
+/*[clinic end generated code: output=2949bbb9a5723ccd input=de2ffab6e910cd8b]*/
{
compobject *self = NULL;
int err;