Releases: omniviser/omniray
Releases · omniviser/omniray
v1.0.1
Changes
Bug Fixes
- fix: use
start_span()instead ofstart_as_current_span()inAsyncTracerto prevent OTel context detach error (ValueError: Token was created in a different Context) when async task generators are GC'd acrosscontextvars.Contextboundaries @BKDDFS (#14)
Documentation
Maintenance
- fix: replace
from tests.e2e.conftest importwith pytest fixtures, fixingpytest .from repo root @BKDDFS (#14) - fix: replace deprecated
asyncio.iscoroutinefunctionwithinspect.iscoroutinefunction(removed in Python 3.16) @BKDDFS (#14)
Other changes
- ci: replace Codecov with SonarCloud coverage @BKDDFS (#13)
- ci: pin GitHub Actions to full commit SHAs @BKDDFS (#12)
- ci: fix docs workflow — use uv with --extra docs and bump actions @BKDDFS (#10)
- ci: remove SBOM attachment step from release workflow @BKDDFS (#7)
Full Changelog: v1.0.0...v1.0.1
v1.0.0
See every function call as a color-coded tree in your terminal. One call instruments your entire codebase.
from omniwrap import wrap_all
from omniray import create_trace_wrapper
wrap_all(create_trace_wrapper())Packages
| Package | Description | Install |
|---|---|---|
| omniray | Live tracing — console tree + OpenTelemetry | pip install omniray |
| omniwrap | Automatic wrapping engine for any callable | pip install omniwrap |
Highlights
- Zero-config instrumentation —
wrap_all()discovers and wraps every function and method automatically - Live console output — color-coded call tree with timing,
[SLOW]tags, and box-drawing characters @tracedecorator — per-function control over logging, I/O capture, conditional skip, and OTel spans- Tri-state flags — env vars act as kill switches (
false), enablers (true), or defer to local config (unset) - OpenTelemetry integration —
pip install omniray[otel]for span export alongside console output - Production-safe — ~1 μs overhead with flags off, never masks exceptions, skips dunders/properties/exceptions
- Python 3.12 – 3.14, tested on Linux, macOS, Windows