Skip to main content

momwire

A pure-Python method-of-moments antenna simulator with optional C++ accelerators (pybind11).

Extracted from antenna_designer.

Solvers

BSplineSolver (degree-d Galerkin, default d=1/2) is the default solver; HMatrixSolver and ArrayBlockSolver are structural accelerators built on top of it. SinusoidalSolver and SinusoidalGalerkinSolver reproduce NEC2's three-term basis (collocation and Galerkin testing respectively) as in-codebase NEC comparators. RazorSolver is the NEC-5 formulation twin: a tent basis with razor-blade (RWG mixed-potential path) testing, transcribed from the NEC-5 Users Manual rather than NEC2's, free space only. Because its testing rule — not its basis, which it shares with BSplineSolver(degree=1) — is NEC-5's own, it reproduces NEC-5's characteristic slow O(1/N) impedance walk without needing the (licensed) NEC-5 binary; see docs/razor-solver.md (momwire#309).

Ports

Every solver family exposes the same port surface, and it is the surface to build on: compute_port_solution() runs one fill and one factorisation over every port at once, so a multi-port structure costs what a single-port one costs.

Three kinds of port, declared at construction, and they can be mixed:

kwarg what it is entry
feeds= a delta gap at a point along a wire — NEC's EX 0 (wire_index, arclength, voltage)
junction_ports= a shunt port on a junction NODE's KCL row: the node drives net inflow (the node's row leaves the constraint set) (junction_index, voltage), or a bare index for 0 V
node_gaps= a SERIES EMF at a junction node, in series with one named wire end — the apex feed (wire_index, "start"|"end", voltage)

Ports are numbered [feeds…, junction_ports…, node_gaps…], and that is the order every port readout is in.

sol = solver.compute_port_solution()  # one fill, one factorisation
sol.y  # (n_ports, n_ports) short-circuit Y
sol.coeffs  # (n_dof, n_ports) — column j is the
#   solution for 1 V at port j
sol.port_currents  # the same matrix as `y`, asserted

compute_y_matrix() is compute_port_solution().y, so the two cannot drift. Any other excitation is coeffs @ V with no second fill — that is the point of the class. To turn a column into currents on the structure, use the solver's currents_at_knots(coeffs[:, j]), or element_currents(coeffs[:, j], subdiv=…) for the (mid, moment, nodes, delta) source terms a field evaluator wants. PortSolution.basis is an opaque per-solve handle — do not introspect it.

Decks

momwire.deck reads a NEC-2 deck and puts it on a solver. The dialect — which cards run, which are refused and in exactly what words — is specified at momwire.dev/reference/deck-grammar-nec2/; that page is normative, and the code is tested against its anchors.

from momwire.deck import build_solver, parse

deck = """CM 20 m dipole, 10 m up over average ground
CE
GW 1 21 -5.05 0. 10. 5.05 0. 10. 1.E-3
GE 1
GN 2 0 0 0 13. 0.005
EX 0 1 11 0 1. 0.
FR 0 1 0 0 14.1
XQ
EN
"""
built = build_solver(parse(deck), basis="bspline")
y = built.solver.compute_port_solution().y
port = built.ports.feed_ports[0]  # the solver row this EX card drives
print(f"Z = {1.0 / y[port, port]:.1f} ohm")  # Z = 67.0-41.1j ohm

parse() returns a dialect-neutral DeckModel; build_solver() maps it onto one of the seven BASES names (five solver families — "bspline" is the default, the degree-2 B-spline) and returns the solver together with a PortPlan. The plan is what makes the solver's ports readable: which row is which EX or LD card, each load's LoadSpec, and one drive vector per execute group over a port set that never changes. Stamping a load impedance is port algebra and stays with the consumer — momwire.deck puts the gap in the matrix and hands over the spec.

A deck's execute groups are what the model says about running it: one per execute card, each carrying its own frequency list, kernel flag and Environment (the ground, its plane and a cliff's second medium). A GN card arms, so a deck may run once in free space and once over ground and each group says which; build_solver(model, group=k) builds over group k's, and frequency_mhz=, extended_kernel= and environment= override it.

Only the operating point moves between those calls, never the geometry, so a swept caller translates once:

from momwire.deck import prepare_mesh

mesh = prepare_mesh(model)  # the polylines, the port plan
solvers = [build_solver(model, mesh=mesh, frequency_mhz=f) for f in sweep]

Every solver built from one handle is given the same coordinate arrays, so a prepared solve is bit-equal to an unprepared one.

SimNEC portal

Installing momwire puts momwire-nec2c on your path — a resident NEC engine speaking the protocol SimNEC uses to drive nec2c, with momwire's solver behind it. Point SimNEC's NEC portal dialog at that command and its Smith chart, tuner and sweeps run on momwire. python -m momwire.portal is the long spelling, and --selftest is the deployment smoke.

