Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

atemwire

Python library for Blackmagic Design ATEM switchers: the native UDP protocol, a thread-safe connection pool, a full macro bytecode codec, and save/restore of ATEM Software Control's "Save Switcher State" XML.

CI PyPI License: LGPL-3.0 Python 3.10+ Latest tag

atemwire is a fork of pyatem, Martijn Braam's ATEM protocol library, renamed to avoid confusion with upstream. It branched from upstream commit 8f45831 (2026-03-14, six commits after the 0.13.0 tag) and was then developed for months inside a broadcast control application against live 1 M/E and Constellation switchers. This repository is the library part of that work, extracted and cleaned up: the transport and protocol core with a series of reliability fixes, a declarative wire-format layer with corrected and extended message coverage, the macro codec with macro upload, the profile save/restore, and a connection wrapper with a per-IP pool. The license is unchanged: LGPL-3.0-only.

from atemwire import ATEM, probe

with ATEM('192.0.2.10') as atem:
    atem.set_program(5)
    atem.cut()
    print(atem.program_source, atem.video_mode)

print(probe('192.0.2.10'))   # {'video_format': ..., 'atem_model': ..., ...}

Status

  • Pre-release (0.15.0.dev1): the API is the one a production application uses every day, but names may still move before 1.0.
  • Runs in production driving a fleet of ATEM switchers from a Django/Channels app: live switching, media-pool uploads, still capture, profile save and restore, HyperDeck bindings.
  • Developed and verified against 1 M/E and Constellation switchers; the profile format is pinned to the version 2.1 XML a 1 M/E Constellation HD emits. Other models are expected to work for switching and media, and each new write command is Wireshark-checked against a real switcher before it is trusted (see Caveats for the two that are not yet).

Install

From PyPI:

pip install atemwire

Only pre-release versions exist so far (0.15.0.dev1). pip installs a pre-release when it is the only release there is, so no --pre is needed; pin the version in a requirements file (atemwire==0.15.0.dev1) so a later release cannot change your install under you. To install straight from a GitHub tag instead (git needed on the machine):

pip install "atemwire @ git+https://github.com/lucas-romanenko/bmdwire.git@atemwire-v0.15.0.dev1#subdirectory=atemwire"

Python 3.10 or newer. A C compiler is required: the atemwire.mediaconvert extension (BT.709 conversion and RLE encoding) builds during install. Add the images extra for Pillow, used only by the profile media-pool image export:

pip install "atemwire[images]"

What you get

  • Transport that survives real networks. Correct 15-bit sequence space, gap-free ACKs, go-back-N retransmission serving, in-order delivery, a clean session goodbye, connect timeouts, and a transport thread that cannot die silently. Optional per-packet tracing with ATEMWIRE_PACKET_TRACE=1.
  • A declarative message layer. Every command and field is a small DSL class dispatched by its 4-char wire code, with corrected offsets where upstream was wrong and coverage for Fairlight dynamics and master EQ, USK mask and pattern, stinger settings, HyperDeck bindings, flying keys, macro play status and device identity.
  • Every upstream send command, including the multiviewer, SuperSource, streaming, recording, legacy-audio, camera-control and startup-state commands upstream had, restored in 0.15 with upstream's byte layouts.
  • Macros, both directions. A bytecode decoder and encoder covering 146 op codes, macro download and upload over the file-transfer channel, and ATEM Software Control compatible <MacroPool> XML.
  • Profiles. Profile saves and applies the "Save Switcher State" XML with per-section options, including media-pool images.
  • A pool you can share. ATEMConnection runs the protocol on a worker thread with a command queue; acquire_connection gives many callers one session per switcher with reference counting, so a web app, an uploader and a thumbnail watcher can ride the same connection without freezing each other.
  • Fast media transfers. Per-frame store locking that interleaves with other clients, roughly tenfold upload throughput over upstream, and a hardened C extension for colour conversion.

What's different from upstream

