A package containing many useful utilities
Project description
Vpack
A package containing a lot of useful utilities for Python developing and debugging.
Features
- Sigview: print the current running information when Ctrl+C is pressed.
- Breakpt: set always-on, at-time, on-error breakpoints conveniently.
- Reload: reload modules by names.
Installation
pip install --upgrade vpack
Examples
Sigview
Sigview is a signal handler. It will print the current running information (e.g. file, lineno, code) when Ctrl+C is pressed.
Enable sigview:
from vpack import sigview
sigview.enable()
# your code goes here
Now run your script and you will see the following output:
$ python examples/sigview_example.py
(vpack): Sigview enabled. Press ^C to see the current frame. Press ^C again to exit.
1
2
1
Press Ctrl + C to see the current frame, possible outputs:
2
(vpack): examples/sigview_example.py:12 in main
(vpack): time.sleep(2)
Press Ctrl + C twice (in 0.5 seconds) to exit.
You can also use sigview.enable(openshell=True)
to open a new shell when Ctrl+C is pressed.
See sigview_example.py and sigview_openshell_example.py.md for more details.
Breakpt
Breakpt is a convenient way to set breakpoints.
.at(n)
will try to open an interactive IPython shell (or pdb) when this line has been executed n
times.
.onerror()
will try to open a PDB shell when an Exception is raised.
You can use breakpt.enable()
and breakpt.disable()
to enable and disable breakpt.
from vpack import breakpt
for i in range(10):
print(i)
breakpt.at(8) # break at i = 7
breakpt.at(5) # break at i = 4
for i in range(6):
print(i)
if i == 2: breakpt.disable() # disable breakpt
if i == 4: breakpt.enable() # enable breakpt
breakpt.always() # break at i = 0, 1, 4, 5
breakpt.onerror()
a = [1, 2, 3]
for i in range(5):
print(a[i]) # will break at i = 3
See breakpt_example.py for more details.
Reload
Reload modules by names, see reload_example.py for more details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.