No project description provided
Project description
Handit Core (Python)
Lightweight function and HTTP tracing for Python applications with zero configuration. Captures function calls/returns with arguments and return values, and outgoing HTTP requests/responses (including bodies) for requests and httpx. Events are buffered in-memory and written once at process exit to handit_events.jsonl.
Install
Build from source (requires Rust and Python toolchain):
python -m pip install maturin
python -m maturin develop --release -m python/pyproject.toml
Quick start
from handit import session, tracing
import requests
@tracing(agent="demo")
def fetch_user(user_id: int) -> dict:
resp = requests.get(f"https://httpbin.org/anything/{user_id}")
return resp.json()
if __name__ == "__main__":
with session(tag="demo-session"):
fetch_user(42)
# Events will be written to ./handit_events.jsonl at exit
What is captured
- Function events: call/return/exception
- Arguments preview on call
- Return value preview on return
- HTTP events (client-side)
- requests/httpx: method, URL, headers, request body; response status, headers, body, size, duration, error
- aiohttp: method, URL, headers; response status, headers (bodies are not captured by default)
Behavior
- Zero-config: HTTP instrumentation is enabled on import; no environment variables are required.
- Noise reduction: internal library frames and stdlib/site-packages are excluded by default.
- Output: events are buffered and flushed once at exit to
handit_events.jsonl.- Override path via env
HANDIT_OUTPUT_FILE=./path/file.jsonl.
- Override path via env
Advanced
- Manual flush during runtime:
from handit_core import handit_core_native as native
native.flush_events_to_file("./handit_events.jsonl")
- Optional envs (all have safe defaults):
HANDIT_INCLUDE/HANDIT_EXCLUDE: module/function regex filtersHANDIT_MAX_STR(default 256),HANDIT_MAX_LOCALS(default 64)HANDIT_REDACT: regex for keys to redact in previewsHANDIT_CAPTURE_ONLY_CWD(default true)
Notes
- Capturing full HTTP bodies may include sensitive data. Ensure you comply with your data policy.
- For
aiohttpstreamed bodies, body capture can be added with explicit buffering middleware if needed.
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 Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file handit_ai-0.0.1-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: handit_ai-0.0.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c46e90f7e0840b7cf14ab8c792a2d6ef23435158a32b354f0d5c76bf62f8903f
|
|
| MD5 |
275a95760b0c6bcbc594ae0fd28c0823
|
|
| BLAKE2b-256 |
2a6708fac6d29b8d73ab67b9e45678ddbcc9dfe8873452e3a5e2be027197d1a2
|