classification
Title: Improvements to documentation for PyUnicode_FS{Converter,Decoder}
Type: Stage:
Components: C API, Documentation Versions:
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: docs@python Nosy List: Antony.Lee, docs@python
Priority: normal Keywords:

Created on 2020-12-19 12:51 by Antony.Lee, last changed 2020-12-19 12:51 by Antony.Lee.

Messages (1)
msg383378 - (view) Author: Antony Lee (Antony.Lee) * Date: 2020-12-19 12:51
The docs for PyUnicode_FSConverter and PyUnicode_FSDecoder could be improved on two points:

- The functions also reject str/bytes that contain null bytes (one can easily verify that there's a specific check for them in the C implementations).  Currently the docs only say that the converters use PyUnicode_EncodeFSDefault/PyUnicode_DecodeFSDefaultAndSize, but those don't check for null bytes.

- The functions only ever return 1 or 0 (indicating success or failures), which means that one can just use e.g. `if (!PyUnicode_FSConverter(foo, &bar)) { goto error; } ...` (this pattern occurs repeatedly in the CPython codebase).  In theory, given that the functions are only documented as being "O&"-converters, they could also be returning Py_CLEANUP_SUPPORTED in which case they'd need to be called a second time on failure to release allocated memory.
History
Date User Action Args
2020-12-19 12:51:17Antony.Leecreate