momwire-nec2c -version                            # NEC2momwire.<major>.<minor>
momwire-nec2c --selftest                          # PASS / FAIL, no checkout needed
momwire-nec2c --basis sinusoidal < dipole.nec     # or run a deck by hand

Setup, the two filename rules SimNEC enforces, --basis, the caching flags and what refusals look like: momwire.dev/reference/portal-usage/.

momwire.portal may use the solver API and momwire.deck; nothing else in momwire may import from it. The SimNEC protocol is the portal's business alone, and a test enforces that.

Public names

Everything importable from momwire itself. __all__ is the source of truth — tests/test_public_surface_954.py fails if this list and __all__ disagree in either direction, so a name promoted without a line here (or a line here for a name that was never exported) is a red test, not a stale doc.

Solvers — see Solvers above for what distinguishes them:

  • BSplineSolver — degree-d Galerkin, the default.
  • HMatrixSolver, ArrayBlockSolver — structural accelerators over it.
  • SinusoidalSolver, SinusoidalGalerkinSolver — NEC2's three-term basis.
  • RazorSolver — the NEC-5 formulation twin, free space only.
  • PulseSolver, HarringtonSolver — the textbook pair.

Results and control:

  • PortSolution — a solved port network's currents, voltages and Z.
  • Capabilities — what a solver class declares it spans.
  • CancelToken, SolveAborted — cooperative cancellation for a long solve.
  • LatticeFFTUnavailable — raised when a lattice deck cannot take the FFT path.
  • accelerated — True iff the C++ accelerator loaded. Assert it rather than discovering a silent fall-back to pure Python by its runtime.
  • accelerator_variant — which build of it loaded: "avx2", "sse2", "legacy" (the single unsuffixed extension macOS and non-x86 still ship), or None when none did. On x86 the wheel carries the same kernels compiled twice and picks by CPU feature before importing either, because an AVX2 binary on an older CPU does not raise ImportError — it kills the interpreter with an illegal instruction (momwire#1032).

Wire material, for a consumer mirroring the loading into another tool:

  • wire_internal_impedance, insulation_inductance — the per-metre quantities.
  • equivalent_radius — the coated-wire pair's effective radius.

Answers a consumer must give IDENTICALLY to momwire, exported so it cannot answer them differently:

  • ground_touch_tol — is this wire end on the plane (a per-wire relative tolerance; an invented absolute one disagrees at the margin).
  • grounded_crossing_exemption — does this in-plane junction earn the crossing exemption.
  • below_reach_refusal — how far a buried structure may span before the below/below remainder stops being tabulated.
  • wire_to_element — the geometry conversion the array-block path uses.
  • SURFACE_HEIGHT_CLASS — the low-stand-off class's measured conditioning, including the validity floor a consumer refuses against.

Capability axes:

  • axes_for — every axis of one capability row, declared union derived. The single derivation point: a consumer re-deriving ground_model from grounds, or wire_position from buried/contact, is the drift this exists to prevent.
  • AXIS_VALUES — the declared vocabulary.
  • DERIVED_AXES — which axes are computed rather than declared.

Install

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

macOS: the C++ accelerator uses Homebrew's OpenMP runtime, so brew install libomp is required — both to compile from source and to run the prebuilt Apple-Silicon wheel. The wheel deliberately does not bundle libomp (it links Homebrew's by absolute path) so that it shares a single OpenMP runtime with pynec-accel; two private copies in one process abort with OMP: Error #15 (or deadlock). Without libomp installed, the accelerator can't load and momwire warns and falls back to the slower pure-Python path. On Linux the system libgomp covers this, so no extra step is needed.

Test

pip install -e ".[test]"   # core + test deps (pytest, matplotlib, scikit-rf)
pytest tests/

The cross-validation against NEC2 (tests/test_pynec_backend.py) additionally needs PyNEC — a test-only dependency installed separately from a wheel (see below). Those tests skip cleanly when it isn't present; everything else runs without it.

Optional: PyNEC backend (test-only)

momwire can be cross-validated against NEC2 via PyNEC (the tests/test_pynec_backend.py suite); NEC2 also delivers ~5–10× faster single-frequency solves. PyNEC is a test-flow-only dependency — momwire's own solver never imports it.

Install the PyNEC wheel

Install PyNEC from the python-necpp fork's release. The distribution is named pynec-accel (the import name stays PyNEC); the wheels are self-contained — OpenBLAS is vendored (via scipy-openblas32), so no system BLAS, SWIG, or build toolchain is needed — and cover Linux, Windows, and macOS (arm64) on CPython 3.10–3.14:

