From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sun, 27 Jul 2025 16:44:25 +0000 (+0200) Subject: [3.13] gh-136278: Document codecs.escape_encode() and codecs.escape_decode() (GH... X-Git-Tag: v3.13.6~39 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=81079d7b1ae9c122ec467d48418eb40bef2ddda3;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-136278: Document codecs.escape_encode() and codecs.escape_decode() (GH-136314) (#137150) gh-136278: Document codecs.escape_encode() and codecs.escape_decode() (GH-136314) Closes GH-136278 (cherry picked from commit 6784ef7da7cbf1a944fd0685630ced54e4a0066c) Co-authored-by: Toshaksha <147024929+Toshaksha@users.noreply.github.com> --- diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 21c6409ece44..8b4b8cef02fa 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -1472,6 +1472,36 @@ to :class:`bytes` mappings. They are not supported by :meth:`bytes.decode` Restoration of the aliases for the binary transforms. +.. _standalone-codec-functions: + +Standalone Codec Functions +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following functions provide encoding and decoding functionality similar to codecs, +but are not available as named codecs through :func:`codecs.encode` or :func:`codecs.decode`. +They are used internally (for example, by :mod:`pickle`) and behave similarly to the +``string_escape`` codec that was removed in Python 3. + +.. function:: codecs.escape_encode(input, errors=None) + + Encode *input* using escape sequences. Similar to how :func:`repr` on bytes + produces escaped byte values. + + *input* must be a :class:`bytes` object. + + Returns a tuple ``(output, length)`` where *output* is a :class:`bytes` + object and *length* is the number of bytes consumed. + +.. function:: codecs.escape_decode(input, errors=None) + + Decode *input* from escape sequences back to the original bytes. + + *input* must be a :term:`bytes-like object`. + + Returns a tuple ``(output, length)`` where *output* is a :class:`bytes` + object and *length* is the number of bytes consumed. + + .. _text-transforms: Text Transforms