summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-06-25 19:43:05 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2016-06-25 19:43:05 (GMT)
commit95657cdd40dace0a8f62c50b3f0991b4ec9972fd (patch)
treebf466a0cc516e0292442c5db35c8e6c9fc92790a
parent696c35e86bffea1f2bc6179a29e46416899e3de6 (diff)
downloadcpython-95657cdd40dace0a8f62c50b3f0991b4ec9972fd.zip
cpython-95657cdd40dace0a8f62c50b3f0991b4ec9972fd.tar.gz
cpython-95657cdd40dace0a8f62c50b3f0991b4ec9972fd.tar.bz2
Issue #26243: Only the level argument to zlib.compress() is keyword argument
now. The first argument is positional-only.
-rw-r--r--Doc/library/zlib.rst2
-rw-r--r--Lib/test/test_zlib.py4
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/clinic/zlibmodule.c.h6
-rw-r--r--Modules/zlibmodule.c3
5 files changed, 12 insertions, 6 deletions
diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst
index 111fb9e..6d8a467 100644
--- a/Doc/library/zlib.rst
+++ b/Doc/library/zlib.rst
@@ -58,7 +58,7 @@ The available exception and functions in this module are:
Raises the :exc:`error` exception if any error occurs.
.. versionchanged:: 3.6
- Keyword arguments are now supported.
+ *level* is now supported as keyword arguments.
.. function:: compressobj(level=-1, method=DEFLATED, wbits=15, memLevel=8, strategy=Z_DEFAULT_STRATEGY[, zdict])
diff --git a/Lib/test/test_zlib.py b/Lib/test/test_zlib.py
index 4d3611c..bb9292b 100644
--- a/Lib/test/test_zlib.py
+++ b/Lib/test/test_zlib.py
@@ -163,8 +163,10 @@ class CompressTestCase(BaseCompressTestCase, unittest.TestCase):
self.assertEqual(zlib.decompress(x), HAMLET_SCENE)
def test_keywords(self):
- x = zlib.compress(data=HAMLET_SCENE, level=3)
+ x = zlib.compress(HAMLET_SCENE, level=3)
self.assertEqual(zlib.decompress(x), HAMLET_SCENE)
+ with self.assertRaises(TypeError):
+ zlib.compress(data=HAMLET_SCENE, level=3)
def test_speech128(self):
# compress more data
diff --git a/Misc/NEWS b/Misc/NEWS
index 5353712..58b774e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.6.0 alpha 3
Library
-------
+- Issue #26243: Only the level argument to zlib.compress() is keyword argument
+ now. The first argument is positional-only.
+
- Issue #27038: Expose the DirEntry type as os.DirEntry. Code patch by
Jelle Zijlstra.
diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h
index c657bcb..dcaeef8 100644
--- a/Modules/clinic/zlibmodule.c.h
+++ b/Modules/clinic/zlibmodule.c.h
@@ -3,7 +3,7 @@ preserve
[clinic start generated code]*/
PyDoc_STRVAR(zlib_compress__doc__,
-"compress($module, /, data, level=Z_DEFAULT_COMPRESSION)\n"
+"compress($module, data, /, level=Z_DEFAULT_COMPRESSION)\n"
"--\n"
"\n"
"Returns a bytes object containing compressed data.\n"
@@ -23,7 +23,7 @@ static PyObject *
zlib_compress(PyModuleDef *module, PyObject *args, PyObject *kwargs)
{
PyObject *return_value = NULL;
- static char *_keywords[] = {"data", "level", NULL};
+ static char *_keywords[] = {"", "level", NULL};
Py_buffer data = {NULL, NULL};
int level = Z_DEFAULT_COMPRESSION;
@@ -460,4 +460,4 @@ exit:
#ifndef ZLIB_COMPRESS_COPY_METHODDEF
#define ZLIB_COMPRESS_COPY_METHODDEF
#endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */
-/*[clinic end generated code: output=9bd8a093baa653b2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ba904dec30cc1a1a input=a9049054013a1b77]*/
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index ad6f28d..3a459a5 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -143,6 +143,7 @@ zlib.compress
data: Py_buffer
Binary data to be compressed.
+ /
level: int(c_default="Z_DEFAULT_COMPRESSION") = Z_DEFAULT_COMPRESSION
Compression level, in 0-9 or -1.
@@ -151,7 +152,7 @@ Returns a bytes object containing compressed data.
static PyObject *
zlib_compress_impl(PyModuleDef *module, Py_buffer *data, int level)
-/*[clinic end generated code: output=1b97589132b203b4 input=abed30f4fa14e213]*/
+/*[clinic end generated code: output=1b97589132b203b4 input=638d54b6315dbed3]*/
{
PyObject *ReturnVal = NULL;
Byte *input, *output = NULL;