You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

32 lines
952 B

#!/usr/bin/env python
from __future__ import print_function
import pyclbr
import sys
import operator
if __name__ == '__main__':
modname = sys.argv[2]
methname = sys.argv[1]
mod = pyclbr.readmodule(modname)
for clsname, cls in mod.items():
if methname in cls.methods:
print("Method: {} in Class: {}".format(methname, clsname))
methods = sorted(cls.methods.items(), key=operator.itemgetter(1))
clsfile = open(cls.file, 'r')
break
for pair in methods:
name, lineno = pair
if name == methname:
startline = lineno
if methods.index(pair) == methods.index(methods[-1]):
endline = None
else:
endline = methods[methods.index(pair) + 1][1]
break
src = clsfile.readlines()[startline-1:endline-1 if endline is not None else -1]
for srcline in src:
print(srcline, end='')