@@ -3867,19 +3867,28 @@ class float_converter(CConverter):
3867
3867
3868
3868
def parse_arg (self , argname : str , displayname : str , * , limited_capi : bool ) -> str | None :
3869
3869
if self .format_unit == 'f' :
3870
- return self .format_code ("""
3871
- if (PyFloat_CheckExact({argname})) {{{{
3872
- {paramname} = (float) (PyFloat_AS_DOUBLE({argname}));
3873
- }}}}
3874
- else
3875
- {{{{
3870
+ if not limited_capi :
3871
+ return self .format_code ("""
3872
+ if (PyFloat_CheckExact({argname})) {{{{
3873
+ {paramname} = (float) (PyFloat_AS_DOUBLE({argname}));
3874
+ }}}}
3875
+ else
3876
+ {{{{
3877
+ {paramname} = (float) PyFloat_AsDouble({argname});
3878
+ if ({paramname} == -1.0 && PyErr_Occurred()) {{{{
3879
+ goto exit;
3880
+ }}}}
3881
+ }}}}
3882
+ """ ,
3883
+ argname = argname )
3884
+ else :
3885
+ return self .format_code ("""
3876
3886
{paramname} = (float) PyFloat_AsDouble({argname});
3877
3887
if ({paramname} == -1.0 && PyErr_Occurred()) {{{{
3878
3888
goto exit;
3879
3889
}}}}
3880
- }}}}
3881
- """ ,
3882
- argname = argname )
3890
+ """ ,
3891
+ argname = argname )
3883
3892
return super ().parse_arg (argname , displayname , limited_capi = limited_capi )
3884
3893
3885
3894
class double_converter (CConverter ):
@@ -3890,19 +3899,28 @@ class double_converter(CConverter):
3890
3899
3891
3900
def parse_arg (self , argname : str , displayname : str , * , limited_capi : bool ) -> str | None :
3892
3901
if self .format_unit == 'd' :
3893
- return self .format_code ("""
3894
- if (PyFloat_CheckExact({argname})) {{{{
3895
- {paramname} = PyFloat_AS_DOUBLE({argname});
3896
- }}}}
3897
- else
3898
- {{{{
3902
+ if not limited_capi :
3903
+ return self .format_code ("""
3904
+ if (PyFloat_CheckExact({argname})) {{{{
3905
+ {paramname} = PyFloat_AS_DOUBLE({argname});
3906
+ }}}}
3907
+ else
3908
+ {{{{
3909
+ {paramname} = PyFloat_AsDouble({argname});
3910
+ if ({paramname} == -1.0 && PyErr_Occurred()) {{{{
3911
+ goto exit;
3912
+ }}}}
3913
+ }}}}
3914
+ """ ,
3915
+ argname = argname )
3916
+ else :
3917
+ return self .format_code ("""
3899
3918
{paramname} = PyFloat_AsDouble({argname});
3900
3919
if ({paramname} == -1.0 && PyErr_Occurred()) {{{{
3901
3920
goto exit;
3902
3921
}}}}
3903
- }}}}
3904
- """ ,
3905
- argname = argname )
3922
+ """ ,
3923
+ argname = argname )
3906
3924
return super ().parse_arg (argname , displayname , limited_capi = limited_capi )
3907
3925
3908
3926
0 commit comments