Skip to main content

TracerLL

TracerLL is a Python package with C++ extension modules for high-performance embedded tracing control.

The native code is built with CMake through scikit-build-core and pybind11. USB serial transport and COBS framing are implemented in C++, so Python users read and write decoded message payloads directly. Incoming frames that exceed the receive limit are discarded through the next delimiter to restore framing.

Requirements

  • Python 3.12 or newer (CI tests 3.12–3.15 on Linux, and 3.15 on macOS/Windows)
  • CMake 3.16 or newer
  • A C++20 compiler
  • Git, used by CMake FetchContent to fetch IntegralMotions/IntegralCommunication

Python build dependencies are declared in pyproject.toml and installed by pip during build isolation.

Create A Development Environment

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install pybind11 scikit-build-core pytest build

You can also install the same development dependencies through the Makefile:

make setup

Build And Install

Install the package into the active environment:

python -m pip install .

For local development, use editable mode:

python -m pip install -e .

Both commands build the C++ extension modules with CMake. The build downloads the pinned IntegralCommunication commit declared in CMakeLists.txt.

Run Tests

After installing the package into the active environment, run:

python -m pytest tests

The test suite covers:

  • Tracer object construction and basic API behavior
  • Embedded tracer protocol parsing and subscriptions

Virtual serial integration test

The integration test connects to the virtual trace device from IntegralEmbeddedTracing/examples. Start it with make example in that repository, then use its printed serial port here:

TRACER_SERIAL_TEST=1 TRACER_SERIAL_PORT=/dev/ttys016 python -m pytest -v tests/integration/test_serial_tracing.py

The port defaults to /dev/ttys016, but pseudo-terminal names can change; verify the printed path before running the test. This test sends commands, so do not run it against a real device or a port in use by another client. It is skipped during normal test runs unless TRACER_SERIAL_TEST=1 is set.

CI runs the normal test suite and a separate virtual-serial integration job on macOS, Linux, and Windows. The integration job checks out IntegralMotions/IntegralEmbeddedTracing at feature/add-integration-test-code and builds its example; that branch must include the serial example and Windows COM-port support. On Windows it installs a checksum-pinned com0com driver and uses a virtual COM pair. Driver installation and physical COM-port behavior depend on the runner and hardware respectively.

The Windows integration job also runs the native concurrency and buffer tests against that COM pair using pyserial for the test peer. To run them locally, install pyserial and set TRACER_TEST_PORT_A and TRACER_TEST_PORT_B to the two ends of an unused virtual COM pair before running python -m pytest -v tests/test_native_concurrency.py.

VS Code clangd

This project uses CMake FetchContent for IntegralCommunication. Configure CMake once so clangd can read the generated compile database:

python -m pip install pybind11 scikit-build-core
cmake --preset clangd

VS Code is configured to read:

build/clangd/compile_commands.json

After regenerating the compile database, restart clangd from the VS Code command palette with clangd: Restart language server.

Build A Wheel

To build a distributable wheel:

python -m pip install build
python -m build --wheel

The wheel is written to dist/.

Versioning

The package version is defined in one place:

[project]
version = "0.4.1"

Update the version field in pyproject.toml when preparing a release. CMake reads that value during configure, so the native build and Python package metadata stay in sync.

Usage

High-level trace client

EmbeddedTracer discovers scalar variables and starts tracing them using the current IntegralEmbeddedTracing protocol. Its transport handles COBS; the Python client validates protocol CRCs and interprets trace values.

from TracerLL import EmbeddedTracer

tracer = EmbeddedTracer("/dev/ttyUSB0", 115200)
try:
    tracer.connect()
    print(tracer.get_variable_config())
    tracer.subscribe("current_u", lambda value: print(value))
    tracer.start_trace(["current_u", "counter"])
    # Use tracer.values["current_u"] to read the most recent value.
    tracer.unsubscribe("current_u")
    tracer.stop_trace()
finally:
    tracer.close()

Callbacks run on a background reader thread and should return quickly. The client starts all discovered scalar variables by default, or the specified names (up to 64). All discovered names remain available in the configuration; values for unselected variables remain None until they have been traced. Call stop_trace() and then start_trace() to change the selection without closing the connection. Array tracing is not yet supported. This is a partial replacement for the old MotorDriverDesktop/Tracer client, whose legacy wire format is not compatible with the current protocol.

Low-level transport

from TracerLL import Tracer

tracer = Tracer.Tracer("/dev/ttyUSB0", 115200)

if tracer.start():
    tracer.write_message(b"hello")
    messages = tracer.get_messages()
    tracer.stop()

On Windows, pass the COM port name:

tracer = Tracer.Tracer("COM10", 115200)

Tracer.write_message(...) accepts bytes or a sequence of integer byte values. get_messages() returns lists of integer byte values. Message framing is COBS-based internally. On Linux, supported baud rates are 9600, 19200, 38400, 57600, 115200, 230400, 460800, and 921600.

The receive queue holds up to 1024 messages by default. Set the optional receive_queue_capacity constructor argument to change the limit. New messages are dropped when full; dropped_messages() returns a cumulative, saturating count. The count survives stop/start, while queued messages are cleared on start. EmbeddedTracer.dropped_messages() exposes the same count.

The native reader drains serial input in chunks of up to 64 KiB and briefly backs off when idle, rather than sleeping 5 ms between bursts. This reduces backpressure at high sample rates; actual throughput still depends on the transport and Python callback workload.

Configure that idle wait in either client constructor using idle_read_delay_us:

tracer = EmbeddedTracer("/dev/ttyUSB0", 115200, idle_read_delay_us=25)
# Or the native transport:
transport = Tracer.Tracer("/dev/ttyUSB0", 115200, idle_read_delay_us=1000)

The default is 100 microseconds. Lower values can reduce idle-to-read latency but consume more CPU; 1000 waits one millisecond to favor lower CPU usage. 0 enables busy polling and can consume an entire CPU core even without data. Accepted values are integers from 0 to 1,000,000 microseconds. The wait applies only when the native reader finds no data; it never delays between queued samples. The Python callback loop separately waits 1 ms when it has no messages, but drains consecutive nonempty batches without sleeping. OS scheduling determines the actual wake-up time. stop() wakes the idle reader immediately rather than waiting for this interval to expire. To change the setting, construct a new tracer.

write_message() returns True only when the complete encoded frame is accepted by the serial transport. A failure may leave a partial frame on the wire, so further writes fail until stop() and start(); the peer may also need to be reset or resynchronized. This does not guarantee peer delivery or processing. The high-level client raises OSError when a request write fails.

Concurrent writes and start/stop calls are serialized. Writes use a one-second deadline; stop() waits for an in-progress write and the reader thread. On Windows, an OS or driver that fails to complete cancellation may delay shutdown beyond the deadline. Coordinate shutdown with producers.

Modules

  • TracerLL.Tracer: USB serial tracer using COBS-framed communication.
  • TracerLL.EmbeddedTracer: high-level embedded tracing client.

Metadata

Release files for TracerLL 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for TracerLL 0.4.1
File Actions
tracerll-0.4.1-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details for tracerll-0.4.1-cp315-cp315-win_amd64.whl
tracerll-0.4.1-cp315-cp315-win32.whl CPython 3.15 CPython 3.15 Windows x86-32 Details for tracerll-0.4.1-cp315-cp315-win32.whl
tracerll-0.4.1-cp315-cp315-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ x86-64 Details for tracerll-0.4.1-cp315-cp315-musllinux_1_2_x86_64.whl
tracerll-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for tracerll-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
tracerll-0.4.1-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for tracerll-0.4.1-cp315-cp315-macosx_11_0_arm64.whl
tracerll-0.4.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for tracerll-0.4.1-cp314-cp314-win_amd64.whl
tracerll-0.4.1-cp314-cp314-win32.whl CPython 3.14 CPython 3.14 Windows x86-32 Details for tracerll-0.4.1-cp314-cp314-win32.whl
tracerll-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for tracerll-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl
tracerll-0.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for tracerll-0.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
tracerll-0.4.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for tracerll-0.4.1-cp314-cp314-macosx_11_0_arm64.whl
tracerll-0.4.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for tracerll-0.4.1-cp313-cp313-win_amd64.whl
tracerll-0.4.1-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details for tracerll-0.4.1-cp313-cp313-win32.whl
tracerll-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for tracerll-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl
tracerll-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for tracerll-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
tracerll-0.4.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for tracerll-0.4.1-cp313-cp313-macosx_11_0_arm64.whl
tracerll-0.4.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for tracerll-0.4.1-cp312-cp312-win_amd64.whl
tracerll-0.4.1-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details for tracerll-0.4.1-cp312-cp312-win32.whl
tracerll-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for tracerll-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl
tracerll-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for tracerll-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
tracerll-0.4.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for tracerll-0.4.1-cp312-cp312-macosx_11_0_arm64.whl

Total release size: 7.9 MB

Release files / tracerll-0.4.1-cp315-cp315-win_amd64.whl

Download URL tracerll-0.4.1-cp315-cp315-win_amd64.whl
Size 309.9 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
05a8358b504ee99fe533ea89192bd76d7fa39249204e82e29d7bf863f99d5436
BLAKE2b-256 checksum
How to use checksums
acc1cc88098ec961b7fa7bd618fed3b856d99aef84eba26e07174a07110b6c3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp315-cp315-win32.whl

Download URL tracerll-0.4.1-cp315-cp315-win32.whl
Size 293.2 kB
Tags CPython 3.15 Windows x86-32
SHA-256 checksum
How to use checksums
16e7815d94ddd79019f3a7af2172921ad5bf629cb208d9fcd39e7503ee67eca5
BLAKE2b-256 checksum
How to use checksums
4544dbe362648310358f42cf7385a77659b8f3e6ffe53ff36a0f465535685f68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp315-cp315-musllinux_1_2_x86_64.whl

Download URL tracerll-0.4.1-cp315-cp315-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.15 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2087ff318ed76649758c39fbdae18dac1dc6daecab292501f6c5945fb0b92d8d
BLAKE2b-256 checksum
How to use checksums
a2773d92c096d9e7bdb06585c4d5dd208bc4135f24b1ece0c31b2e6ea36eba87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tracerll-0.4.1-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 120.4 kB
Tags CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
db62a54211fbfa4a60e689760b15f0b6aaf2d186597c5e25b11452427bcb6276
BLAKE2b-256 checksum
How to use checksums
b757af910d51fb66a7de769231c25a2aa251c26e234759f5c817fb79b53a54e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp315-cp315-macosx_11_0_arm64.whl

Download URL tracerll-0.4.1-cp315-cp315-macosx_11_0_arm64.whl
Size 97.5 kB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c865c9a7383350071220da3ef0bfab3765d001b7d3417d7b66ebef864561b854
BLAKE2b-256 checksum
How to use checksums
60fbd62c0b8cda17f41a6114b87bfc0a04ca8466653531a7ca6825f7fda885e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp314-cp314-win_amd64.whl

Download URL tracerll-0.4.1-cp314-cp314-win_amd64.whl
Size 309.9 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
066ff20de17bbc507295a34cc54174e25cf49a8b04b697ddaa521dc1aa34a754
BLAKE2b-256 checksum
How to use checksums
dbfddddc2d83bcfc4ca3c87c0c7c77e83047b5ab9beeddca85510a3778c20413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp314-cp314-win32.whl

Download URL tracerll-0.4.1-cp314-cp314-win32.whl
Size 293.4 kB
Tags CPython 3.14 Windows x86-32
SHA-256 checksum
How to use checksums
c4b02c2108414563707fa453b17d6ae1337e280c0b57fc6cdf7f7726b6fee0d7
BLAKE2b-256 checksum
How to use checksums
995c2cb49abfc80f554c76694dc5a24305a24dc156166520ff5ae2324f135eb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL tracerll-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2fe50f5c759259d77c406278dfe9ea9c421b1e6990e83ff1e6ea7dd398d58669
BLAKE2b-256 checksum
How to use checksums
8b03021bd77c8f363cc085fc54e71cde51a40765988794d1cf36b4addaf4c28c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tracerll-0.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 120.4 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
851f0abd07667b3ea81ba44ea9a1f9e339c09dd7f57017427f50c4173d226637
BLAKE2b-256 checksum
How to use checksums
3395425852a19fe4c962720370d1e179a7f39bf7d3b27176277e45561e50676f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL tracerll-0.4.1-cp314-cp314-macosx_11_0_arm64.whl
Size 97.5 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
29c39e493b9cd4de59018c77e3ebfaf5b869334184d19bb578c9a38cb4fc48f1
BLAKE2b-256 checksum
How to use checksums
30da080eb5770dea7d6340facb8b1a7f8bd6cc0e50c946fd9847288661b573d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp313-cp313-win_amd64.whl

