Skip to content

Commit 4125dbd

Browse files
emmatypinghugovk
authored andcommitted
pythongh-132983: Add What's New entry for PEP 784 implementation (python#133495)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
1 parent f8c5dc8 commit 4125dbd

File tree

1 file changed

+47
-1
lines changed

1 file changed

+47
-1
lines changed

Doc/whatsnew/3.14.rst

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ Summary -- release highlights
7171
* :ref:`PEP 761: Discontinuation of PGP signatures <whatsnew314-pep761>`
7272
* :ref:`PEP 765: Disallow return/break/continue that exit a finally block <whatsnew314-pep765>`
7373
* :ref:`PEP 768: Safe external debugger interface for CPython <whatsnew314-pep768>`
74+
* :ref:`PEP 784: Adding Zstandard to the standard library <whatsnew314-pep784>`
7475
* :ref:`A new type of interpreter <whatsnew314-tail-call>`
7576
* :ref:`Syntax highlighting in PyREPL <whatsnew314-pyrepl-highlighting>`,
7677
and color output in :ref:`unittest <whatsnew314-color-unittest>`,
@@ -232,6 +233,51 @@ See :pep:`768` for more details.
232233

233234
(Contributed by Pablo Galindo Salgado, Matt Wozniski, and Ivona Stojanovic in :gh:`131591`.)
234235

236+
.. _whatsnew314-pep784:
237+
238+
PEP 784: Adding Zstandard to the standard library
239+
-------------------------------------------------
240+
241+
The new ``compression`` package contains modules :mod:`!compression.lzma`,
242+
:mod:`!compression.bz2`, :mod:`!compression.gzip` and :mod:`!compression.zlib`
243+
which re-export the :mod:`lzma`, :mod:`bz2`, :mod:`gzip` and :mod:`zlib`
244+
modules respectively. The new import names under ``compression`` are the
245+
canonical names for importing these compression modules going forward. However,
246+
the existing modules names have not been deprecated. Any deprecation or removal
247+
of the existing compression modules will occur no sooner than five years after
248+
the release of 3.14.
249+
250+
The new :mod:`!compression.zstd` module provides compression and decompression
251+
APIs for the Zstandard format via bindings to `Meta's zstd library
252+
<https://facebook.github.io/zstd/>`__. Zstandard is a widely adopted, highly
253+
efficient, and fast compression format. In addition to the APIs introduced in
254+
:mod:`!compression.zstd`, support for reading and writing Zstandard compressed
255+
archives has been added to the :mod:`tarfile`, :mod:`zipfile`, and
256+
:mod:`shutil` modules.
257+
258+
Here's an example of using the new module to compress some data:
259+
260+
.. code-block:: python
261+
262+
from compression import zstd
263+
import math
264+
265+
data = str(math.pi).encode() * 20
266+
267+
compressed = zstd.compress(data)
268+
269+
ratio = len(compressed) / len(data)
270+
print(f"Achieved compression ratio of {ratio}")
271+
272+
As can be seen, the API is similar to the APIs of the :mod:`!lzma` and
273+
:mod:`!bz2` modules.
274+
275+
(Contributed by Emma Harper Smith, Adam Turner, Gregory P. Smith, Tomas Roun,
276+
Victor Stinner, and Rogdham in :gh:`132983`)
277+
278+
.. seealso::
279+
:pep:`768`.
280+
235281

236282
.. _whatsnew314-remote-pdb:
237283

@@ -907,7 +953,7 @@ ast
907953
(Contributed by Irit Katriel in :gh:`123958`.)
908954

909955
* The ``repr()`` output for AST nodes now includes more information.
910-
(Contributed by Tomas R in :gh:`116022`.)
956+
(Contributed by Tomas Roun in :gh:`116022`.)
911957

912958
* :func:`ast.parse`, when called with an AST as input, now always verifies
913959
that the root node type is appropriate.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy