ledfx-senders
Native packet senders for Python applications, maintained by the LedFx organization. The distribution contains its Rust engine, Python buffer normalization and E1.31 setup codec. It has no LedFx application imports or dependency. NumPy is its only runtime dependency.
from ledfx_senders import E131Sender, Frame
from ledfx_senders.e131 import ChannelLayout
sender = E131Sender(ChannelLayout(300), destination="127.0.0.1", source_name="example")
frame: Frame = bytes(300)
try:
sender.send(frame)
finally:
sender.close()
Frame is the shared input type for all protocols: bytes, bytearray,
memoryview, or numpy.typing.NDArray[numpy.generic]. Each protocol keeps its
own shape, numeric validation and conversion rules.
Import sender classes from the package root: ArtNetSender, DDPSender,
E131Sender, NanoleafSender, OPCSender, OSCSender, and UDPRealtimeSender.
Each implementation lives in its protocol module: artnet, ddp, e131,
nanoleaf, opc, osc, or udp_realtime. Shared frame typing lives in
frames; private helpers hold shared sender mechanics and scalar validation.
The former packet_senders module retains compatibility exports for its five
sender classes. Import E1.31 ChannelLayout from ledfx_senders.e131;
e131_buffer contains the low-level packet banks and normalization helpers.
ChannelLayout counts channels, not RGB pixels. send owns a snapshot before
native conversion and submission. Callers must not mutate an input while its
snapshot is being taken. Call service regularly for idle refresh and discovery.
close is idempotent and sends protocol termination for used universes.
The wheel matrix targets CPython 3.11–3.15 and free-threaded 3.14t–3.15t.
Free-threaded 3.13t is unsupported by PyO3 0.29; its build guard is preserved.
See the PyO3 changelog (#5865).
The build matrix verifies the library independently; it does not assert that the
LedFx application's other dependencies support every interpreter. The private
_native binding and _test_* methods are implementation and diagnostic APIs.
Installation and development
Applications consume the separately published Python package. To require a compatible wheel and prevent a fallback Rust source build:
python -m pip install --only-binary=ledfx-senders ledfx-senders
This command requires a published version with a wheel for your interpreter and platform. Release configuration does not itself mean a release exists; check PyPI for availability. Application repositories do not need Rust, a source checkout, or a build bootstrap script.
The supported wheel targets are Linux x86-64 and AArch64 (glibc), Windows x86-64,
and macOS Intel and ARM64. There are no Windows ARM64, 32-bit ARM/x86, or musl
wheel targets. A wheel must match both the Python ABI and platform; free-threaded
Python uses its separate t ABI. Wheels include py.typed and _native.pyi for
type checkers, and installed-wheel tests check that both files are distributed.
Contributors building this repository need Rust 1.94.0 (pinned in
rust-toolchain.toml) and a host C linker/toolchain. Builds use PDM's setuptools
hook with setuptools-rust and locked Cargo dependencies, not a workspace in the
LedFx application. From the repository:
rustup toolchain install 1.94.0 --profile minimal
uv sync --locked --group dev
uv run --locked --group dev python -m pytest tests ci
uv run --frozen --only-group dev --python 3.12 python ci/check_types.py
uv run --frozen --only-group dev ruff check .
uv run --frozen --only-group dev ruff format --check .
uv run --frozen --only-group dev prek run --all-files
uv build
The sdist contains the Rust sources, locked Cargo dependencies, build hook,
independent protocol fixtures, tests and CI scripts. It builds outside a LedFx
checkout. ci/native_wheel_smoke.py runs with isolated Python against an installed
wheel and restricts network tests to loopback. Benchmark scripts are development
tools, not installed public APIs; their measurements are not release gates.
Repository automation
The independent CI builds 35 portable wheel combinations: seven CPython variants (3.11–3.15, 3.14t and 3.15t) across Linux x86_64/ARM64, Windows AMD64, and macOS Intel/ARM64. Installed tests require the native engine, block LedFx imports and restrict network traffic to loopback. Free-threaded variants assert that NumPy and the binding leave the GIL disabled, including concurrent sender operations. The source distribution is rebuilt and tested outside a source checkout. The CI run for the release-workflow checkpoint passed the complete portable matrix. Each new commit must pass its own applicable checks; the workflow definition alone is not evidence that a build passed.
Strict Pyrefly checks every maintained Python file and stub, including package
source, tests, CI scripts, the PDM build hook and receiver checks, without a
baseline or suppressions: uv run --frozen --only-group dev --python 3.12 python ci/check_types.py.
Recursive project globs include future directories; generated, hidden and virtual
environment directories use the checker defaults. Ruff enables the complete ANN
rule family to require parameter and return annotations and reject explicit Any.
A regression inserts untyped files across those directories and verifies that
both gates reject them. These are static-checking guarantees, not a measured
percentage of expression-level type coverage. NumPy and setuptools-rust are in
the dev group so the gate resolves array and build-hook types without compiling
the native library.
Installed runtime jobs create their environments and run under the runner temp
directory, while referring to scripts and fixtures by absolute checkout paths.
Renovate inherits LedFx/renovate-config; versions are locked for development.
Release Please maintains Python, Rust and lockfile versions together on canonical
main, using the existing automation App to create the release PR, version tag
and draft release. Merging its release PR is the release action: the tag push
runs .github/workflows/ci.yml. An early guard requires the tag, project,
Python package, Rust package, lockfiles and release manifest versions to agree.
All five platform builds, 35 installed-wheel variants and source/native checks
must pass before publishing the same run's sender-dist artifact to PyPI.
One queued publication job calls the SHA-pinned
shared release transaction, using the exact
generated native wheel plan and existing pyproject.toml metadata. It validates archive
metadata, tag/source identity and matching remote hashes before upload, verifies
GitHub provenance against this repository's ci.yml, then finalizes the existing
draft by immutable ID last. Publication never rebuilds packages. PR, branch and
manual validation cannot publish, even when manually validating a tag.
PyPI trusted publisher identity remains owner LedFx, repository ledfx-senders,
workflow ci.yml, environment pypi. OIDC id-token: write is scoped to that
caller job; the shared composite does not move publication into another workflow.
The scoped automation App token permits GitHub contents/attestation writes.
No package API token or hidden enable variable is required.
Matching partial uploads can resume from the original run after SHA-256 checks; conflicts, missing drafts and unexpected assets fail without clobber or fallback release creation. Higher stable drafts/public releases block latest promotion; an abandoned newer draft can delay latest while older version publication remains possible. Retained snapshots and attestation bundles support inspection/retry. Use the shared recovery guide and rerun failed jobs from the original run rather than rebuilding a version. If the failure requires changing a pinned action or workflow, publish a new patch version from the repaired workflow instead; a rerun retains the original source and action pins. Leave the failed version's tag and draft unchanged. This migration does not retroactively attest earlier releases. Source provenance records the original repository and benchmark evidence.
macOS wheel deployment targets account for both Rust and Python: Intel starts at 10.12 for CPython 3.11, 10.13 for 3.12–3.13, and 10.15 for 3.14+; ARM64 starts at 11.0. These are build targets, not claims that every optional application or NumPy version runs on every older OS. Cibuildwheel repair and installed tests must pass before a platform is considered validated.
The private _TestLockGate and Engine._test_hold_lock diagnostics let tests
hold the real engine mutex with a five-second native deadline. Python controls
a separate release signal; send/service/close still use their normal lock
acquisition paths. This verifies GIL cooperation under mutex contention, not a
throughput claim or a scheduler-dependent number of heartbeat ticks. Production
frame processing never consults the gate. The helper drops its guard before
reattaching to Python, including on timeout.
DDP and OPC
from ledfx_senders import DDPSender, OPCSender
sender = DDPSender(300, destination="192.0.2.10", destination_id=1)
sender.send(bytes(300))
sender.close()
opc = OPCSender(100, destination="192.0.2.10", channel=0)
opc.send(bytes(300))
opc.close()
Each sender owns its UDP socket and synchronously sends a complete frame under a single 200 ms socket deadline. DDP uses 1440-byte payload chunks, a final PUSH, and sequences starting at 2 and wrapping through 1–15. OPC sends one datagram; its maximum is 21,834 RGB pixels (65,506 bytes including the header).
Both accept unsigned-byte buffers and NumPy arrays, including strided arrays.
Byte buffers are channel bytes, not pixels. OPC arrays must have shape
(pixel_count, 3); finite values clamp to 0–255 and truncate. DDP truncates finite floating values in
[-2**31, 2**31) toward zero then takes modulo 256; finite floating values outside
that interval produce zero. Integer inputs use exact modulo 256. This policy is
identical across input formats and supported processors, preserving original
precision at the cutoff (including longdouble). Compatibility correction:
historical NumPy float-to-uint8 casts outside the byte range had platform-dependent
undefined results; these are now deterministic, not promised to match those
historical casts. Normal 0–255 channel conversion remains unchanged. Nonfinite values are rejected
before packet or sequence mutation. Inputs are copied into owned native storage
before detached work; callers must not mutate a frame during its input copy.
Close is serialized with send and is idempotent. A closed sender rejects sends. DDP advances
its sequence once per validated send attempt, including a socket failure before
any packet is accepted. Invalid input does not advance it, and a failed payload
does not replace the committed frame. Do not assume sequence rollback semantics
are identical across protocols.
Float conversion for DDP, E1.31 and OPC validates every value while using AVX512F/DQ/BW/VL or AVX2 on supported x86-64 CPUs, SSE2 on other x86-64 CPUs, or NEON on AArch64 (including Apple Silicon). AArch64 uses measured policy/dtype choices: explicit NEON for DDP and E1.31 float64, compiler-vectorized loops for E1.31/OPC float32, and a compiler-optimized OPC float64 loop with SIMD validation and scalar conversion. Runtime feature checks guard each specialized kernel. Other targets retain a portable scalar implementation; ARM32 is not a supported wheel target and has no promised SIMD float64 path. The compile-time policy specializations preserve DDP wrapping, E1.31 strict (-1,256) rejection, OPC clamp/truncate, nonfinite rejection and whole-frame atomicity. There is no public unchecked input option.
Manual SIMD validation and measurements runs native kernel equivalence tests
and matched scalar/SIMD conversion measurements on Linux x86-64/ARM64, macOS
Intel/ARM64 and Windows x86-64. It neither publishes nor releases anything.
It reports separate conversion-only kernels and public-facade whole-call pairs.
Kernel timings exclude the owning snapshot, packet packing and Python boundary;
whole-call timings include them. Neither is network or physical-device throughput.
See native/bench/receiver/README.md for independent delivered-frame measurement.
Stateful OSC and UDP realtime
OSCSender supports One_Argument, Three_Arguments, Three_Addresses and
All_To_One, with Python path.format(address=...) expansion at construction
and starting_addr. Call send(frame, now=time.monotonic()) and close().
UDPRealtimeSender supports DRGB, WARLS, DRGBW, DNRGB, adaptive and raw RGB modes;
its keepalive_interval accepts the application's configured refresh threshold.
The default interval is half the timeout. Eligibility uses strict elapsed-time
comparison and all chunks of a DNRGB refresh are sent together.
Both senders own their snapshots and UDP sockets. Callers must not mutate input
during send. Input is an RGB ndarray of the configured shape or contiguous
unsigned byte buffer. There are no retained caller aliases or channel objects.
Unsuccessful submissions retain the previous successful suppression state;
accepted datagram counters still include the prefix accepted by the socket.
Every frame shares the existing 200 ms socket-work budget. Close sends no
protocol termination traffic and releases the socket synchronously.
Original values determine equality and WARLS deltas before quantization.
Equal numeric values across dtypes, including positive and negative zero,
compare equal. Extended floating precision is retained. Comparison is exact,
so uint64(2**64-1) differs from float64(2**64) even though NumPy's mixed
comparison may round the integer. This deliberately corrects lossy historical
suppression. First valid frames are always sent.
OSC uses a portable signed 64-bit domain: finite floating originals in
[-2**63, 2**63), and integers within signed 64-bit bounds. It truncates toward
zero, converts the integer to float64, divides by 255, then writes big-endian
float32. It does not clip to RGB byte bounds. Nonfinite/out-of-domain values
raise ValueError before persistent wire buffers, counters or datagrams change.
This explicitly replaces platform-dependent historical NumPy integer casts.
Realtime encoding follows the documented deterministic DDP conversion contract;
that encoding does not change original-value comparisons.
OSC validates every formatted path and UDP's 65507-byte payload ceiling during construction. Realtime limits remain DRGB490, WARLS255, DRGBW367 and raw500; unsupported configured sizes fall back to DRGB or DNRGB. DNRGB admits at most 65536 pixels, with 489 pixels per chunk, and adaptive ties choose DRGB.
On x86_64, measured f64 OSC conversion uses runtime-guarded AVX512F/DQ/BW/VL, then AVX, with portable compiler code on older CPUs. Original f64 delta masks use measured AVX2 or compiler code; the mask preserves three-channel pixel boundaries and signed-zero equality. Realtime reuses the existing DDP SIMD policies. No global host CPU build flags are used. Native Linux AArch64 paired measurements select NEON OSC conversion; Apple Silicon retains its faster compiler route. A NEON original-mask candidate is measured independently before production selection. Other dtypes and mixed/extended precision have exact portable implementations. Hosted SIMD jobs test and measure candidates without silently enabling an unmeasured architecture path.
For OSC, an owned common typed snapshot equal to the last successfully validated snapshot of the same dtype can suppress before repeating normalization. Shape and closed-state checks still happen first. Rare and cross-dtype inputs retain full validation before comparison; realtime refresh also retains conversion so failed attempts cannot contaminate a later keepalive. Static OSC can still cost more than the former borrowed-array equality check because snapshots are owned.
Art-Net
ledfx_senders.ArtNetSender owns a synchronous IPv4 UDP socket
and caches the complete ArtDmx layout. Its keyword configuration is
destination, port, universe, packet_size, even_packet_size,
dmx_start_address (one based), pixel_count, pixels_per_device, pre_amble
and post_amble (bytes), rgb_order, white_mode, and broadcast.
send(frame) accepts the configured RGB shape or an unsigned-byte buffer.
All six RGB permutations and None/Zero/Brighter/Accurate white modes are supported.
The logical universe stride remains packet_size (1–512). Wire payloads have a
minimum of two bytes and round up to even when requested; added bytes are zero,
never borrowed from the next logical universe. This repairs the former size-1
and odd-plus-even cases that silently submitted mismatched buffers to the legacy
library. Odd payload lengths with even_packet_size=False and the original
0–255 packet sequence cycle remain compatibility modes, not a claim of strict
Art-Net conformance. Addresses cover the full 15-bit range; the entire span must
fit. Start offset precedes the whole layout, ambles repeat per complete device
group, and an incomplete final group is omitted. All input channels are validated.
White extraction/subtraction precedes byte conversion at original precision.
Integers preserve exact minimum and original-width subtraction's low byte,
including signed overflow. Floats truncate modulo 256 in [-2**31, 2**31);
other finite values become zero. Nonfinite input or arithmetic output rejects
atomically. This defines previously platform-dependent out-of-range NumPy casts.
Bool Accurate subtraction raises TypeError. Common formats use native arithmetic;
float16 and longdouble use bulk NumPy arithmetic at original precision followed
by deterministic byte normalization. Byte order conversion preserves float width.
A send has one 200ms transport deadline. Accepted packets advance sequence;
unsent packets do not, and only a complete frame replaces committed state.
close(blackout=True) waits for any current frame, then uses a separate 200ms
cleanup budget to clear every configured universe, including ambles and
padding. It always closes after partial/failed cleanup; diagnostics are retained.
Repeated close is harmless and subsequent sends fail. Waiting for an in-flight
send plus cleanup can therefore exceed 200ms. close(False) omits blackout.
Vendor encoders and Nanoleaf
ledfx_senders.encoders provides encode_adalight(frame, color_order),
encode_openrgb(frame, device_id), encode_hue(frame, entertainment_id, channel_ids, sequence), and encode_govee(frame, stretch). Each returns owned
bytes; the caller keeps its serial, OpenRGB v3 TCP, Hue DTLS or Govee shared
socket session. RGBGather(permutation).encode(frame) caches an immutable RGB
permutation for SDK-owned streaming; it does not implement SDK transport.
For example, encoding bytes does not open or negotiate a device session:
from ledfx_senders.encoders import RGBGather, encode_adalight, encode_openrgb
frame = bytes([255, 0, 0, 0, 128, 255]) # two RGB pixels
serial_packet = encode_adalight(frame, "RGB")
openrgb_packet = encode_openrgb(frame, device_id=0)
reordered_rgb = RGBGather((1, 0)).encode(frame)
Callers negotiate OpenRGB protocol v3 and write the result to their own session. All encoders take an owned snapshot; callers must not mutate input while the snapshot is taken. Hue accepts 1..256 channels and RGBGather accepts 1..1,000,000 pixels with a complete immutable permutation.
Inputs are RGB ndarrays of shape (N, 3) or contiguous unsigned byte buffers.
Strided arrays are normalized; complex/object/structured arrays are rejected.
Adalight, OpenRGB, Govee and RGBGather preserve integer low bytes. Finite floats
in [-2**31, 2**31) truncate toward zero then wrap modulo 256; finite values
outside this domain become zero. This explicit exceptional-float policy replaces
platform-dependent NumPy casts. Nonfinite values fail before output. Hue instead
requires integers 0..255 or floats strictly between -1 and 256. Its first
nonfinite channel retains Python int exception precedence: NaN -> ValueError,
infinity -> OverflowError, even after an earlier finite out-of-range channel.
Hue IDs are a 36-character ASCII UUID and unique u8 channel IDs. The application
keeps its existing sequence policy; this encoder accepts any u8 sequence.
Adalight supports 1..65536 pixels and writes N-1 in its count field, as decoded by Adafruit's original receiver. This corrects LedFx's former N header. OpenRGB supports 1..65535 pixels and u32 device IDs. Explicit little-endian UPDATELEDS fields match the current v3 session and supported little-endian fleet; upstream native memcpy does not establish a cross-endian protocol guarantee. Govee supports 1..255 segments with LedFx's existing reverse-engineered BB00FAB0/XOR/base64/JSON representation. Encode speed is not serial baud rate, encrypted-session throughput or physical-device FPS.
ledfx_senders.NanoleafSender(destination=..., port=..., version=..., panel_ids=(...)) owns UDP output and provides send(frame) and close().
Panel IDs must be unique and frame size must match the immutable layout.
V1 allows 1..255 panels with u8 IDs; v2 allows 1..8188 with u16 IDs, limited by
the 65507-byte IPv4 UDP payload ceiling. Values clamp to 0..255 and truncate;
nonfinite input rejects atomically. Large finite values clamp rather than relying
on a signed-integer cast overflowing. V1 emits the documented nFrames=1 byte,
correcting LedFx's former zero, with white=0 and transition=1. V2 retains
white=0 and transition=0. REST activation and HTTP animation remain with callers.
The manufacturer's API documentation
(version 8, 2026-07-08) recommends streaming no faster than 10 Hz; benchmark CPU
capacity is not a firmware or hardware-rate claim. Large datagrams are tested
for encoding bounds separately from small loopback delivery.
The encoders reuse the validated float-conversion dispatch. Accepted portable packing routes use preallocated output at 128+ pixels for non-identity Adalight orders on tested Linux/Windows/macOS x86-64 and Linux/macOS ARM64, and for OpenRGB except macOS x86-64. Adalight's RGB order uses a generic identity copy, avoiding an unnecessary permutation. Art-Net caches a short-copy route for groups of at most 32 channel bytes on those x86-64 platforms. Ordinary/long spans, ARM64 Art-Net, small vendor frames and unmeasured architectures retain reference packing. These are compiler loops, not new explicit ISA intrinsics.
The calibrated five-platform whole-call run retained paired distributions and unchanged controls. It supports those conservative categories, not an optimal 128-pixel crossover or a win in every cell. Small differences within shared-runner variation remain inconclusive; losing and near-equal observations are retained. Hosted Adalight permutation measurements used BRG; subsequent RGB cases are labeled separately. No 32-bit ARM execution or performance validation is claimed.
Owning snapshots, shape/numeric validation and conversion have a cost. A brief matched LedFx default-RGB check at 50,000 pixels found uint8 near parity after the identity-copy repair, but float64 throughput remained about 0.38 times the historical NumPy encoder. This is a retained regression, not a sustained whole-application result. The compared contracts differ in validation and ownership; individual cost shares were not isolated. No blanket speedup is claimed for every dtype, frame size or caller.
The benchmark-only ledfx-receiver ddp-structural <pixels> <portable|batched> <loopback-address> receives arbitrary RGB effect data without modifying it.
Its stdin accepts snapshot and stop; each stdout JSON snapshot contains
cumulative packet/byte/push/structurally-complete/invalid counters, monotonic
elapsed seconds, CPU time where available, and kernel socket drops where
available. Rates use the difference between the receiver's two snapshot times.
Assembly state persists across snapshots, so a completion can include a frame
started just before the interval. The 4-bit DDP sequence cannot establish unique
frame identity across wraps or reordered traffic. Incomplete-assembly and gap
counts are events, not uniquely identified lost frames. Final stop counts any
remaining pending assembly once as an incomplete event. The original golden
fixture receiver remains available for exact byte/identity validation.
Hosted route measurements freeze both wheels, measured Rust executables, loaded facades/extension, source archives and SHA-256 manifests before measurement and verify them afterward. Public-facade whole-call pairs compare an immutable 12d9030 control with this candidate, including tiny/cutover/ordinary layout controls; these are distinct from sustained application transport measurements.
Wheel support is maintained in [tool.cibuildwheel]; platform rows live in
[[tool.release-ci.targets]] in pyproject.toml. Update the single wheel-build
cibuildwheel dependency pin and uv.lock together. Planning and builds use that
locked tool and configuration; publication rejects missing platform coverage.
Metadata
Release files for ledfx-senders 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ledfx_senders-0.3.1.tar.gz | 152.2 kB | Details |
Built distributions (wheels)
Total release size: 38.1 MB
Release files / ledfx_senders-0.3.1.tar.gz
| Download URL | ledfx_senders-0.3.1.tar.gz |
|---|---|
| Size | 152.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
75264aa351b4003439b1275bedbaf8a25d06f1c05dde27fde094c83b730dbbd6
|
|
BLAKE2b-256 checksum How to use checksums |
0a37a988d3f931af2e9403625504648f87969f98fe96b254f0c4a96da72f94fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315t-win_amd64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315t-win_amd64.whl |
|---|---|
| Size | 293.6 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b7b66c3228c6251ff9e305b9ddb6f30e84cc29a38e5f8a735e514413567d1836
|
|
BLAKE2b-256 checksum How to use checksums |
a49d5b6935075cbcdb7074784dceb81148536cf5793c1658ecf7941b56e5bc5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315t-manylinux_2_28_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
60c80d887a2576b7fd406632e787a2cde660b591f773410a6bc411e09d41289c
|
|
BLAKE2b-256 checksum How to use checksums |
710fd0f569f2a2ea07a7e8ddd35ed4a6542143f3ceedad269da06300762b9862
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315t-manylinux_2_28_aarch64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
81523cf5bbe0c58973d3397f04b575f1a11001b6c8ae32a9b2abc86e021a666c
|
|
BLAKE2b-256 checksum How to use checksums |
83345112e324d2e8999e9d4c92573be75640f0aad60e905bf3cd6d5d60b53d9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315t-macosx_11_0_arm64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315t-macosx_11_0_arm64.whl |
|---|---|
| Size | 408.5 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
50f7ed7f96dfbf2217943e3690fd81189096f174be707dc8aff348fe7370c8e2
|
|
BLAKE2b-256 checksum How to use checksums |
f62ab4a7b62450f76b5de87895444b55ef721bec46e7387ddf47b2ad1f078dcf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315t-macosx_10_15_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315t-macosx_10_15_x86_64.whl |
|---|---|
| Size | 419.5 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
2d911fd8dca1cf6556d89b091aa654f33909b206a5cf0ffd2f1e7a157ba97754
|
|
BLAKE2b-256 checksum How to use checksums |
ff805837d869b0e021be861529f3d7fe330c2c13395c8aa3bbc3ffcb89e3bf60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315-win_amd64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315-win_amd64.whl |
|---|---|
| Size | 290.4 kB |
| Tags | CPython 3.15 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
db1df02199781c34a306325d9e57c506aa11635ec79171cb8d85bbbec90c49bf
|
|
BLAKE2b-256 checksum How to use checksums |
c302c8dd01965574550a76c1f77f694d90bc972fdfdc89482954437efa938eb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315-manylinux_2_28_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1d1628da1f1979bd5a05daa095ddcd6b9e434e736a65ec31af0c6b026a18f62e
|
|
BLAKE2b-256 checksum How to use checksums |
c45e5b3ea5d2386750a845db7e04ca5bcf38bd20a3f16ff1685728b250390139
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315-manylinux_2_28_aarch64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.15 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
43a8d3c53475b95e90904eff729b235623faed07508596bf150165cbbe644794
|
|
BLAKE2b-256 checksum How to use checksums |
d4d9dc8e47631aac4ff3a348e7e7425545b67c3e96eb34c1e9e2fd9e572ab677
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315-macosx_11_0_arm64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315-macosx_11_0_arm64.whl |
|---|---|
| Size | 409.6 kB |
| Tags | CPython 3.15 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f01a5aa33a1170d9af1200af21526b4cea384e1c36014e662c450174b707d1e4
|
|
BLAKE2b-256 checksum How to use checksums |
b2879ab8aa95cb88f53da14a6aad2faceb54fcd4c4a936077cd3b3cdcc5f925a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp315-cp315-macosx_10_15_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp315-cp315-macosx_10_15_x86_64.whl |
|---|---|
| Size | 422.6 kB |
| Tags | CPython 3.15 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
d38ad2af48c0dcdb047da0d014fd4c7b2d3be4f8ee9aa86b47fdff882f512708
|
|
BLAKE2b-256 checksum How to use checksums |
865888d7c920133062efcccbf3c635521111edd7ca4b78ca2b38ace10e7141c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314t-win_amd64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 293.4 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
96d37a1c027455c8c2ec07dbd6f51ad63c7d270621d42b9700a5e88da74f4e22
|
|
BLAKE2b-256 checksum How to use checksums |
7d9add8d90de80ac640f98ed3a1d15cd4903f7f5f8ce01025317474c1a88d103
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
91a2b8711fb1a0aaf53d738363815e70c09a083788a98c6d5dfa3554453881b6
|
|
BLAKE2b-256 checksum How to use checksums |
e9968337e3f6722b289575b80fe03f4e83da4245d5011eb46461346e91a6367b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314t-manylinux_2_28_aarch64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
0f4e2592c6da5728c74a76615f3783a2975e961ac4b02a952080bbb95d696d1c
|
|
BLAKE2b-256 checksum How to use checksums |
99d20b86085c9d208af31882b2e265a99b0b1431c8e8144942f13aa5d72cfba9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 408.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1343e30328ed9357f294c8a89216686bd4aed861ec752f6bfd18158b2b45c7ab
|
|
BLAKE2b-256 checksum How to use checksums |
a1d27292d604f667106caaecfc334e6189ef761f1daa382a90dd72fee9dfba50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314t-macosx_10_15_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314t-macosx_10_15_x86_64.whl |
|---|---|
| Size | 419.2 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
23ffb0e598d214d66953f78e64ea59eb5af4ceb09aaadf0bd41f0795f79d801c
|
|
BLAKE2b-256 checksum How to use checksums |
7e4de758e2a9239e9c0b9799cad74f5df937dae32986220292b6ae49efec286f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314-win_amd64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 290.2 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ca6bda8069f08b838e6609bae967d5f8054c278a1c5d8abe61997a905fe82b11
|
|
BLAKE2b-256 checksum How to use checksums |
8a30e02c2f6c2d79ba79e224628f9939d549e33accd69d321b30f20d224f50bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8663a635c14e3928285d3d326e41bb949b202e7df48b737eec6a043e3686a1e8
|
|
BLAKE2b-256 checksum How to use checksums |
85ab0a778c5e5648ae49ed8882473082a42d8393fbf5d9fdff8e759044fdd344
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314-manylinux_2_28_aarch64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
2f2501a7a463db98c7c0a71d72f040e1c0e04b6605425f35ece4c88e73f3a2f0
|
|
BLAKE2b-256 checksum How to use checksums |
78fe5d0e3af3c05f3d39130314064b3a5414d6027095a7b8095cd89ab44de6b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 409.9 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a3e2f755d554de619fec6c9db4cc6406f32641d482ba316a6ec9620616094a8b
|
|
BLAKE2b-256 checksum How to use checksums |
055a11d318d3031e62b846df1c798f14e22b7ef2f9c63f41f92f11df3298d51b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 422.0 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
52b0efd44fa339c077b4e15467ca4743ad49b516f95018b5076b0edb1ce1234d
|
|
BLAKE2b-256 checksum How to use checksums |
5dabdb3c3ef2374e57d56feb168366ebc4c226d9bad24cbfa433d547c9a9142e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp313-cp313-win_amd64.whl
| Download URL | ledfx_senders-0.3.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 281.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4b421508bba70ef077318d6730c286bea053547b50b17279faa5719a3da56088
|
|
BLAKE2b-256 checksum How to use checksums |
774fa519887391f6fe2ef4bfdc7ce075b5afbc73a1364b4ac9e9ea3fcd1b4dcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f3561a0121e9d24b35825b5012ae086e8640eee6d3b54b87e3f98e60382566ca
|
|
BLAKE2b-256 checksum How to use checksums |
35c959fe915cee1bf93ceb075f0ca4aa1558b76adcadee47a06b76b3da75121f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | ledfx_senders-0.3.1-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
79bff8df06fdebff581ae34b5bcf1980440ad5f719fe120f32201a20aefc0cd7
|
|
BLAKE2b-256 checksum How to use checksums |
815213549e975e0a5aab0051746a52163dbc09511f85d55d02a7d1385fef4a2c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | ledfx_senders-0.3.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 407.8 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e8e6edc057508623b9297fa7c893ff99910555d5d38d702fcb3098ec11d934d7
|
|
BLAKE2b-256 checksum How to use checksums |
5aeef0401086bafecf022955f7e9f22e5ad6292aea1cc13d2a09d18da2ba0861
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 419.3 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
116be5d1fae68091e7feab71a00238c1d48e9978a1243d2963332f01e7b2d8c5
|
|
BLAKE2b-256 checksum How to use checksums |
60612497562396bb622b52afbde43713eb16d92848a810c15619395405af3c92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp312-cp312-win_amd64.whl
| Download URL | ledfx_senders-0.3.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 281.8 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8eb6ac4974ae83865741c55e6d2c4e7c4bf1314b06314914e1c291d6e63a820d
|
|
BLAKE2b-256 checksum How to use checksums |
cb4616fbf9c999151aa10f0a49220bf69f367adc33a5f39c2b609445576f6718
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
430712f9827660ad66f3bc4c8ecfeb099001503f7bff012780b34eea05d8950a
|
|
BLAKE2b-256 checksum How to use checksums |
e6d10a53458d1652f503eec13a394ddceec4e2235020cf73b1c1baa2a8dc5729
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | ledfx_senders-0.3.1-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
b43cdf2dcb33d46f899abc5681a362fb6e16b62ddee74e4be3f04e6084dfe08e
|
|
BLAKE2b-256 checksum How to use checksums |
e3eaad0e06b8dc9aa2a6cdd9219b91cccd9337c39a1d5f78a92ecd162dbb1b5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | ledfx_senders-0.3.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 407.6 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1d94551901a62879755be0bdc939511976f88be6be17113444b71c18d94cef16
|
|
BLAKE2b-256 checksum How to use checksums |
50518a5ed47480247b500d469d342cee8240ace36e6fdf247d1d1d0f8c47b4bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 419.6 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
103017bb8a0adcffc10f3740fba4394ad0eabf550e3e01f13ed24b596978bc20
|
|
BLAKE2b-256 checksum How to use checksums |
0a1304f16f6e5f9dbae312a3a3973ebc483bca4696a74cf70b9f574b62e5f1e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp311-cp311-win_amd64.whl
| Download URL | ledfx_senders-0.3.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 286.9 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
20ce036998c88e7512c52c44cad17dd4be5d968e824a5fb399509d5e43bb6f9f
|
|
BLAKE2b-256 checksum How to use checksums |
6c44e7e80f876d171952e3fa6f85f802cf170bbe4c076202b4f326943159741e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
52fadf7958705659d0bce974637dd4bef7295c8e8d59de00b5d8c20a2d121aa9
|
|
BLAKE2b-256 checksum How to use checksums |
d5c5f4ef287586a65b00e222a16643136a31f427a23a8a76790d83277b71360e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | ledfx_senders-0.3.1-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
a396be7c9ac5d4871a40b395fb03c324aa17c5a0a6ee1836009e4636aef3e519
|
|
BLAKE2b-256 checksum How to use checksums |
4b82bd6bc926f9f4c523ca95026773f83c1f7678ace507420e4ff9a232b5d528
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | ledfx_senders-0.3.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 418.6 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b82bd2531b48de2dd0994689b4ea6b5f125ecba0bedd8085ac45cbfe19e82da0
|
|
BLAKE2b-256 checksum How to use checksums |
644509e394331309f1fb1951dd6006c797e1c106997a1d5317e0af8eaddc2b3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / ledfx_senders-0.3.1-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | ledfx_senders-0.3.1-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 422.5 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
6ca289805d82315c0c1567ed10d547c24812821d0633d5602d2754915b06298d
|
|
BLAKE2b-256 checksum How to use checksums |
92102ba68fba6535f18a00cd8ccbb3403c0cc3bae42199f00b90eb5fd1c65177
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log