Transport fixes (atemwire/transport.py)

  • Sequence arithmetic uses the ATEM's real 15-bit space (wrap at 0x8000); 16-bit math desynced ACKs on every wrap.
  • ACKs advance only to the highest gap-free sequence, so a packet lost mid-burst is retransmitted instead of skipped.
  • Retransmission requests are served go-back-N from a bounded buffer; upstream logged them and did nothing.
  • The request sequence is read from header bytes 6-7, not from the ACK field at bytes 8-9.
  • Reliable packets are delivered to consumers strictly in sequence order; late retransmits no longer corrupt file chunks.
  • Transient send errors no longer kill the UDP thread, and a dying thread always wakes loop() with a sentinel.
  • connect() can restart a dead transport thread and clears the previous session's receive bookkeeping.
  • Datagrams from other peers, malformed frames and serialisation errors are dropped instead of raising out of the thread.
  • A connect to an unreachable switcher can now time out; the pre-handshake sentinel is returned to the caller.
  • close_session() sends the protocol goodbye so the switcher does not keep an abandoned session open.
  • A Wakeup sentinel lets another thread break the receive loop so queued commands drain immediately.
  • Optional per-packet trace logging (ATEMWIRE_PACKET_TRACE=1) plus rx/tx counters for diagnostics.

Wire corrections (atemwire/messages/)

  • All commands and fields are declared in a small DSL (messages/_dsl.py) and dispatched through a registry keyed by 4-char wire code.
  • DVE transition rate is CTDv byte 4 / TDvP byte 2; upstream's byte 3 / byte 1 is the separate logo-wipe rate.
  • CFMP master EQ enable lives at offset 1, and its EQ gain is a sign-extended i32 at offset 4.
  • CFSP per-strip EQ gain and dynamics gain are i32; the i16 read clamped negative dB to +20.
  • Fairlight meter levels (FMLv/FDLv) decode linearly as hundredths of a dB; the old curve read about half the true value.
  • Two upstream field-code typos fixed: RMTS is RTMS, TsPr is TrPr; upstream's duplicate AMIP class is resolved.
  • Scaled fields round to nearest instead of truncating.
  • New commands: Fairlight dynamics and master EQ band (CICP, CILP, CIXP, CMCP, CMLP, CMBP), USK mask and pattern (CKMs, CKPt), stinger settings (CTSt), HyperDeck binding (CXMS), fade-to-black enable (FEna), macro sleep (MSlp), clear still (CSTL).
  • New fields: the dynamics echoes (AICP, AILP, AIXP, AMBP, AMLP, MOCP), flying-key state and keyframes (KeFS, KKFP, KePt), macro play status (MRPr), HyperDeck binding (RXMS), 3G-SDI level (V3sl), device identity (WhoI).
  • Every message module also carries the operation wrappers and mixerstate readers for its feature; atemwire/_state.py assembles them into one snapshot dict.
  • The DSL covers the whole vocabulary since 0.15: string fields take a mask bit, a tail field carries a variable-length block (camera control is a plain declaration), and tests/test_docstring_tables_match_declarations.py checks every class's docstring offset table against its declarations, so the documented layout and the wire layout cannot drift apart again.

Macro and profile work (atemwire/macrotransfer/, atemwire/profile/)

  • Macro bytecode decoder and encoder covering 146 op codes (upstream decoded 2); unknown ops round-trip verbatim.
  • Macro download and upload over the file-transfer channel, including the 0x0300 upload mode the macro store requires.
  • ATEM Software Control compatible <MacroPool> XML in both directions; see atemwire/docs/MACRO_FORMAT.md.
  • Profile saves and applies the "Save Switcher State" XML format with per-section SaveOptions / ApplyOptions; see atemwire/docs/PROFILE_FORMAT.md and PROFILE_SAVE_RESTORE.md.
  • Profile XML parsing rejects DTDs and entity expansion.

Transfer improvements (atemwire/protocol.py, atemwire/connection.py)

  • aggressive_drain=True drains the whole send queue per trigger, roughly ten times the still upload throughput.
  • Download chunks are collected in a list and joined once; the old bytes += was quadratic.
  • The store lock is released after every frame and the next transfer starts on the lock-state echo, so other clients interleave.
  • Fatal transfer errors release the lock, pop the task and raise a file-transfer-error event instead of wedging the lane.
  • Straggler transfer packets after an abort are ignored; abort_transfers() recovers from an unanswered upload request.
  • Clear-still is queued through the lock discipline (queue_clear); some models ignore a bare CSTL without the lock.
  • ATEMConnection runs the protocol on a worker thread with a command queue and blocking download_still / download_macro.
  • ATEMInstanceManager / acquire_connection pool one session per switcher IP with reference counting and a teardown grace period.
  • The C extension validates input lengths, clamps every conversion, releases buffers on all paths and raises instead of aborting on a reserved RLE word.

Restored in 0.15

Every upstream send command is present. The 20 that the fork had dropped as unused came back in 0.15: multiviewer routing and layout, SuperSource boxes and art, streaming and recording settings and start/stop, legacy audio strips, master and monitor, camera control, transition preview and T-bar position, auto video mode, startup state, clock. They are declared in the DSL with upstream's exact byte layouts and pinned byte-for-byte against upstream's output in tests/test_restored_upstream_commands.py, but this fork has not yet re-verified them against a switcher; see Caveats.

Not included

Upstream's OpenSwitcher extras are not part of this package: the TCP-proxy and USB transports (AtemProtocol raises NotImplementedError for tcp:// URLs and USB devices) and the *XFC proxy message that went with them, the camera control module (the CCmd send command is here), the converter / firmware / dissector tooling, the emulator, and the Videohub client (see videohubwire).

Caveats

  • The 20 commands restored in 0.15 (listed under Restored in 0.15) reproduce upstream's wire layouts exactly and are not yet Wireshark-validated on a switcher by this fork. Upstream drove real hardware with them; treat them as upstream did and verify a write on your model before relying on it.
  • CKMs (upstream keyer rectangular mask write, atemwire/messages/upstream_keyer.py) was drafted from the DSK mask command and the KeBP field layout and is not yet Wireshark-validated against a switcher. It is a write command, so verify it on your model before relying on it.
  • FEna (fade-to-black enable) is reverse-engineered and is only sent in its ME1 form.
  • The profile format is pinned to the version 2.1 XML emitted by a 1 M/E Constellation HD; other models may expose sections it does not model.

Development

git clone https://github.com/lucas-romanenko/bmdwire.git
cd bmdwire/atemwire
pip install -e ".[test]"
python -m pytest

The editable install matters: it builds the C extension in place. A plain pip install . puts the extension in site-packages, and python -m pytest run from the checkout then imports the source tree without it and fails on atemwire.mediaconvert.

The suite needs no hardware. CI runs it on Python 3.10, 3.12 and 3.14 for every push and pull request.

Related libraries

One library per Blackmagic device family, same shape, same author, all pure standard library except atemwire's small C extension:

License

LGPL-3.0-only, unchanged from upstream. See LICENSE, LICENSE-gpl3.txt and NOTICE.

Download files

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

Source Distribution

atemwire-0.15.0.dev1.tar.gz (278.8 kB view details)

Uploaded Source

Built Distributions

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

atemwire-0.15.0.dev1-cp314-cp314-win_amd64.whl (322.0 kB view details)

Uploaded CPython 3.14Windows x86-64

atemwire-0.15.0.dev1-cp314-cp314-win32.whl (321.3 kB view details)

Uploaded CPython 3.14Windows x86

atemwire-0.15.0.dev1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (333.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

atemwire-0.15.0.dev1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (327.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

atemwire-0.15.0.dev1-cp314-cp314-macosx_11_0_arm64.whl (317.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

atemwire-0.15.0.dev1-cp314-cp314-macosx_10_15_x86_64.whl (320.6 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

atemwire-0.15.0.dev1-cp313-cp313-win_amd64.whl (321.3 kB view details)

Uploaded CPython 3.13Windows x86-64

atemwire-0.15.0.dev1-cp313-cp313-win32.whl (320.6 kB view details)

Uploaded CPython 3.13Windows x86

atemwire-0.15.0.dev1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (333.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

atemwire-0.15.0.dev1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (327.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

atemwire-0.15.0.dev1-cp313-cp313-macosx_11_0_arm64.whl (317.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

atemwire-0.15.0.dev1-cp313-cp313-macosx_10_13_x86_64.whl (320.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

atemwire-0.15.0.dev1-cp312-cp312-win_amd64.whl (321.3 kB view details)

Uploaded CPython 3.12Windows x86-64

atemwire-0.15.0.dev1-cp312-cp312-win32.whl (320.6 kB view details)

Uploaded CPython 3.12Windows x86

atemwire-0.15.0.dev1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (333.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

atemwire-0.15.0.dev1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (327.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

atemwire-0.15.0.dev1-cp312-cp312-macosx_11_0_arm64.whl (317.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

atemwire-0.15.0.dev1-cp312-cp312-macosx_10_13_x86_64.whl (320.5 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

atemwire-0.15.0.dev1-cp311-cp311-win_amd64.whl (321.3 kB view details)

Uploaded CPython 3.11Windows x86-64

atemwire-0.15.0.dev1-cp311-cp311-win32.whl (320.6 kB view details)

Uploaded CPython 3.11Windows x86

atemwire-0.15.0.dev1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (332.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

atemwire-0.15.0.dev1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (327.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

atemwire-0.15.0.dev1-cp311-cp311-macosx_11_0_arm64.whl (317.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

atemwire-0.15.0.dev1-cp311-cp311-macosx_10_9_x86_64.whl (317.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

atemwire-0.15.0.dev1-cp310-cp310-win_amd64.whl (321.3 kB view details)

Uploaded CPython 3.10Windows x86-64

atemwire-0.15.0.dev1-cp310-cp310-win32.whl (320.6 kB view details)

Uploaded CPython 3.10Windows x86

atemwire-0.15.0.dev1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (332.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

atemwire-0.15.0.dev1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (327.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

atemwire-0.15.0.dev1-cp310-cp310-macosx_11_0_arm64.whl (317.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

atemwire-0.15.0.dev1-cp310-cp310-macosx_10_9_x86_64.whl (317.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file atemwire-0.15.0.dev1.tar.gz.

File metadata

  • Download URL: atemwire-0.15.0.dev1.tar.gz
  • Upload date:
  • Size: 278.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for atemwire-0.15.0.dev1.tar.gz
Algorithm Hash digest
SHA256 77a49f5737668dcb1faf93afc847335d1f05e376bbdd8df2f0fb13ccde141c22
MD5 ac1c80f5922940bb050b8690b842822c
BLAKE2b-256 504134e404f0dcedf0c977f0dc1abe8458023c1873f46b8296949385aa3b3a17

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1.tar.gz:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2c9a2fae5fe3fe100d1ead9ee3048d77ad265a6019a147ba273f7784876e9c29
MD5 b630e68bd6831538fb59dd3855ca94af
BLAKE2b-256 740c8c05f206f5d80f9b9ca7a1cfa7b1a47c7aa57ae3b0ce62fec3b989225e1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp314-cp314-win32.whl.

File metadata

  • Download URL: atemwire-0.15.0.dev1-cp314-cp314-win32.whl
  • Upload date:
  • Size: 321.3 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for atemwire-0.15.0.dev1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 3cb70fc12815b8e385f8c1fe22f281c39a186dcc424e4613154c75ce7f8c7ccb
MD5 b595c7468d23f3c391290863141326f0
BLAKE2b-256 54edc1c72d73f48146b869f85ccf8795231c86158b1b847bbad2e2cbeaf752e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp314-cp314-win32.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 690ced3c8859860faa73fa5a386789fb2cec02254ea98509962369acb7d46dd1
MD5 d32d670467207b4ab90bf24da148aceb
BLAKE2b-256 ce130ef81b295d50273c9cdd2a4cfcb944e70806f7a4cf988da48eca3a9fb87d

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 7be99d19d48c185de2487a21c26fa87939e72c1c93f2278c8e227c75679c1c18
MD5 10ec7c5ca74d18f62fa87302d7bf5e8e
BLAKE2b-256 9eeabbed1bf9e7f3de3161dbee66c739381442586f24995cdaf988813ac38582

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87ac3687b0ca889585bae719de80387daa286129e3af319187482e491dfe6875
MD5 2340f2acfae92938af12504f8f109c5e
BLAKE2b-256 8f3f4b3ea2b9ca3b24b2a89bdb8b4cff8acec0f35acc75f92f5722d0324497bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 45b9fe6b636e9a6ab413538896a19911e804d895671f9b38b711d8607cce3726
MD5 4a4210ff8eafe38929c104128e8245d8
BLAKE2b-256 48f13b57546263511ef3e64589c8e061ec645f6d1691f9b57822624a0c7351d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b082e780767bb5e9be5eecc5efef953393aa5881021caba1740993f6b57112d8
MD5 0414d8791d25105a0e3b5c09960592dd
BLAKE2b-256 d247ea3b519eced3fa7922e32d95d74f0c5ba1e9848d5e9ac8f71a077a15480b

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp313-cp313-win32.whl.

File metadata

  • Download URL: atemwire-0.15.0.dev1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 320.6 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for atemwire-0.15.0.dev1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 754e943f156d6de2256b5e699db1cea968dcd45a63f781578fb6f7d4b18b8a19
MD5 85ab0fd90ba1e1f26357c620a5aa5d4d
BLAKE2b-256 7b5ed1e28b864d4078f68f6f7cfded45bd2c2dcb81be048376d8aef927084abf

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp313-cp313-win32.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3ae05a561e24d342e3137beca5af2b6bbcfa576f6b636fe7c4e2533a4f9a9800
MD5 7004fc3427ba54d140c26c7c45a26245
BLAKE2b-256 c07fe3141e71492a3b0e2ac1e5a90231bdf40ea84f8263d98c0aae1695e37ba6

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 0319db601aae804137cdbdede7f71c33bb6f1aaa3b5e3ea47d2a3810864203cb
MD5 8df16ca60d686a0d66e82ef9b17879dc
BLAKE2b-256 a29abd28f2131e07713d122e12312ee1e2486fe006e55affcf2e65437115db76

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a775abe4252686f40bbaf08ef4b3d1097fa69091881c8ecb2716d6a9e4ec4fd
MD5 e9ea00d432688891ecd541235ff4531a
BLAKE2b-256 229de5894057a4d27eb0bab253c2160fd73fd35a08b613366b23fcaee46c16b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 958ac9d7db4a1529817a8342b62936b45fc37e6daa6170f6d6a800d54034bbc8
MD5 5b87e93295da50ccb419e190124f800c
BLAKE2b-256 18125e894f53c51c09395145a32bf562e34d38a20252a0a47fb8039ccede5fd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2b20ccd4fba9b8ce09f1c54084e374f4ca24691d49198ee601cc18d6fe076e3a
MD5 e241e35dc824a5367f014b6c487dd3d9
BLAKE2b-256 8b81f595d0cb9201fbfdcc0695a94ec3df1c00bd0c2117c6481f48cf211a0e7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp312-cp312-win32.whl.

File metadata

  • Download URL: atemwire-0.15.0.dev1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 320.6 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for atemwire-0.15.0.dev1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f467fe8ba28359dae7f9ddaa82679a86502424c8a1e60596c4c3bd5fba31fb8e
MD5 62aef60d6968c1e71b7438aeda6e07f0
BLAKE2b-256 0e90fc5cb702028bbaad0badae02f3117dabb36da12b1576d7cd9dc37849bc27

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp312-cp312-win32.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8ce6a2f53bad0a6f53bca6759ea56e646d187596dce8a8146fe2bd93b1137211
MD5 99ec76e18722cfb787452e943a434ecb
BLAKE2b-256 bc536232971d72b7709ee63adfa62cf7965e36dd6ea490d549af8fc15ad3d51c

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 b6aea77be5525c15b19d4a45c4b9423a6f723df261fd3b71af145158ba1bce8a
MD5 f8eadfd1c509dcee5b370db65a829d8e
BLAKE2b-256 aa1c5c37ecef5495ef64daf642e97cb4c284eaa18a5c9ed6e5d8579832e17de8

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 111467d170eca3b28a02830a3501613db83f54beb30224bd7f8a5a4d3f090e5c
MD5 986fab4257937c22dbe68a2106248df5
BLAKE2b-256 b75376bc6366499bf70a3e2df3a9ba0dd3d0daf24d1adc8bfd4208a862441533

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e476e1d5a1ed724eaf6680dd36b345d3e33e6b168a3d0c4bb8c25d1b6c40f097
MD5 15c619eb81a7d04e543d1c11d50cb2e8
BLAKE2b-256 fd6130b52e1bb29255f2bebc957e2ed08cefc66b152c5fa64b307f039e07e910

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cb3bda889f512348e1ecc99a73d29cc8dc7d3b7bdae8702901066ea1f66e480d
MD5 4afaf42d29d6681cb91be3bab93748b7
BLAKE2b-256 9eefb15e799836fb37de0346b47ebc9ebfea689a0d61953e5b1795d6ee2c1329

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp311-cp311-win32.whl.

File metadata

  • Download URL: atemwire-0.15.0.dev1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 320.6 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for atemwire-0.15.0.dev1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 dac7353bf946aab70e3569b81c37061201f3c24a3292bbaaf83b4fd62d7e0b7f
MD5 1afe6ff6aff7f12a8eecdf4e9a72592b
BLAKE2b-256 9aedad2e0d977bdd82ca2ce770a113f860324405b5d8ee7956785c7ca1459a92

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp311-cp311-win32.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0481b93b2e026c61ba02882f76ff5d73094b52141f4d8d94aba06ab321b81e9
MD5 c9ab0092fead8dd5a1b409cbaf1070f0
BLAKE2b-256 4519918c3131b85930129553d69cfb4ab47d8b53dc436459b484b9512593622a

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 61a34c64bb8673e2c60d090c7512cbf700c6fe1917575845da5679a9d91333e8
MD5 f2e32878387c47e0faecb2607005209b
BLAKE2b-256 213da6e0b60684897d711d1752b9e381b02e85770731edc420e854e908ddc14f

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05dd9bcd0d46a91e4a95de9ba641c90b4a1961d99b3584cd3d8a6022d16f8de0
MD5 1797f309e47ac0e72d22b391d09a4b68
BLAKE2b-256 5717437b81daf020bd8a4946e6b839bd7afbef8cae32669ee4a67124c6048890

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cb86be2c6b4946c6a0a730b308da204d9df3ad6b91d84071bbac88c0ec4a8b53
MD5 8cc0c99bfef3cea34b4a3353f13a0ec1
BLAKE2b-256 ca5d2af04a51ea192b032e7803c7e7c89d65bf8c515cb36ae6e969ddea6bb047

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 04ed140086c0ee91fa796d072c47d949df69ec61108508d14a32d77c408b55f7
MD5 14c2624b476ea0659970bdbb0ff7839d
BLAKE2b-256 0e215478c4c1814962cf17c5fcd7bf9b00951408abe7fe15616462c568c64743

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp310-cp310-win32.whl.

File metadata

  • Download URL: atemwire-0.15.0.dev1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 320.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for atemwire-0.15.0.dev1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 5be1034978070e17f1a0911103267211121e78142818b11b2cc97f694666f5f9
MD5 dd2ecfa0e0ddae6489da509a69268dd2
BLAKE2b-256 bbc83868d58ac05d3e9a0c0a299839106d909d3f833adaf3261e417c7651187a

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp310-cp310-win32.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35f8809bab1b47ab87bce16b5e23d1e3fc26dbb7dc776d59f916eec13542c021
MD5 efad699be18863c0158400c4a657cae8
BLAKE2b-256 c7d58a730d5da15bec174e438dcc2f6f620434fe835ea686a665f744869644f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 35651c9a6d5dc16d7bbf9c9abc1407b94fbc64ed5422725827223fcfad30c4a1
MD5 a777959608d61db0e1757fa326137eb5
BLAKE2b-256 5e9452d9d84e7b3d7b3b59ebdd4dc573cf41370aaae6baa5e4d2b3302cfdebc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cce80633339abd932a471f34fc9fede7491240e720e6aa3242db15f09cb98995
MD5 105b6d5ff5177ba666a92af21458535d
BLAKE2b-256 d3ca752d962c24af5ed7fba2221fedfd75cde06141394da8915fb71f3b2dca01

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

File details

Details for the file atemwire-0.15.0.dev1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for atemwire-0.15.0.dev1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ab4fb415b5945a17c411069535d3d3e83f92b2ca0b1ef2d5273db54de39593ac
MD5 b06495adcefb9cc0d9cffe97a82856eb
BLAKE2b-256 1cc3d24318a3593a199b7a1b44e6e02b3cf0953d56a1a3da1f1b9697f51100f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for atemwire-0.15.0.dev1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on lucas-romanenko/bmdwire

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

Release history Release notifications | RSS feed

This release

0.15.0.dev1 This release

31 files

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