@@ -680,41 +680,6 @@ func_set_qualname(PyObject *self, PyObject *value, void *Py_UNUSED(ignored))
680
680
return 0 ;
681
681
}
682
682
683
- static PyObject *
684
- func_get_annotate (PyObject * self , void * Py_UNUSED (ignored ))
685
- {
686
- PyFunctionObject * op = _PyFunction_CAST (self );
687
- if (op -> func_annotate == NULL ) {
688
- Py_RETURN_NONE ;
689
- }
690
- return Py_NewRef (op -> func_annotate );
691
- }
692
-
693
- static int
694
- func_set_annotate (PyObject * self , PyObject * value , void * Py_UNUSED (ignored ))
695
- {
696
- PyFunctionObject * op = _PyFunction_CAST (self );
697
- if (value == NULL ) {
698
- PyErr_SetString (PyExc_TypeError ,
699
- "__annotate__ cannot be deleted" );
700
- return -1 ;
701
- }
702
- if (Py_IsNone (value )) {
703
- Py_XSETREF (op -> func_annotate , value );
704
- return 0 ;
705
- }
706
- else if (PyCallable_Check (value )) {
707
- Py_XSETREF (op -> func_annotate , Py_XNewRef (value ));
708
- Py_CLEAR (op -> func_annotations );
709
- return 0 ;
710
- }
711
- else {
712
- PyErr_SetString (PyExc_TypeError ,
713
- "__annotate__ must be callable or None" );
714
- return -1 ;
715
- }
716
- }
717
-
718
683
static PyObject *
719
684
func_get_type_params (PyObject * self , void * Py_UNUSED (ignored ))
720
685
{
@@ -1101,12 +1066,62 @@ function___kwdefaults___set_impl(PyFunctionObject *self, PyObject *value)
1101
1066
return 0 ;
1102
1067
}
1103
1068
1069
+ /*[clinic input]
1070
+ @critical_section
1071
+ @getter
1072
+ function.__annotate__
1073
+
1074
+ Get __annotate__ attribute for a function object.
1075
+ [clinic start generated code]*/
1076
+
1077
+ static PyObject *
1078
+ function___annotate___get_impl (PyFunctionObject * self )
1079
+ /*[clinic end generated code: output=5ec7219ff2bda9e6 input=2932381f16ffeb75]*/
1080
+ {
1081
+ if (self -> func_annotate == NULL ) {
1082
+ Py_RETURN_NONE ;
1083
+ }
1084
+ return Py_NewRef (self -> func_annotate );
1085
+ }
1086
+
1087
+ /*[clinic input]
1088
+ @critical_section
1089
+ @setter
1090
+ function.__annotate__
1091
+ [clinic start generated code]*/
1092
+
1093
+ static int
1094
+ function___annotate___set_impl (PyFunctionObject * self , PyObject * value )
1095
+ /*[clinic end generated code: output=05b7dfc07ada66cd input=eb6225e358d97448]*/
1096
+ {
1097
+ PyFunctionObject * op = _PyFunction_CAST (self );
1098
+ if (value == NULL ) {
1099
+ PyErr_SetString (PyExc_TypeError ,
1100
+ "__annotate__ cannot be deleted" );
1101
+ return -1 ;
1102
+ }
1103
+ if (Py_IsNone (value )) {
1104
+ Py_XSETREF (op -> func_annotate , value );
1105
+ return 0 ;
1106
+ }
1107
+ else if (PyCallable_Check (value )) {
1108
+ Py_XSETREF (op -> func_annotate , Py_XNewRef (value ));
1109
+ Py_CLEAR (op -> func_annotations );
1110
+ return 0 ;
1111
+ }
1112
+ else {
1113
+ PyErr_SetString (PyExc_TypeError ,
1114
+ "__annotate__ must be callable or None" );
1115
+ return -1 ;
1116
+ }
1117
+ }
1118
+
1104
1119
static PyGetSetDef func_getsetlist [] = {
1105
1120
FUNCTION___CODE___GETSETDEF
1106
1121
FUNCTION___DEFAULTS___GETSETDEF
1107
1122
FUNCTION___KWDEFAULTS___GETSETDEF
1108
1123
FUNCTION___ANNOTATIONS___GETSETDEF
1109
- { "__annotate__" , func_get_annotate , func_set_annotate },
1124
+ FUNCTION___ANNOTATE___GETSETDEF
1110
1125
{"__dict__" , PyObject_GenericGetDict , PyObject_GenericSetDict },
1111
1126
{"__name__" , func_get_name , func_set_name },
1112
1127
{"__qualname__" , func_get_qualname , func_set_qualname },
0 commit comments