Runtime analysis for Python programs
Project description
SpotFlow
SpotFlow is a tool to ease the runtime analysis of Python programs. SpotFlow runs and monitors a target Python program. With SpotFlow, you can easily extract information about executed lines, argument values, return values, variable states, and thrown exceptions.
Install
pip install spotflow
A quick example
An example of a simple code:
# content of sample.py
def absolute(x):
if x < 0:
x = -x
return x
absolute(-10) # 10
To run and monitor function absolute
in sample.py
:
$ python -m spotflow -t absolute sample
Running and monitoring: sample
====================== Result ======================
MonitoredProgram
- methods: 1
- calls: 1
MonitoredMethod
- name: absolute
- calls: 1
MethodCall
- distinct_run_lines: [2, 3, 4]
- run_lines: [2, 3, 4]
ArgState
- x: -10
VarStateHistory
- x: -10, 10
ReturnState: 10
Another simple code, with two calls:
# content of sample.py
def sum(iter, start=0):
count = start
for i in iter:
count += i
return count
sum([1, 2]) # 3
sum([1, 2, 3], 1) # 7
To run and monitor function sum
in sample.py
:
$ python -m spotflow -t sum sample
Running and monitoring: sample
====================== Result ======================
MonitoredProgram
- methods: 1
- calls: 2
MonitoredMethod
- name: sum
- calls: 2
MethodCall
- distinct_run_lines: [2, 3, 4, 5]
- run_lines: [2, 3, 4, 3, 4, 3, 5]
ArgState
- iter: [1, 2]
- start: 0
VarStateHistory
- iter: [1, 2]
- start: 0
- count: 0, 1, 3
- i: 1, 2
ReturnState: 3
MethodCall
- distinct_run_lines: [2, 3, 4, 5]
- run_lines: [2, 3, 4, 3, 4, 3, 4, 3, 5]
ArgState
- iter: [1, 2, 3]
- start: 1
VarStateHistory
- iter: [1, 2, 3]
- start: 1
- count: 1, 2, 4, 7
- i: 1, 2, 3
ReturnState: 7
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
spotflow-1.0.0.tar.gz
(51.9 kB
view hashes)
Built Distribution
spotflow-1.0.0-py3-none-any.whl
(41.1 kB
view hashes)