summaryrefslogtreecommitdiffstats
path: root/Tools/clinic/clinic.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2020-10-09 20:00:45 (GMT)
committerGitHub <noreply@github.com>2020-10-09 20:00:45 (GMT)
commit9975cc5008c795e069ce11e2dbed2110cc12e74e (patch)
tree87aca48f943cd04f0a3defe5f2666438efa959fa /Tools/clinic/clinic.py
parentb2c0a43699bd9023a69e3fa554f5488a2e17e278 (diff)
downloadcpython-9975cc5008c795e069ce11e2dbed2110cc12e74e.zip
cpython-9975cc5008c795e069ce11e2dbed2110cc12e74e.tar.gz
cpython-9975cc5008c795e069ce11e2dbed2110cc12e74e.tar.bz2
bpo-41985: Add _PyLong_FileDescriptor_Converter and AC converter for "fildes". (GH-22620)
Diffstat (limited to 'Tools/clinic/clinic.py')
-rwxr-xr-xTools/clinic/clinic.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py
index 1bbbd4f..5f2eb53 100755
--- a/Tools/clinic/clinic.py
+++ b/Tools/clinic/clinic.py
@@ -3103,6 +3103,19 @@ class size_t_converter(CConverter):
return super().parse_arg(argname, displayname)
+class fildes_converter(CConverter):
+ type = 'int'
+ converter = '_PyLong_FileDescriptor_Converter'
+
+ def _parse_arg(self, argname, displayname):
+ return """
+ {paramname} = PyObject_AsFileDescriptor({argname});
+ if ({paramname} == -1) {{{{
+ goto exit;
+ }}}}
+ """.format(argname=argname, paramname=self.name)
+
+
class float_converter(CConverter):
type = 'float'
default_type = float