Skip to main content

Python SDK for the Invisensing Audace DAS environment — reads Audace data files (DAT / HDF5 / TDMS / SEG-Y) and extracts per-channel data (I / Q / arctan / magnitude / phase) via a Rust-backed core.

Project description

Invisensing — Python SDK for the Audace DAS environment

invisensing is the official Python library for reading Distributed Acoustic Sensing (DAS) acquisition files produced by the Audace platform. It handles every file format the platform writes (.dat, .hdf5, .tdms, .sgy) through a single uniform API, and exposes the channels each file actually contains — I / Q / arctan / magnitude / phase — in one method call, with the right dtype and optional physical-unit scaling.

The library is format-agnostic but mode-faithful: it never silently re-derives one demodulation product from another. The on-board DAQ DSP chain (fading suppression, spatial differential, detrend filter) is not reproducible in software from an earlier tap, so the channel you can extract is the one the FPGA wrote. Inspect file.mode to dispatch; the SDK raises a clear ValueError if you call an extractor that doesn't apply.

The hot path (header parsing, bytes → numpy conversion, de-interleave) is implemented in Rust and exposed through PyO3, so reading a multi-GB capture stays fast even from Python.

Installation

pip install invisensing

That's it — every supported file format (DAT, HDF5, TDMS, SEG-Y) works out of the box. The default install pulls in numpy, h5py, npTDMS, and segyio so any file written by the Audace FileWriter can be opened without further setup.

Wheels are built from a Rust extension; pip handles the native build transparently. No Rust toolchain is required for end users.

Note — the format extras (pip install invisensing[hdf5] etc.) are still recognised for backwards compatibility with older installation guides, but they are no-ops now: every backend is part of the default install.

Quick start

from invisensing import File, Mode

with File("acquisition.dat") as f:
    print(f)                       # File('…', mode=iq, shape=…, …)
    print(f.duration, "s")
    print(f.distance, "m of fibre")

    # The Mode enum lets you dispatch cleanly on what the file contains.
    match f.mode:
        case Mode.RAW:
            data = f.read_lines(1000)              # (1000, line_size) ADC codes
        case Mode.IQ:
            i = f.get_i()                          # (n, positions) i16
            q = f.get_q()                          # (n, positions) i16
            iq = f.get_iq()                        # (n, positions) complex64
        case Mode.ARCTAN_MAGNITUDE:
            arctan = f.get_arctan()                # (n, positions) i16
            magnitude = f.get_magnitude()          # (n, positions) u16
        case Mode.PHASE:
            phase = f.get_phase()                  # (n, positions) f32 radians

Streaming large files

read_lines(n) advances a cursor; iterating the file yields one pulse at a time:

with File("long_capture.h5") as f:
    while f.lines_left:
        chunk = f.read_lines(10_000)
        process(chunk)

# Or, one pulse at a time:
with File("long_capture.dat") as f:
    for pulse in f:
        process(pulse)

For ad-hoc scripts on small files, read_all() returns everything in one allocation.

Output dtypes — raw codes vs. physical units

I, Q, arctan, and √(I²+Q²) are physically continuous quantities (volts for I/Q/magnitude, radians for arctan) that the FPGA encodes as fixed-point integers on the wire. The SDK offers two flavours of extractor for each lane:

  • Default extractors (get_i, get_q, get_arctan, get_magnitude) return the wire dtype — fast, no copy beyond the de-interleave, no precision loss on round-trip writes.
  • Physical-unit extractors (get_i_volts, get_q_volts, get_iq_volts, get_arctan_radians, get_magnitude_volts) return float32 numpy arrays in the natural physical unit (volts or radians). Use these when you start doing DSP — they save you from remembering the scaling constants.

The full mapping per mode:

