Skip to content

Commit cb4d329

Browse files
committed
AC converters for PyUnicode_FSConverter and PyUnicode_FSDecoder
1 parent a15aeec commit cb4d329

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

Tools/clinic/libclinic/converters.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -916,6 +916,26 @@ def parse_arg(self, argname: str, displayname: str, *, limited_capi: bool) -> st
916916
return super().parse_arg(argname, displayname, limited_capi=limited_capi)
917917

918918

919+
class _base_unicode_fs_converter(CConverter):
920+
type = 'PyObject *'
921+
922+
def converter_init(self) -> None:
923+
if self.default is not unspecified:
924+
fail(f"{self.__class__.__name__} does not support default values")
925+
self.c_default = 'NULL'
926+
927+
def cleanup(self) -> str:
928+
return f"Py_XDECREF({self.name});"
929+
930+
931+
class unicode_fs_encoded_converter(_base_unicode_fs_converter):
932+
converter = 'PyUnicode_FSConverter'
933+
934+
935+
class unicode_fs_decoded_converter(_base_unicode_fs_converter):
936+
converter = 'PyUnicode_FSDecoder'
937+
938+
919939
@add_legacy_c_converter('u')
920940
@add_legacy_c_converter('u#', zeroes=True)
921941
@add_legacy_c_converter('Z', accept={str, NoneType})

0 commit comments

Comments
 (0)