Primer is a lightweight toolbox for debugging and benchmarking Python code.
Project description
Primer
Primer is a lightweight toolkit for debugging and benchmarking Python code.
With only one line inserted, primer improves your coding experience.
from primer import debug, profile, performance
Install
Requirements
- Python >= 3.5
pip install primer-kit
Debug
Exception hook helps you debug your code whenever exception is raise.
debug.setup_hook()
Call decorator monitors every call to the function and its arguments.
@debug.call
def my_function(args):
Profile
Time and memory profilers measure the duration and memory allocation for some code.
with profile.time(), profile.memory():
They can also be used as decorators over functions. A log frequency of 10 outputs results once per 10 calls.
@profile.time(log_frequency=10)
def my_function(args):
Performance
Slot decorator converts all member variables to static slots, which saves memory and runs faster.
@performance.slot
class MyClass(object):
Shared ndarray can be passed across processes without copy, which saves memory by several times and runs faster.
import numpy as np
import multiprocessing as mp
arrays = [performance.SharedNDArray(np.random.rand(100000)) for _ in range(4)]
results = mp.Pool(4).map(np.sum, arrays)
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
Built Distribution
Hashes for primer_kit-0.1.1a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8faa87470dd7fb58c626f2e76325ce99aaeae8eb1cef39a03ae9f56dc59e7dc7 |
|
MD5 | 30c00d65b411fa559a2eb7889301d182 |
|
BLAKE2b-256 | dfcc9aa0984d2ffeb0c608fa0f711b3e7aa3670439519a732fc7ade6ab5d5e1e |