| 22 | method_name = method.__name__ |
| 23 | |
| 24 | def logger_wrapper(self: "Parser", *args: object) -> Any: |
| 25 | if not self._verbose: |
| 26 | return method(self, *args) |
| 27 | argsr = ",".join(repr(arg) for arg in args) |
| 28 | fill = " " * self._level |
| 29 | print(f"{fill}{method_name}({argsr}) .... (looking at {self.showpeek()})") |
| 30 | self._level += 1 |
| 31 | tree = method(self, *args) |
| 32 | self._level -= 1 |
| 33 | print(f"{fill}... {method_name}({argsr}) --> {tree!s:.200}") |
| 34 | return tree |
| 35 | |
| 36 | logger_wrapper.__wrapped__ = method # type: ignore[attr-defined] |
| 37 | return cast(F, logger_wrapper) |