Mode Method dtype Unit Scaling applied
Raw read_lines() int16 ADC code
IQ read_lines() int16 ADC code wire layout [I, Q, I, Q, …]
IQ get_i() / get_q() int16 ADC code de-interleave only
IQ get_iq() complex64 ADC code I + j·Q packed
IQ get_i_volts() / get_q_volts() float32 V i16 × range / 32768
IQ get_iq_volts() complex64 V real/imag both in volts
ArctanMagnitude read_lines() int16 mixed wire layout [atan, √, atan, √, …]
ArctanMagnitude get_arctan() int16 fixed-point 32767 ↔ +π
ArctanMagnitude get_arctan_radians() float32 rad i16 × π / 32768
ArctanMagnitude get_magnitude() uint16 ADC code bitcast from wire i16
ArctanMagnitude get_magnitude_volts() float32 V u16 × range / 32768
Phase read_lines() / get_phase() float32 rad already converted by Cardcontrol (i32 × π/32768)

Phase mode is the only one whose payload is already floating-point on the wire — the conversion happens in the acquisition driver so consumers never need to know the vendor's π/32768 scaling.

f.dtype always reflects what read_lines() will return, derived from sample_size and the FLOAT flag in the header.

When to pick which

with File("iq.dat") as f:
    # Quick QC / dumping — keep the wire codes:
    i = f.get_i()                      # int16, fast
    plt.plot(i[0])                     # ADC codes on Y axis

    # Real DSP — work in volts:
    iq_v = f.get_iq_volts()            # complex64, in volts
    envelope_v = np.abs(iq_v)          # volts
    phase_rad  = np.angle(iq_v)        # radians, wrapped

with File("arctan_mag.dat") as f:
    rad = f.get_arctan_radians()       # float32, ±π
    vol = f.get_magnitude_volts()      # float32, ≥ 0 volts

Reading a 4 GB DAT capture stays a 4 GB numpy array if you use the default extractors; the *_volts / *_radians family allocates a new float32 array (so 2× the raw size for i16 / 2× for u16, 8× for the complex64 in get_iq_volts).

Channel extractors — what they mean per mode

PCIe7821 on-board DSP can emit four different products. The SDK maps each to the right extractor:

Mode Wire layout (per pulse) Extractor(s) Dtype out
Mode.RAW [s0, s1, …, sN-1] read_lines() int16
Mode.IQ [I0, Q0, I1, Q1, …] get_i(), get_q(), get_iq() int16 / int16 / complex64
Mode.ARCTAN_MAGNITUDE [atan0, √0, atan1, √1, …] get_arctan(), get_magnitude() int16 / uint16
Mode.PHASE [φ0, φ1, …, φN-1] get_phase() float32 (radians)

Each extractor reads from the file or from a buffer you've already read — pass data= to reuse a buffer across extractors so the cursor doesn't double-advance:

with File("iq.dat") as f:
    chunk = f.read_lines(1000)
    i = f.get_i(chunk)                # reuses the buffer
    q = f.get_q(chunk)                # same — no extra file read
    # equivalent: f.channels(chunk) returns {"i": …, "q": …, "iq": …}

Calling the wrong extractor for the file's mode raises a clear error that names both the actual and the expected mode — no silent garbage:

>>> with File("phase.dat") as f:
...     f.get_i()
ValueError: get_i: file mode is 'phase', but this extractor only
applies to 'iq'. Inspect file.mode to dispatch  see the Mode enum docs.

Format auto-detection

The format is picked from the file suffix:

Suffix Backend
.dat Native Rust (no third-party dep)
.h5, .hdf5 h5py
.tdms npTDMS
.sgy, .segy segyio

If your file has no suffix or an unusual one, force the backend:

File("acquisition_data", format="dat")

Metadata at your fingertips