pip install pynec-accel --no-index \
    --find-links https://github.com/stevenmburns/python-necpp/releases/expanded_assets/v1.7.6

--no-index ensures pip takes the fork's wheel rather than upstream PyNEC on PyPI (which is broken on current Python and lacks the OpenBLAS/OpenMP work). On macOS the wheel shares Homebrew's libomp (brew install libomp) rather than vendoring its own, so it can coexist with momwire's accelerator in one process. After install, from PyNEC import nec_context works and the cross-validation tests run; without it they're skipped (momwire itself needs no PyNEC).

Runtime thread pinning

The wheel links OpenBLAS and parallelises the NEC2 matrix fill with OpenMP. Pick thread counts up front:

export OMP_NUM_THREADS=$(nproc --all)   # PyNEC matrix fill
export OPENBLAS_NUM_THREADS=1           # muzzle numpy/scipy's idle pool

Pinning OPENBLAS_NUM_THREADS=1 stops numpy/scipy from spinning up their own OpenBLAS thread pool that contends with PyNEC's threads on the same cores. On a 100-director Yagi (2142 segs) this is worth ~8% wall time at NP=4.

Release files for momwire 0.54.0

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

Source distribution (sdist)

Source distribution for momwire 0.54.0
File Size Uploaded
momwire-0.54.0.tar.gz 3.0 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for momwire 0.54.0
File
momwire-0.54.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details
momwire-0.54.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
momwire-0.54.0-cp315-cp315-macosx_14_0_arm64.whl CPython 3.15 CPython 3.15 macOS 14.0+ ARM64 Details
momwire-0.54.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
momwire-0.54.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
momwire-0.54.0-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details
momwire-0.54.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
momwire-0.54.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
momwire-0.54.0-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
momwire-0.54.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
momwire-0.54.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
momwire-0.54.0-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
momwire-0.54.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
momwire-0.54.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
momwire-0.54.0-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
momwire-0.54.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
momwire-0.54.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
momwire-0.54.0-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details

Total release size: 53.6 MB

Release files / momwire-0.54.0.tar.gz

Download URL momwire-0.54.0.tar.gz
Size 3.0 MB
Tags Source
SHA-256 checksum
How to use checksums
02ba78af57bc7f5c313222a659c5c6c143ae5ae4cb9346838c68535483ed008f
BLAKE2b-256 checksum
How to use checksums
b9d8b9259a7a047cd938e3c7bc225341b35a5c3d322bda04698af3218749b427
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp315-cp315-win_amd64.whl

Download URL momwire-0.54.0-cp315-cp315-win_amd64.whl
Size 3.2 MB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
7b4a726768ab6a639d5b4130a6380b1835feb72f84dd9e081b83d3d00db0ecb6
BLAKE2b-256 checksum
How to use checksums
7ad312934a56e4874eb889d24d2f9692c0b1f7408bde16f7502acb4d0f8be76c
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL momwire-0.54.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.15 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c315efd06e96e33037dca90e767f84f026c6258436f197089aa14fa0019d3696
BLAKE2b-256 checksum
How to use checksums
1acfc055994aff99b0048258f5c19d31bddaaed968b3a107f5c0949ab2e9d3fe
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp315-cp315-macosx_14_0_arm64.whl

Download URL momwire-0.54.0-cp315-cp315-macosx_14_0_arm64.whl
Size 2.0 MB
Tags CPython 3.15 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
7365a1f4c9cb38b717d2c1c3bd4cace87c382ea86bd116af507d47621ffc88cb
BLAKE2b-256 checksum
How to use checksums
7085244287a77ac7e53745668c87f57bfe23fb63c4356e1c3658dfe14582c14a
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp314-cp314-win_amd64.whl

Download URL momwire-0.54.0-cp314-cp314-win_amd64.whl
Size 3.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
12e589327ae700b2c04614328aeee66b474a4eb593268969af89030bc9a61b2d
BLAKE2b-256 checksum
How to use checksums
4fdcd16a60edda93183616d09f7b739b7975e155890161566700e06d074aa2c8
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL momwire-0.54.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0f6cd712c598ec24d2637afdb70aad35322b084d20d6c265f0f4d88934e80015
BLAKE2b-256 checksum
How to use checksums
f66d3667e580ba6384a58a8a0f8dd9b92d09c6ff93246b563fd564d34563eaf5
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp314-cp314-macosx_14_0_arm64.whl

Download URL momwire-0.54.0-cp314-cp314-macosx_14_0_arm64.whl
Size 2.0 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
36d0af345444d22259399f874680c98f11591c22607048b1dae921c69647d8c0
BLAKE2b-256 checksum
How to use checksums
7c09768206c2a84d30990852a515c214c6385c1b97b058f1f7a8705775b9a5b0
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp313-cp313-win_amd64.whl

