| # line 1 | |
| 'A module docstring.' | |
| import inspect | |
| # line 5 | |
| # line 7 | |
| def spam(a, /, b, c, d=3, e=4, f=5, *g, **h): | |
| eggs(b + d, c + f) | |
| # line 11 | |
| def eggs(x, y): | |
| "A docstring." | |
| global fr, st | |
| fr = inspect.currentframe() | |
| st = inspect.stack() | |
| p = x | |
| q = y / 0 | |
| # line 20 | |
| class StupidGit: | |
| """A longer, | |
| indented | |
| docstring.""" | |
| # line 27 | |
| def abuse(self, a, b, c): | |
| """Another | |
| \tdocstring | |
| containing | |
| \ttabs | |
| \t | |
| """ | |
| self.argue(a, b, c) | |
| # line 40 | |
| def argue(self, a, b, c): | |
| try: | |
| spam(a, b, c) | |
| except BaseException as e: | |
| self.ex = e | |
| self.tr = inspect.trace() | |
| @property | |
| def contradiction(self): | |
| 'The automatic gainsaying.' | |
| pass | |
| # line 53 | |
| class MalodorousPervert(StupidGit): | |
| def abuse(self, a, b, c): | |
| pass | |
| @property | |
| def contradiction(self): | |
| pass | |
| Tit = MalodorousPervert | |
| class ParrotDroppings: | |
| pass | |
| class FesteringGob(MalodorousPervert, ParrotDroppings): | |
| def abuse(self, a, b, c): | |
| pass | |
| def _getter(self): | |
| pass | |
| contradiction = property(_getter) | |
| async def lobbest(grenade): | |
| pass | |
| currentframe = inspect.currentframe() | |
| try: | |
| raise Exception() | |
| except BaseException as e: | |
| tb = e.__traceback__ | |
| class Callable: | |
| def __call__(self, *args): | |
| return args | |
| def as_method_of(self, obj): | |
| from types import MethodType | |
| return MethodType(self, obj) | |
| custom_method = Callable().as_method_of(42) | |
| del Callable | |
| # line 95 | |
| class WhichComments: | |
| # line 97 | |
| # before f | |
| def f(self): | |
| # line 100 | |
| # start f | |
| return 1 | |
| # line 103 | |
| # end f | |
| # line 105 | |
| # after f | |
| # before asyncf - line 108 | |
| async def asyncf(self): | |
| # start asyncf | |
| return 2 | |
| # end asyncf | |
| # after asyncf - line 113 | |
| # end of WhichComments - line 114 | |
| # after WhichComments - line 115 | |
| # Test that getsource works on a line that includes | |
| # a closing parenthesis with the opening paren being in another line | |
| ( | |
| ); after_closing = lambda: 1 |