Spaces:
Running on Zero
Running on Zero
| # Codec registry and support functions {#codec-registry} | |
| > Register a new codec search function. | |
| > | |
| > As a side effect, this tries to load the `!encodings`{.interpreted-text role="mod"} package, if not yet done, to make sure that it is always first in the list of search functions. | |
| > Unregister a codec search function and clear the registry\'s cache. If the search function is not registered, do nothing. Return 0 on success. Raise an exception and return -1 on error. | |
| > | |
| > ::: versionadded | |
| > 3.10 | |
| > ::: | |
| > Return `1` or `0` depending on whether there is a registered codec for the given *encoding*. This function always succeeds. | |
| > Generic codec based encoding API. | |
| > | |
| > *object* is passed through the encoder function found for the given *encoding* using the error handling method defined by *errors*. *errors* may be `NULL` to use the default method defined for the codec. Raises a `LookupError`{.interpreted-text role="exc"} if no encoder can be found. | |
| > Generic codec based decoding API. | |
| > | |
| > *object* is passed through the decoder function found for the given *encoding* using the error handling method defined by *errors*. *errors* may be `NULL` to use the default method defined for the codec. Raises a `LookupError`{.interpreted-text role="exc"} if no decoder can be found. | |
| ## Codec lookup API | |
| In the following functions, the *encoding* string is looked up converted to all lower-case characters, which makes encodings looked up through this mechanism effectively case-insensitive. If no codec is found, a `KeyError`{.interpreted-text role="exc"} is set and `NULL` returned. | |
| > Get an encoder function for the given *encoding*. | |
| > Get a decoder function for the given *encoding*. | |
| > Get an `~codecs.IncrementalEncoder`{.interpreted-text role="class"} object for the given *encoding*. | |
| > Get an `~codecs.IncrementalDecoder`{.interpreted-text role="class"} object for the given *encoding*. | |
| > Get a `~codecs.StreamReader`{.interpreted-text role="class"} factory function for the given *encoding*. | |
| > Get a `~codecs.StreamWriter`{.interpreted-text role="class"} factory function for the given *encoding*. | |
| ## Registry API for Unicode encoding error handlers | |
| > Register the error handling callback function *error* under the given *name*. This callback function will be called by a codec when it encounters unencodable characters/undecodable bytes and *name* is specified as the error parameter in the call to the encode/decode function. | |
| > | |
| > The callback gets a single argument, an instance of `UnicodeEncodeError`{.interpreted-text role="exc"}, `UnicodeDecodeError`{.interpreted-text role="exc"} or `UnicodeTranslateError`{.interpreted-text role="exc"} that holds information about the problematic sequence of characters or bytes and their offset in the original string (see `unicodeexceptions`{.interpreted-text role="ref"} for functions to extract this information). The callback must either raise the given exception, or return a two-item tuple containing the replacement for the problematic sequence, and an integer giving the offset in the original string at which encoding/decoding should be resumed. | |
| > | |
| > Return `0` on success, `-1` on error. | |
| > Lookup the error handling callback function registered under *name*. As a special case `NULL` can be passed, in which case the error handling callback for \"strict\" will be returned. | |
| > Raise *exc* as an exception. | |
| > Ignore the unicode error, skipping the faulty input. | |
| > Replace the unicode encode error with `?` or `U+FFFD`. | |
| > Replace the unicode encode error with XML character references. | |
| > Replace the unicode encode error with backslash escapes (`\x`, `\u` and `\U`). | |
| > Replace the unicode encode error with `\N{...}` escapes. | |
| > | |
| > ::: versionadded | |
| > 3.5 | |
| > ::: | |
| ## Codec utility variables | |
| > A string constant containing the lowercase hexadecimal digits: `"0123456789abcdef"`. | |
| > | |
| > ::: versionadded | |
| > 3.3 | |
| > ::: | |