with File("acquisition.dat") as f:
    f.line_size                 # samples per pulse on the wire
    f.positions_per_line        # spatial positions per pulse (= line_size/2 if INTERLEAVED)
    f.sample_size               # bytes per sample
    f.sample_rate               # Hz
    f.trig_frequency            # Hz
    f.num_lines                 # total pulses recorded
    f.lines_left                # remaining behind the cursor
    f.duration                  # seconds (= num_lines / trig_frequency)
    f.distance                  # metres of fibre covered by one pulse
    f.range                     # ADC voltage range (V)
    f.timestamp                 # producer-side timestamp string
    f.dtype                     # numpy dtype of the wire samples
    f.shape                     # (num_lines, line_size)
    f.spatial_shape             # (num_lines, positions_per_line)

    # Flag inspection — works as a property or as a method call.
    f.is_demodulated            # True / False
    f.is_interleaved
    f.is_float
    f.is_phase
    f.is_unsigned               # arctan/√ files only
    f.is_ac                     # ADC AC-coupled
    f.is_hiz                    # ADC high-impedance

Writing files

from invisensing import export_dat
import numpy as np

samples = np.random.randn(10_000, 512).astype("float32")
export_dat(
    "out.dat",
    samples,
    sample_rate=250_000_000,
    trig_frequency=2_000,
    range_v=1.0,
    timestamp="2026-05-25_12:34:56",
)

export_dat writes the 128-byte Audace header (matching the C-side wire format byte-for-byte) followed by the array's raw samples. The FLOAT flag is set automatically when data.dtype.kind == 'f'.

API stability

Everything exported via from invisensing import * is part of the stable public API starting from version 1.0.0. We follow semantic versioning:

  • Patch releases (0.2.x): bug fixes, performance improvements.
  • Minor releases (0.x.0): additive changes only (new methods, new formats, new optional arguments). Existing code keeps working without changes.
  • Major releases (x.0.0): breaking changes — announced via the changelog with a migration guide.

Backwards compatibility with the legacy SDK

The original invisensing.File module is preserved unchanged:

import invisensing.File as iFile

file = iFile.File("acquisition.dat")
print(file.get_line_size(), file.get_trigger_frequency())
print(file.is_demodulated(), file.is_acquisition_ac())

while file.get_lines_left() > 0:
    data = file.get_lines(5)
    # process …

iFile.export("out.dat", data, file.get_timestamp(),
             file.get_trigger_frequency(), file.get_sample_rate(),
             file.get_range())

The legacy class delegates to the same Rust-backed implementation as the modern File, so legacy scripts run at the new speed without any modification.

Performance & safety

Performance

The lib is built to be the fastest credible way to get DAS samples into a numpy array in Python.

  • DAT reads stream through a BufReader<File>; the inner read_exact runs with the GIL released so a second Python thread can do work while the OS is blocked on disk.
  • No zero-init pass: the typed-conversion path allocates an uninitialised Vec<T> (via Vec::with_capacity + set_len) and fills it with one copy_nonoverlapping. Saves the 4 GB of pointless DRAM writes a vec![0; n] would do on a 4 GB acquisition.
  • De-interleave kernels read the contiguous numpy buffer via as_slice() and iterate with chunks_exact(2) — LLVM auto-vectorises this into SSE/AVX gather-extract instructions on x86_64. The output Vec is also set_len'd, no per-element capacity check.
  • HDF5 / TDMS / SEG-Y loading is handled by their respective Python libraries (themselves C-backed). The de-interleave step always runs through the same Rust kernels, regardless of the source format — channel extraction perf doesn't depend on the file format.
  • Zero allocation on the hot path in the channel extractors: each call returns a single freshly-allocated numpy array; no intermediate scratch buffers, no per-row copies.

Measured on a recent laptop (single-threaded, release build):

Operation Throughput
read_lines() from a .dat (i16 IQ, 100 MB chunk) 3.9 GB/s
get_i() + get_q() on a pre-loaded buffer 3.0 GB/s
get_iq()complex64 packing ≈ same order of magnitude

Reproduce with pytest tests/test_performance.py -v -s. The throughput sanity tests also fail loudly (assertion) if a regression cuts perf below the floor — > 50 MB/s for read_lines, > 100 MB/s for the kernels — so a future refactor can't silently re-introduce the Vec::push / vec![0; n] anti-patterns.

