32 lines
952 B
Python
Executable file
32 lines
952 B
Python
Executable file
#!/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='')
|