Download URL tracerll-0.4.1-cp313-cp313-win_amd64.whl
Size 300.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
815752400ad3639ec86b1805f42361ccb45ade2d536ba9c194e270016980303f
BLAKE2b-256 checksum
How to use checksums
c24cfca19504da6dba791bda5ffa3d8bcd5107ea19aa62e8a1c26a75d4b8d5b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp313-cp313-win32.whl

Download URL tracerll-0.4.1-cp313-cp313-win32.whl
Size 285.8 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
ba80f3c97b82b1ca203852267bd317f56cfac680dfd43e993493ac8e3df2b53d
BLAKE2b-256 checksum
How to use checksums
6519d8a13b049feb04867b622e5d99d3e125fb7f660cfa399c1f1eaa454be8f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL tracerll-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b7c74fddc9ab26ccf85f2816812303be6bda7f90ea0be3047d2d78fe090ca19f
BLAKE2b-256 checksum
How to use checksums
82df3c9447a8e71af801bd5717b9480c2dbbf5dd62bf05b2cc4ca5c3164b368f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tracerll-0.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 120.4 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f86f45aa7209a4b0c0300f17317b5929f5b188fc90125438e7f0ca9ec0d79c19
BLAKE2b-256 checksum
How to use checksums
e24eccaabf30735ba2d752ae4ec7c3ff46435d3aeac3939391329f15f17bb2c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL tracerll-0.4.1-cp313-cp313-macosx_11_0_arm64.whl
Size 97.3 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b4c241804ab5161308af08dfed49779595ab1a4de22bd7000ba420e26ad5451b
BLAKE2b-256 checksum
How to use checksums
e622436ab02ca7bd1cd0af75340655b80490949d53e26cbb10a89c0874856d96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp312-cp312-win_amd64.whl

Download URL tracerll-0.4.1-cp312-cp312-win_amd64.whl
Size 300.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ff5b4f8f218fc4e52127ad920ed2412497313f89552e0c12d1f9f23b5283f634
BLAKE2b-256 checksum
How to use checksums
b878cdc7e264d539902f60b01470e2ad1e3ecce55f9f406a64ea00eb2eb94623
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp312-cp312-win32.whl

Download URL tracerll-0.4.1-cp312-cp312-win32.whl
Size 285.7 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
d5d31803ab6b23ca344128ad0d870887b97c503be05cf8613cec36bfe3d4db2b
BLAKE2b-256 checksum
How to use checksums
ab6162d802afc6a70a29c4d178d6d64f72ce2f999fda90f5b80b2e65031c66f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL tracerll-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
664de9b547e373d3ab23fe8f51f95309be0b781c07a93924e8462a7e3473aef2
BLAKE2b-256 checksum
How to use checksums
a37eec317bb2fb797170dec582edfc08608e8272046f3cf632c652ae563758f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tracerll-0.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 120.3 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d48f4879c089a120a0928eada060f3dfd6a197a4cc18af4d7403bc596ce68a3f
BLAKE2b-256 checksum
How to use checksums
5c245c0fb5a2b462bcb543a09ed84295bbe5887b9def3018ab21b049ea245b5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / tracerll-0.4.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL tracerll-0.4.1-cp312-cp312-macosx_11_0_arm64.whl
Size 97.3 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
18c6cfef8e3f64abc5e072ff0e09f498553880452e83568531a5ba57defa3f1a
BLAKE2b-256 checksum
How to use checksums
41a66d2814f2d9bbba22076682b580d2583ef39101736e2906b56462b87d4f64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.15.1

Security for TracerLL 0.4.1

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page