Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3ac3edc

Browse files
committed
M.-A. Lemburg <[email protected]>:
Added documentation and the missing PyCodec_StreamWriter API.
1 parent ea2b715 commit 3ac3edc

1 file changed

Lines changed: 75 additions & 7 deletions

File tree

Include/codecs.h

Lines changed: 75 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,105 @@ Written by Marc-Andre Lemburg ([email protected]).
1515
1616
------------------------------------------------------------------------ */
1717

18+
/* Register a new codec search function.
19+
20+
As side effect, this tries to load the encodings package, if not
21+
yet done, to make sure that it is always first in the list of
22+
search functions.
23+
24+
The search_function's refcount is incremented by this function. */
25+
1826
extern DL_IMPORT(int) PyCodec_Register(
1927
PyObject *search_function
2028
);
2129

30+
/* Codec register lookup API.
31+
32+
Looks up the given encoding and returns a tuple (encoder, decoder,
33+
stream reader, stream writer) of functions which implement the
34+
different aspects of processing the encoding.
35+
36+
The encoding string is looked up converted to all lower-case
37+
characters. This makes encodings looked up through this mechanism
38+
effectively case-insensitive.
39+
40+
If no codec is found, a KeyError is set and NULL returned.
41+
42+
As side effect, this tries to load the encodings package, if not
43+
yet done. This is part of the lazy load strategy for the encodings
44+
package.
45+
46+
*/
47+
2248
extern DL_IMPORT(PyObject *) _PyCodec_Lookup(
2349
const char *encoding
2450
);
2551

52+
/* Generic codec based encoding API.
53+
54+
object is passed through the encoder function found for the given
55+
encoding using the error handling method defined by errors. errors
56+
may be NULL to use the default method defined for the codec.
57+
58+
Raises a LookupError in case no encoder can be found.
59+
60+
*/
61+
62+
extern DL_IMPORT(PyObject *) PyCodec_Encode(
63+
PyObject *object,
64+
const char *encoding,
65+
const char *errors
66+
);
67+
68+
/* Generic codec based decoding API.
69+
70+
object is passed through the decoder function found for the given
71+
encoding using the error handling method defined by errors. errors
72+
may be NULL to use the default method defined for the codec.
73+
74+
Raises a LookupError in case no encoder can be found.
75+
76+
*/
77+
78+
extern DL_IMPORT(PyObject *) PyCodec_Decode(
79+
PyObject *object,
80+
const char *encoding,
81+
const char *errors
82+
);
83+
84+
/* --- Codec Lookup APIs --------------------------------------------------
85+
86+
All APIs return a codec object with incremented refcount and are
87+
based on _PyCodec_Lookup(). The same comments w/r to the encoding
88+
name also apply to these APIs.
89+
90+
*/
91+
92+
/* Get an encoder function for the given encoding. */
93+
2694
extern DL_IMPORT(PyObject *) PyCodec_Encoder(
2795
const char *encoding
2896
);
2997

98+
/* Get a decoder function for the given encoding. */
99+
30100
extern DL_IMPORT(PyObject *) PyCodec_Decoder(
31101
const char *encoding
32102
);
33103

104+
/* Get a StreamReader factory function for the given encoding. */
105+
34106
extern DL_IMPORT(PyObject *) PyCodec_StreamReader(
35107
const char *encoding,
36108
PyObject *stream,
37109
const char *errors
38110
);
39111

40-
extern DL_IMPORT(PyObject *) PyCodec_Encode(
41-
PyObject *object,
42-
const char *encoding,
43-
const char *errors
44-
);
112+
/* Get a StreamWriter factory function for the given encoding. */
45113

46-
extern DL_IMPORT(PyObject *) PyCodec_Decode(
47-
PyObject *object,
114+
extern DL_IMPORT(PyObject *) PyCodec_StreamWriter(
48115
const char *encoding,
116+
PyObject *stream,
49117
const char *errors
50118
);
51119

0 commit comments

Comments
 (0)