call site 15 for code.Source.__getslice__
code/testing/test_source.py - line 133
130
131
132
133
134
   def test_compile_and_getsource_simple(self):
       co = py.code.compile("x=3")
       exec co
->     source = py.code.Source(co)
       assert str(source) == "x=3"
code/source.py - line 30
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
   def __init__(self, *parts, **kwargs):
       self.lines = lines = []
       de = kwargs.get('deindent', True)
       rstrip = kwargs.get('rstrip', True) 
       for part in parts:
           if not part: 
               partlines = []
           if isinstance(part, Source):
               partlines = part.lines
           elif isinstance(part, (unicode, str)):
               partlines = part.split('\n')
               if rstrip:
                   while partlines: 
                       if partlines[-1].strip(): 
                           break
                       partlines.pop()
           else:
->             partlines = getsource(part, deindent=de).lines
           if de:
               partlines = deindent(partlines)
           lines.extend(partlines)
code/source.py - line 240
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
   def getsource(obj, **kwargs):
       if hasattr(obj, 'func_code'):
           obj = obj.func_code
       elif hasattr(obj, 'f_code'):
           obj = obj.f_code
       try:
           fullsource = obj.co_filename.__source__
       except AttributeError:
           try:
               strsrc = inspect.getsource(obj)
           except IndentationError:
               strsrc = "\"Buggy python version consider upgrading, cannot get source\""
           assert isinstance(strsrc, str)
           return Source(strsrc, **kwargs)
       else:
           lineno = obj.co_firstlineno - 1
           end = fullsource.getblockend(lineno)
->         return fullsource[lineno:end+1]