Kaydet (Commit) 64d25ddb authored tarafından Nadeem Vawda's avatar Nadeem Vawda

Issue #12306: Add ZLIB_RUNTIME_VERSION to the zlib module.

While we're at it, also document ZLIB_VERSION.

Patch by Torsten Landschoff.
üst 249ab5e8
......@@ -122,6 +122,7 @@ The available exception and functions in this module are:
won't fit into memory at once. The *wbits* parameter controls the size of the
window buffer.
Compression objects support the following methods:
......@@ -217,6 +218,26 @@ Decompression objects support the following methods and attributes:
seeks into the stream at a future point.
Information about the version of the zlib library in use is available through
the following constants:
.. data:: ZLIB_VERSION
The version string of the zlib library that was used for building the module.
This may be different from the zlib library actually used at runtime, which
is available as :const:`ZLIB_RUNTIME_VERSION`.
.. versionadded:: 3.3
.. data:: ZLIB_RUNTIME_VERSION
The version string of the zlib library actually loaded by the interpreter.
.. versionadded:: 3.3
.. seealso::
Module :mod:`gzip`
......
......@@ -13,6 +13,17 @@ except ImportError:
mmap = None
class VersionTestCase(unittest.TestCase):
def test_library_version(self):
# On the build system, ZLIB_RUNTIME_VERSION should match ZLIB_VERSION.
# ZLIB_RUNTIME_VERSION is the actual library version while ZLIB_VERSION
# is the version from the header file. On the build system, the headers
# should match with the library exactly. At runtime, only the first
# digit is required to match.
self.assertEqual(zlib.ZLIB_RUNTIME_VERSION, zlib.ZLIB_VERSION)
class ChecksumTestCase(unittest.TestCase):
# checksum test cases
def test_crc32start(self):
......@@ -647,6 +658,7 @@ LAERTES
def test_main():
support.run_unittest(
VersionTestCase,
ChecksumTestCase,
ChecksumBigBufferTestCase,
ExceptionTestCase,
......
......@@ -274,6 +274,9 @@ Core and Builtins
Library
-------
- Issue #12306: Expose the runtime version of the zlib C library as a constant,
ZLIB_RUNTIME_VERSION, in the zlib module. Patch by Torsten Landschoff.
- Issue #12959: Add collections.ChainMap to collections.__all__.
- Issue #12567: Add curses.unget_wch() function. Push a character so the next
......
......@@ -1169,6 +1169,10 @@ PyInit_zlib(void)
if (ver != NULL)
PyModule_AddObject(m, "ZLIB_VERSION", ver);
ver = PyUnicode_FromString(zlibVersion());
if (ver != NULL)
PyModule_AddObject(m, "ZLIB_RUNTIME_VERSION", ver);
PyModule_AddStringConstant(m, "__version__", "1.0");
return m;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment