From: Toshaksha <147024929+Toshaksha@users.noreply.github.com> Date: Sun, 27 Jul 2025 16:37:52 +0000 (+0530) Subject: gh-136278: Document codecs.escape_encode() and codecs.escape_decode() (#136314) X-Git-Tag: v3.15.0a1~838 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6784ef7da7cbf1a944fd0685630ced54e4a0066c;p=thirdparty%2FPython%2Fcpython.git gh-136278: Document codecs.escape_encode() and codecs.escape_decode() (#136314) Closes #136278 --- diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 1cb0e225bca0..f96f2f8281f4 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -1483,6 +1483,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