TraceLoom for Python
One installation for native timeline analysis, a Python interface, and the optional vLLM runtime observer. The wheel includes the production C++17 analyzer, default rule manifests, and model/step YAML configurations. It is not just a launcher for a separately installed executable.
python -m pip install traceloom==0.1.0
traceloom /path/to/profile.db --output analysis.db
Python >=3.10. Linux wheels are platform-specific; source builds require C++17,
CMake, SQLite and libyaml development libraries. Gzip Perfetto output additionally
uses the system gzip executable. No torch, vLLM, or accelerator is needed for
offline analysis. The small traceloom-vllm-context dependency supplies runtime
observation; it does not install vLLM or change your serving environment.
Python analysis interface
from pathlib import Path
import traceloom
# One profiler SQLite file. CLI directory discovery remains available separately.
result = traceloom.analyze(
"profile.db",
output="analysis.db",
threads=4,
timeout=300,
)
rows = result.query(
"SELECT * FROM traceloom_v_position_occurrence WHERE position_id = ?",
("node-N003",),
)
result.export_perfetto("timeline.perfetto.json.gz")
# Reopen without re-running analysis.
existing = traceloom.AnalysisDatabase(Path("analysis.db"))
query() uses a read-only SQLite connection, parameter binding and a default
1,000-row limit. Larger results raise rather than silently truncate: narrow the
query or set limit= explicitly. This is a local analysis API, not a service
for arbitrary untrusted SQL. Native errors raise traceloom.AnalysisError with
returncode, command and a bounded diagnostic_tail. Missing inputs, invalid
arguments and subprocess.TimeoutExpired remain their ordinary Python types.
The native process is isolated from the interpreter; structural recovery and
source protection use exactly the same implementation as the CLI.
Runtime collection, then offline analysis
In an existing compatible vLLM environment:
export TRACELOOM_CONTEXT_DIR=./traceloom-context
export TRACELOOM_RUN_ID=inference-study-001
vllm serve /path/to/model --async-scheduling \
--scheduler-cls traceloom.vllm.TracingAsyncScheduler
This patch-free entry records scheduler metadata only. It does not associate
device execution. For that separate mode use traceloom.vllm.LinkedTracingAsyncScheduler
plus the explicit transport-worker.patch from the
integration guide.
The original traceloom_vllm_scheduler.* class paths remain supported.
Synchronous scheduling uses the corresponding TracingScheduler or
LinkedTracingScheduler and omits --async-scheduling.
After the ordinary profiler capture and context producers have closed:
from pathlib import Path
import traceloom
result = traceloom.analyze(
"profile.db",
output="step-analysis.db",
context=sorted(Path("traceloom-context").glob("*.jsonl")),
rules_config=traceloom.bundled_rules("scheduler-step"),
)
result.export_perfetto("step-timeline.perfetto.json.gz")
Step-constrained recovery requires supported execution-linked evidence,
not scheduler-only metadata. It currently supports eager grammar recovery, not
protected replay or simultaneous marked-structure projection. Independently,
bundled_rules("deepseekv4") provides model-unit hints; it is not automatic
semantic inference for every model. Missing and ambiguous links remain explicit.
The observer is experimental. Live collection validation is bounded to
Qwen3-0.6B TP1/eager, in-process V1, vLLM 0fc695fc and Ascend f4a08bdd.
Different versions need source-contract checks. Graph/distributed collection,
universal membership completeness and recording overhead are not qualified.
Capturing metadata adds host work. The native analysis runs after capture, not
inside the scheduler hot path. Restart without the custom scheduler class to
remove the adapter; unset TRACELOOM_CONTEXT_DIR to disable recording.
Metadata
Release files for traceloom 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| traceloom-0.1.0.tar.gz | 624.6 kB | Without provenance | Details for traceloom-0.1.0.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| traceloom-0.1.0-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details for traceloom-0.1.0-py3-none-manylinux_2_28_x86_64.whl |
| traceloom-0.1.0-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details for traceloom-0.1.0-py3-none-manylinux_2_28_aarch64.whl |
Total release size: 6.2 MB
Release files / traceloom-0.1.0.tar.gz
| Download URL | traceloom-0.1.0.tar.gz |
|---|---|
| Size | 624.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92990330e0040ea73070ba6a64ca50c29a1ad5f3f2d480975bf384f63498bd29
|
|
BLAKE2b-256 checksum How to use checksums |
84a3310dc4087a79e30a6c9c7b98710c313cf22082f539656a5a0fbdeb1e71b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / traceloom-0.1.0-py3-none-manylinux_2_28_x86_64.whl
| Download URL | traceloom-0.1.0-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
6f51e04439aca153a1ef811ed201983991297237b9a562ea4b98b33587a641ce
|
|
BLAKE2b-256 checksum How to use checksums |
1a34a1c53eea5d0df8b63c90781f1f8f53c738bd6ee5c6db0708ab01959489c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / traceloom-0.1.0-py3-none-manylinux_2_28_aarch64.whl
| Download URL | traceloom-0.1.0-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
ab57cad4ac256572e2dbe07b63aa178266ebe51f5b17a4f134805426971e3ec1
|
|
BLAKE2b-256 checksum How to use checksums |
30a1ddb3c3f05b6fd06a4ebc9cbdb9c4d93cf88cc609a40b07de7f45d5803d3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for traceloom 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.