Commandline API¶
This utility can be invoked by editor plugins.
Slicing a File¶
Editor Compatible Output¶
Note
This is the default output.
Call:
programslice <filename> <varname> <line> <offset>
Example:
# call
programslice myproject.py obj 70 16
# output
obj,70,16
obj,71,19
obj,72,71
read,72,20
read,74,46
Error Case Example:
Traceback (most recent call last):
File "/home/foo/programslice/bin/programslice", line 11, in <module>
sys.exit(programslice.command_slice_file())
File "/home/foo/programslice/programslice/__init__.py", line 72, in command_slice_file
formatter)
File "/home/foo/programslice/programslice/__init__.py", line 111, in slice_string
visitor.visit(node)
File "/home/foo/programslice/programslice/visitor.py", line 71, in connect_by_lineno
raise ValueError
ValueError
Linenumbers Output¶
Call:
programslice -o linenumbers <filename> <varname> <line> <offset>
Example:
# call
programslice -o linenumbers myproject.py obj 70 16
# output
70
71
72
72
74
Text Output¶
This output returns the sliced source code including indentation.
Note
Due to the limited functionality, the sliced source code will most likely not syntactically correct.
Call:
programslice -o text <filename> <varname> <line> <offset>
Example:
# call
programslice -o text myproject.py obj 70 16
# output
min = 0
while not min > max or not max < min:
mid = int(min + (max - min)/2)
x = searchlist[mid]
if x > n:
max = mid
elif x < n:
min = mid
elif x == n:
return mid