Download URL momwire-0.54.0-cp313-cp313-win_amd64.whl
Size 3.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e3cb4ed2a1ddc741c359ab3e31008fa12ab2338ed73a81e77f2bc57585a3557f
BLAKE2b-256 checksum
How to use checksums
ab4c53b4f8ccb273aa0bd1d2c65c509e1dfb6469e269ae349f2b5cf871c64bb4
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL momwire-0.54.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b80f520559f22633bbd72fb926ec23e9a5a7f3e841ed2106bfbfc982ebe9965f
BLAKE2b-256 checksum
How to use checksums
5000f610b721ea8b2d10ee1a6e862157ff9f5c3be2ae3f1b235e055f1cfcef2f
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp313-cp313-macosx_14_0_arm64.whl

Download URL momwire-0.54.0-cp313-cp313-macosx_14_0_arm64.whl
Size 2.0 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
7c364606485e9292c8d6f17aa88bdc90e00ade0c7353556fe384de515f1aa613
BLAKE2b-256 checksum
How to use checksums
aa340663d0639c625d081ee1b0b62fd4ac9c1effe9a2e1d15f3214635b34c2a5
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp312-cp312-win_amd64.whl

Download URL momwire-0.54.0-cp312-cp312-win_amd64.whl
Size 3.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f2e5a6da67bf7c9a2f1140821c32960cb06329475eaf368f27a0892c5825da1d
BLAKE2b-256 checksum
How to use checksums
10103b5f8fad4c4b813b10b60469dbcbd507333bb4d072c03c38cedaec53a07b
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL momwire-0.54.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
deb29c6253dfd23ba35cebb4923dac028df20b2240a5e98776982d42b807f31d
BLAKE2b-256 checksum
How to use checksums
8b568db8641f645572214e1554d48d6b5415063e800c5d2cd7aacc3feccc39f9
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp312-cp312-macosx_14_0_arm64.whl

Download URL momwire-0.54.0-cp312-cp312-macosx_14_0_arm64.whl
Size 2.0 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
aed8c1137c3f54ada18f4a7011b1b61d665222ef8e5a7ee413686320e6abf2b8
BLAKE2b-256 checksum
How to use checksums
94ddb9b63cf5694462d4b23fc52442d3ef32d727f3b33c284b91328f623271ed
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp311-cp311-win_amd64.whl

Download URL momwire-0.54.0-cp311-cp311-win_amd64.whl
Size 3.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
ff1167c9e80d41a501bacd16ec0c429d96b44fbc96d00392aa7e9c3f37ce94dd
BLAKE2b-256 checksum
How to use checksums
6c0476ceb93bb802e094955971c19a346b2740536b690417f49ccd61b5e41e08
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL momwire-0.54.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c0f07c8661e04cdc629a64818a4f02bde42ebb60ec5852b9326ba50301d3dd05
BLAKE2b-256 checksum
How to use checksums
de13d77edd015676a3219ce4d07bf2f69a63176385963d690c5c1733d5dce4f9
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp311-cp311-macosx_14_0_arm64.whl

Download URL momwire-0.54.0-cp311-cp311-macosx_14_0_arm64.whl
Size 2.0 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
4d7c30b0402879008aed1a00a4557f7f9e4f0be434f3e26277b008a77478cecf
BLAKE2b-256 checksum
How to use checksums
cffc3e1f2ca9fc44332ed291448ddb3fa4b3040ce5a85d5f4093613aace45ad0
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp310-cp310-win_amd64.whl

Download URL momwire-0.54.0-cp310-cp310-win_amd64.whl
Size 3.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
97852b0fb7d7239b4d85a97deb46d67ad0d3af852430851df7f52487b696ed31
BLAKE2b-256 checksum
How to use checksums
d25aa151d38042925e02aca28aca669544e45c130701a98741c73a7eef395e4b
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL momwire-0.54.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9e2c6f62195618dabd3bab0b8a9d245c681a83428492fd315f7fda80cc4bdde3
BLAKE2b-256 checksum
How to use checksums
37b0b67d09b78f48fc9e08c8110a60b7e631b096ae4fc1b283e90a2ca3325aa7
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 Sep 12, 2026.

Transparency log

Release files / momwire-0.54.0-cp310-cp310-macosx_14_0_arm64.whl

Download URL momwire-0.54.0-cp310-cp310-macosx_14_0_arm64.whl
Size 2.0 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
9e8e0d70f116199f56d2f15d4140f08ce8cb17fcd75f4b46b522d7089593fc91
BLAKE2b-256 checksum
How to use checksums
7cbec704c7ddf98821eab42ba34b1925515613b9ae323ebe4958e9604adb88d5
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 Sep 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.54.0 This release

19 release files

0.2.3

16 release 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