(self)
| 381 | self.parser_definition = code |
| 382 | |
| 383 | def parse_no_args(self) -> None: |
| 384 | parser_code: list[str] | None |
| 385 | simple_return = self.use_simple_return() |
| 386 | if self.func.kind is GETTER: |
| 387 | self.parser_prototype = PARSER_PROTOTYPE_GETTER |
| 388 | parser_code = [] |
| 389 | elif self.func.kind is SETTER: |
| 390 | self.parser_prototype = PARSER_PROTOTYPE_SETTER |
| 391 | parser_code = [] |
| 392 | elif not self.requires_defining_class: |
| 393 | # no self.parameters, METH_NOARGS |
| 394 | self.flags = "METH_NOARGS" |
| 395 | self.parser_prototype = PARSER_PROTOTYPE_NOARGS |
| 396 | parser_code = [] |
| 397 | else: |
| 398 | assert self.fastcall |
| 399 | |
| 400 | self.flags = "METH_METHOD|METH_FASTCALL|METH_KEYWORDS" |
| 401 | self.parser_prototype = PARSER_PROTOTYPE_DEF_CLASS |
| 402 | return_error = ('return NULL;' if simple_return |
| 403 | else 'goto exit;') |
| 404 | parser_code = [libclinic.normalize_snippet(""" |
| 405 | if (nargs || (kwnames && PyTuple_GET_SIZE(kwnames))) {{ |
| 406 | PyErr_SetString(PyExc_TypeError, "{name}() takes no arguments"); |
| 407 | %s |
| 408 | }} |
| 409 | """ % return_error, indent=4)] |
| 410 | |
| 411 | if simple_return: |
| 412 | self.parser_definition = '\n'.join([ |
| 413 | self.parser_prototype, |
| 414 | '{{', |
| 415 | *parser_code, |
| 416 | ' return {c_basename}_impl({impl_arguments});', |
| 417 | '}}']) |
| 418 | else: |
| 419 | self.parser_body(*parser_code) |
| 420 | |
| 421 | def parse_one_arg(self) -> None: |
| 422 | self.flags = "METH_O" |
no test coverage detected