Issue #26243: Only the level argument to zlib.compress() is keyword argument

now.  The first argument is positional-only.
This commit is contained in:
Serhiy Storchaka 2016-06-25 22:43:05 +03:00
parent 696c35e86b
commit 95657cdd40
5 changed files with 12 additions and 6 deletions

View File

@ -58,7 +58,7 @@ The available exception and functions in this module are:
Raises the :exc:`error` exception if any error occurs. Raises the :exc:`error` exception if any error occurs.
.. versionchanged:: 3.6 .. 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]) .. function:: compressobj(level=-1, method=DEFLATED, wbits=15, memLevel=8, strategy=Z_DEFAULT_STRATEGY[, zdict])

View File

@ -163,8 +163,10 @@ class CompressTestCase(BaseCompressTestCase, unittest.TestCase):
self.assertEqual(zlib.decompress(x), HAMLET_SCENE) self.assertEqual(zlib.decompress(x), HAMLET_SCENE)
def test_keywords(self): 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) self.assertEqual(zlib.decompress(x), HAMLET_SCENE)
with self.assertRaises(TypeError):
zlib.compress(data=HAMLET_SCENE, level=3)
def test_speech128(self): def test_speech128(self):
# compress more data # compress more data

View File

@ -10,6 +10,9 @@ What's New in Python 3.6.0 alpha 3
Library 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 - Issue #27038: Expose the DirEntry type as os.DirEntry. Code patch by
Jelle Zijlstra. Jelle Zijlstra.

View File

@ -3,7 +3,7 @@ preserve
[clinic start generated code]*/ [clinic start generated code]*/
PyDoc_STRVAR(zlib_compress__doc__, PyDoc_STRVAR(zlib_compress__doc__,
"compress($module, /, data, level=Z_DEFAULT_COMPRESSION)\n" "compress($module, data, /, level=Z_DEFAULT_COMPRESSION)\n"
"--\n" "--\n"
"\n" "\n"
"Returns a bytes object containing compressed data.\n" "Returns a bytes object containing compressed data.\n"
@ -23,7 +23,7 @@ static PyObject *
zlib_compress(PyModuleDef *module, PyObject *args, PyObject *kwargs) zlib_compress(PyModuleDef *module, PyObject *args, PyObject *kwargs)
{ {
PyObject *return_value = NULL; PyObject *return_value = NULL;
static char *_keywords[] = {"data", "level", NULL}; static char *_keywords[] = {"", "level", NULL};
Py_buffer data = {NULL, NULL}; Py_buffer data = {NULL, NULL};
int level = Z_DEFAULT_COMPRESSION; int level = Z_DEFAULT_COMPRESSION;
@ -460,4 +460,4 @@ exit:
#ifndef ZLIB_COMPRESS_COPY_METHODDEF #ifndef ZLIB_COMPRESS_COPY_METHODDEF
#define ZLIB_COMPRESS_COPY_METHODDEF #define ZLIB_COMPRESS_COPY_METHODDEF
#endif /* !defined(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]*/

View File

@ -143,6 +143,7 @@ zlib.compress
data: Py_buffer data: Py_buffer
Binary data to be compressed. Binary data to be compressed.
/
level: int(c_default="Z_DEFAULT_COMPRESSION") = Z_DEFAULT_COMPRESSION level: int(c_default="Z_DEFAULT_COMPRESSION") = Z_DEFAULT_COMPRESSION
Compression level, in 0-9 or -1. Compression level, in 0-9 or -1.
@ -151,7 +152,7 @@ Returns a bytes object containing compressed data.
static PyObject * static PyObject *
zlib_compress_impl(PyModuleDef *module, Py_buffer *data, int level) 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; PyObject *ReturnVal = NULL;
Byte *input, *output = NULL; Byte *input, *output = NULL;