Safety

  • Strict header validation at open time: a File constructor rejects up front any header with line_size <= 0, sample_size not in {1, 2, 4, 8}, or an INTERLEAVED file with an odd line_size. The downstream maths can therefore assume positive sizes everywhere.
  • Bounded unsafe: the whole extension contains three small unsafe blocks (uninit Vec via set_len, the byte→typed primitive copy, and the i16→u16 bitcast for the magnitude lane). Each one has a one-line invariant in a // SAFETY: comment and is exercised by the 1-million-sample correctness tests in tests/test_performance.py.
  • Clear Python exceptions instead of crashes: every error path (missing file, malformed header, short read, wrong mode for the extractor) raises a typed OSError / ValueError / FileNotFoundError / ImportError with a message that names the field at fault.
  • No silent type coercion: the wire dtype is preserved by default; explicit *_volts / *_radians methods do the physical scaling when you want it. No implicit astype(float64) surprise on a 4 GB array.
  • Thread safety: each File owns its own backend; sharing a single File across Python threads is not supported (the file cursor isn't synchronised). Open one File per thread for parallel reads — they don't compete for any internal state.
  • No mmap: deliberate. Memory-mapped files turn I/O errors into SIGBUS (segfault) instead of Python exceptions, which is unsafe when reading user-supplied paths in a long-running lab process.

Examples

See assets/basic_usage.py for a runnable end-to-end script.

Building from source

git clone <repo>
cd python-lib
pip install maturin
maturin develop --release        # local dev install
maturin build  --release         # build a wheel for distribution

The Rust crate lives in src/lib.rs and the Python facade in python/invisensing/.

License

MIT — © 2024-2026 Invisensing. See LICENSE for the full text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

invisensing-1.1.0.tar.gz (76.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

invisensing-1.1.0-cp314-cp314-win_amd64.whl (200.3 kB view details)

Uploaded CPython 3.14Windows x86-64

invisensing-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (288.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

invisensing-1.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (278.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

invisensing-1.1.0-cp314-cp314-macosx_11_0_arm64.whl (263.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

invisensing-1.1.0-cp313-cp313-win_amd64.whl (199.8 kB view details)

Uploaded CPython 3.13Windows x86-64

invisensing-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (287.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

invisensing-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (277.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

invisensing-1.1.0-cp313-cp313-macosx_11_0_arm64.whl (263.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

invisensing-1.1.0-cp312-cp312-win_amd64.whl (199.8 kB view details)

Uploaded CPython 3.12Windows x86-64

invisensing-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (287.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

invisensing-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (277.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

invisensing-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (263.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

invisensing-1.1.0-cp311-cp311-win_amd64.whl (199.4 kB view details)

Uploaded CPython 3.11Windows x86-64

invisensing-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (288.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

invisensing-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (279.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

invisensing-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (264.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

invisensing-1.1.0-cp310-cp310-win_amd64.whl (199.5 kB view details)

Uploaded CPython 3.10Windows x86-64

invisensing-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (288.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

invisensing-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (278.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

invisensing-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (264.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

invisensing-1.1.0-cp39-cp39-win_amd64.whl (200.1 kB view details)

Uploaded CPython 3.9Windows x86-64

invisensing-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (289.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

invisensing-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (279.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

invisensing-1.1.0-cp39-cp39-macosx_11_0_arm64.whl (265.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file invisensing-1.1.0.tar.gz.

File metadata

  • Download URL: invisensing-1.1.0.tar.gz
  • Upload date:
  • Size: 76.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for invisensing-1.1.0.tar.gz
Algorithm Hash digest
SHA256 1b42943418703b98b556b32acebfe861d0d16c77f2c62b0978eaf857808e7383
MD5 7c01a3e9c28f923ae9f78d668799a91e
BLAKE2b-256 c6fbb4ac6d77041543df12d0b5ffdd5a2f6761c24696be624594c130b7c586db

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0.tar.gz:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: invisensing-1.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 200.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for invisensing-1.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8ad8df808e265c719f3bfeaad846751cfb22c64b8e6dd78782509634e8f37d74
MD5 42034988317afe163ae3a830e7df1690
BLAKE2b-256 5496cde58d3c0ad47f7c02d6a46a887789d16b251fdb7e118dc38b0967130e8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6a31b1f811902cf27f87d97a3a67dfdfec835f58e3982f71f8f4a2ef7d1aed1
MD5 d224d196532d115e8a3d166980f26118
BLAKE2b-256 24d297114a59761d5838370a2b4a35c9fa5dff925024897063d4af2870ec586f

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64de59b89aa474518b5b14c049da3415a7caf5443b1f05248f26c7db43dfa59b
MD5 29613d5bc6be977582074d859b93ce6f
BLAKE2b-256 91a3a3cd0c96d3032030653c80363c94fc9bc9ddc07bef0864d27c5ec85ee628

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f6abe7f6e10278e6a546ee18fe20cc60ad8cc40f36afa04568daf4c05982e70
MD5 eb7dba68dbfebb0964818de2121190d3
BLAKE2b-256 407c0c25e2cbbe72fcb0f39060bf972e8cdcfc493d3bbbfe8653a931adfb9c34

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: invisensing-1.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 199.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for invisensing-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0faa519331a20f84e43aa7368c0fe16db37eb37a0b28fccbf273bf1aec6000fb
MD5 7810856fabc431d9d01bf8d0c19b0a2b
BLAKE2b-256 00b6ef598530494e06abed340d18492f0db685dc9fc47d7b699cf0366a2f3465

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81766e06982cb57b2eea7d86744c91de435b3f6e0aece021723d521b48db55ae
MD5 b22ed3dc889bfd2eb76ce64e8d240383
BLAKE2b-256 bbf5b651c3f37144becb258ce1897c1dfb4d1e5ac421aa91c5e97142c65aee19

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0c37fa9e59e51b19baa11ba71e2ee78f340e8c5271429355ade60364b347ffa0
MD5 3d7e4923c1eda3529ef399ba29922bf4
BLAKE2b-256 e85886e907c0ea7220a6b48ff4bc6b05e5a786eff7be849f797591d76c4e0946

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08eb2ab62a11d4c59727359f3da81c4750676f9e0bb15dfb7360e3de0b794a57
MD5 40fbcad31a8284555d812e3a0f6b8091
BLAKE2b-256 0455a9af7aa7c54e1b1a7f439db89e4db56955fd620c5579ce5c8cb8a3cb8eae

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: invisensing-1.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 199.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for invisensing-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0f224f6cdfa8233c1e94526743da0d15731486376be81440d7c14c62cd3e7ed7
MD5 0e2663bd56dc3feccd57015341a85c65
BLAKE2b-256 4af827938bca423b5b6703964ca240cb11ee7599ae9015d247c3a898757eb7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4da48f8cb9578b93a2f0392d56893b3bdb524d0198a14b541f0540a82308a0a4
MD5 dcf23dffbf11daa1f53979ce7bc3ea4b
BLAKE2b-256 8465dfdf336cca92ebe5b90e111c1318d0e3e9e248c744b579a9cdef276212c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2f267effa64ae014cb01b7bb87ddddc3644122f296a47d416d594ba77a2017eb
MD5 6443d4833399436f244cc792cf694865
BLAKE2b-256 cba519585e97fcfd9316d6f5a5da5359496a2fc0eb6b534e935c9628f67c6b1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04038d7e24b2f749801d7750f0bf1fd8a6b6e693121707f52923bc53f6a5d1d3
MD5 57311e426e91208a638fa4a2c69d03c0
BLAKE2b-256 2f454fbb773435425923a042496e7c89c34ca962005b1b70acc28bc70a994e9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: invisensing-1.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 199.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for invisensing-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 15c44c72806ed415e1d6030b9e943c186f0207bc6988f492b519e80968286a88
MD5 e8fc4eb25f41d2cc408315aefd92478c
BLAKE2b-256 0d3748176f7169d2ee7b3825039e82d9147077fdd985ad770be357c6d58426ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f262c2f547287050fb625b800119cf51f8ccb91aac87b0427f42f1e5c3745009
MD5 16ab62a121a7d45918885518c7d760b7
BLAKE2b-256 63d256cbc15481517c437e6141104c94a2348f95029296bf89a06ebaffc35942

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 52b339408995b4d123876fe5783b3e9f6d455b3b63da615229317336d0bfcd70
MD5 eea79f35f97ff751fb0c2227a324727a
BLAKE2b-256 7bae9141aabf179a65c6879cfb93df41cde12c02b52c8c81cb5227f6a5f60ca4

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 09670b0c58a77653551a14f7fdf2ec5d78b3bbfc7c1fa1215445c7ec8cfcb36e
MD5 fd5bcac98ddae5e1e9ae1aa3cdc212a8
BLAKE2b-256 f51b60f4929a1d718e1df2f0afb753a88bda77c9cd95284aed8ca2c55e8b587b

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: invisensing-1.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 199.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for invisensing-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ce96bfaf78ec32a1808a04255337cd10620809a2d7d52c30e64bf706b1adb4f1
MD5 c162753a277760ec124829cc9649f5a1
BLAKE2b-256 04f36c80c328e5d654cd51eee33a5de8b190ad93418dc6bd1ed2df8e96babe26

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c5948ac24f644689c7cef67c622bcf84031c28059bc9f53d753bdbe8f784aa9
MD5 0b8db21b4e77d65e48eeb20d4c706072
BLAKE2b-256 3c71c6ef67d47b96f460acf68b6b8aed83a9a849c66a51f65920a76987c5eff8

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c618a0b16d89548884237d48a8ab94c37de5eb3bfe71bcd5523c24e7bd9b3f4c
MD5 1d01866bce473324bbf9f7abe299f1cc
BLAKE2b-256 433db82b2d7a232b43570c62f6ff9e07c323ecf6fda7f4e6e145031fe4502e5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffdffc796c0a7df152f81a2b8fa8567062f43f4b2928847f551a3829eae05bbb
MD5 8b957c26260527a7ffa42999132da968
BLAKE2b-256 0753df9aa04ee8ede22022d9b9ddd7b11d475a540cc54598ca1e25e6f460d20e

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: invisensing-1.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 200.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for invisensing-1.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ffb8b96fbd3f59ecd703a1512a38d5b31c0969d02f8ae0eecf3b85800eb9d58b
MD5 a066b80f6c101516c115ceea608f50b7
BLAKE2b-256 67dcbfa32a603aefa81703e22c53286b218c2b92cf865d1d199200a2fca17668

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp39-cp39-win_amd64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca8355f36f292c5ad59c81fa0df8c5dccb65635e2d994923d82cbe4adcf9da8f
MD5 024477f52d1c9050dbae2e16509f35b0
BLAKE2b-256 9ac572580600a8d5205384d825e239276155e56c3c6bbfeb25fd7eb548194723

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a0d1470cd964dd54503302bec9c52de047d4628ab535e385b6123b31257b27e6
MD5 33256afc2ae58637477de25e5facb5d6
BLAKE2b-256 5dd33369a96ff10f65a02a1eb7580e360a3508750ab34cf0ae17955bc3af6397

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file invisensing-1.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for invisensing-1.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c8fb91e1c46dc3e75b774a20ef68e3c7abea3c76c25663a30628469d11acb7a
MD5 6bc833b726fac5b179314e145e6fc256
BLAKE2b-256 123f345147c6cc15fc1eb303383ae50b7c1be61d3798f3ef04519d589e458e70

See more details on using hashes here.

Provenance

The following attestation bundles were made for invisensing-1.1.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on invisensing-io/python-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page