`shell_like` 命令参数解析器,解析出错时不会退出程序。 支持 {ref}`nonebot.adapters.Message` 富文本解析。 用法: 用法与 `argparse.ArgumentParser` 相同, 参考文档: [argparse](https://docs.python.org/3/library/argparse.html)
| 440 | |
| 441 | |
| 442 | class ArgumentParser(ArgParser): |
| 443 | """`shell_like` 命令参数解析器,解析出错时不会退出程序。 |
| 444 | |
| 445 | 支持 {ref}`nonebot.adapters.Message` 富文本解析。 |
| 446 | |
| 447 | 用法: |
| 448 | 用法与 `argparse.ArgumentParser` 相同, |
| 449 | 参考文档: [argparse](https://docs.python.org/3/library/argparse.html) |
| 450 | """ |
| 451 | |
| 452 | if TYPE_CHECKING: |
| 453 | |
| 454 | @overload |
| 455 | def parse_known_args( |
| 456 | self, |
| 457 | args: Sequence[str | MessageSegment] | None = None, |
| 458 | namespace: None = None, |
| 459 | ) -> tuple[Namespace, list[str | MessageSegment]]: ... |
| 460 | |
| 461 | @overload |
| 462 | def parse_known_args( |
| 463 | self, args: Sequence[str | MessageSegment] | None, namespace: T |
| 464 | ) -> tuple[T, list[str | MessageSegment]]: ... |
| 465 | |
| 466 | @overload |
| 467 | def parse_known_args( |
| 468 | self, *, namespace: T |
| 469 | ) -> tuple[T, list[str | MessageSegment]]: ... |
| 470 | |
| 471 | def parse_known_args( # pyright: ignore[reportIncompatibleMethodOverride] |
| 472 | self, |
| 473 | args: Sequence[str | MessageSegment] | None = None, |
| 474 | namespace: T | None = None, |
| 475 | ) -> tuple[Namespace | T, list[str | MessageSegment]]: ... |
| 476 | |
| 477 | @overload |
| 478 | def parse_args( |
| 479 | self, |
| 480 | args: Sequence[str | MessageSegment] | None = None, |
| 481 | namespace: None = None, |
| 482 | ) -> Namespace: ... |
| 483 | |
| 484 | @overload |
| 485 | def parse_args( |
| 486 | self, args: Sequence[str | MessageSegment] | None, namespace: T |
| 487 | ) -> T: ... |
| 488 | |
| 489 | @overload |
| 490 | def parse_args(self, *, namespace: T) -> T: ... |
| 491 | |
| 492 | def parse_args( |
| 493 | self, |
| 494 | args: Sequence[str | MessageSegment] | None = None, |
| 495 | namespace: T | None = None, |
| 496 | ) -> Namespace | T: |
| 497 | result, argv = self.parse_known_args(args, namespace) |
| 498 | if argv: |
| 499 | msg = gettext("unrecognized arguments: %s") |
no outgoing calls