@@ -187,9 +187,21 @@ def declarations(self):
187187 arg .declare ()
188188
189189 def getargs (self ):
190+ sep = ",\n " + ' ' * len ("if (!PyArg_ParseTuple(" )
191+ fmt , lst = self .getargsFormatArgs (sep )
192+ Output ("if (!PyArg_ParseTuple(_args, \" %s\" %s))" , fmt , lst )
193+ IndentLevel ()
194+ Output ("return NULL;" )
195+ DedentLevel ()
196+ for arg in self .argumentList :
197+ if arg .flags == SelfMode :
198+ continue
199+ if arg .mode in (InMode , InOutMode ):
200+ arg .getargsCheck ()
201+
202+ def getargsFormatArgs (self , sep ):
190203 fmt = ""
191204 lst = ""
192- sep = ",\n " + ' ' * len ("if (!PyArg_ParseTuple(" )
193205 for arg in self .argumentList :
194206 if arg .flags == SelfMode :
195207 continue
@@ -199,15 +211,7 @@ def getargs(self):
199211 args = arg .getargsArgs ()
200212 if args :
201213 lst = lst + sep + args
202- Output ("if (!PyArg_ParseTuple(_args, \" %s\" %s))" , fmt , lst )
203- IndentLevel ()
204- Output ("return NULL;" )
205- DedentLevel ()
206- for arg in self .argumentList :
207- if arg .flags == SelfMode :
208- continue
209- if arg .mode in (InMode , InOutMode ):
210- arg .getargsCheck ()
214+ return fmt , lst
211215
212216 def precheck (self ):
213217 pass
@@ -236,16 +240,8 @@ def checkit(self):
236240 arg .errorCheck ()
237241
238242 def returnvalue (self ):
239- fmt = ""
240- lst = ""
241243 sep = ",\n " + ' ' * len ("return Py_BuildValue(" )
242- for arg in self .argumentList :
243- if not arg : continue
244- if arg .flags == ErrorMode : continue
245- if arg .mode in (OutMode , InOutMode ):
246- arg .mkvaluePreCheck ()
247- fmt = fmt + arg .mkvalueFormat ()
248- lst = lst + sep + arg .mkvalueArgs ()
244+ fmt , lst = self .mkvalueFormatArgs (sep )
249245 if fmt == "" :
250246 Output ("Py_INCREF(Py_None);" )
251247 Output ("_res = Py_None;" );
@@ -258,6 +254,17 @@ def returnvalue(self):
258254 arg .cleanup ()
259255 Output ("return _res;" )
260256
257+ def mkvalueFormatArgs (self , sep ):
258+ fmt = ""
259+ lst = ""
260+ for arg in self .argumentList :
261+ if not arg : continue
262+ if arg .flags == ErrorMode : continue
263+ if arg .mode in (OutMode , InOutMode ):
264+ arg .mkvaluePreCheck ()
265+ fmt = fmt + arg .mkvalueFormat ()
266+ lst = lst + sep + arg .mkvalueArgs ()
267+ return fmt , lst
261268
262269class MethodGenerator (FunctionGenerator ):
263270
0 commit comments