1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
cdef extern from "Python.h":
###########################################################################
# Codec registry and support functions
###########################################################################
int PyCodec_Register(object search_function)
# Register a new codec search function.
# As side effect, this tries to load the encodings package, if not yet
# done, to make sure that it is always first in the list of search
# functions.
int PyCodec_KnownEncoding(const char *encoding)
# Return 1 or 0 depending on whether there is a registered codec for the
# given encoding. This function always succeeds.
object PyCodec_Encode(object o, const char *encoding, const char *errors)
# Return value: New reference.
# Generic codec based encoding API.
# o 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
# if no encoder can be found.
object PyCodec_Decode(object o, const char *encoding, const char *errors)
# Return value: New reference.
# Generic codec based decoding API.
# o 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
# if no encoder 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 is set and NULL returned.
object PyCodec_Encoder(const char *encoding)
# Return value: New reference.
# Get an encoder function for the given encoding.
object PyCodec_Decoder(const char *encoding)
# Return value: New reference.
# Get a decoder function for the given encoding.
object PyCodec_IncrementalEncoder(const char *encoding, const char *errors)
# Return value: New reference.
# Get an IncrementalEncoder object for the given encoding.
object PyCodec_IncrementalDecoder(const char *encoding, const char *errors)
# Return value: New reference.
# Get an IncrementalDecoder object for the given encoding.
object PyCodec_StreamReader(const char *encoding, object stream, const char *errors)
# Return value: New reference.
# Get a StreamReader factory function for the given encoding.
object PyCodec_StreamWriter(const char *encoding, object stream, const char *errors)
# Return value: New reference.
# Get a StreamWriter factory function for the given encoding.
# Registry API for Unicode encoding error handlers
int PyCodec_RegisterError(const char *name, object error) except? -1
# 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, UnicodeDecodeError or UnicodeTranslateError that
# holds information about the problematic sequence of characters or bytes
# and their offset in the original string (see Unicode Exception Objects
# 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.
object PyCodec_LookupError(const char *name)
# Return value: New reference.
# 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.
object PyCodec_StrictErrors(object exc)
# Return value: Always NULL.
# Raise exc as an exception.
object PyCodec_IgnoreErrors(object exc)
# Return value: New reference.
# Ignore the unicode error, skipping the faulty input.
object PyCodec_ReplaceErrors(object exc)
# Return value: New reference.
# Replace the unicode encode error with "?" or "U+FFFD".
object PyCodec_XMLCharRefReplaceErrors(object exc)
# Return value: New reference.
# Replace the unicode encode error with XML character references.
object PyCodec_BackslashReplaceErrors(object exc)
# Return value: New reference.
# Replace the unicode encode error with backslash escapes ("\x", "\u"
# and "\U").
object PyCodec_NameReplaceErrors(object exc)
# Return value: New reference.
# Replace the unicode encode error with "\N{...}" escapes.
# New in version 3.5.
|