Skip to main content

arrayprobe-soda2-enhancements

Opt-in corrections for findings against arrayprobe_soda2 (NCAR SODA-2's Python port) -- never part of the faithful port itself. The SODA-2 counterpart of enhancements_uiops/ (arrayprobe-uiops-enhancements, for UIOOPS): same registry mechanism, same one-way dependency (this package imports arrayprobe_soda2, never the reverse), same opt-in convention. SODA-2 and UIOOPS are separate lineages with separate licences (SODA-2 is BSD-3, UCAR 2016) and separate maintainers, so this is its own distribution rather than a subpackage of arrayprobe_enhancements (the import name of arrayprobe-uiops-enhancements) -- see enhancements_soda2/tests/test_lineage_isolation.py.

To use it:

python -m pip install arrayprobe-soda2-enhancements

Applying the corrections to a run. Every correction is opt-in -- name it true in the config's [enhancements] table -- except the five in registry.PROTECTIVE, the corrections for data-destroying upstream defects (no_stuck_diode_fix, last_buffer_index_fix, same_time_buffer_fix, pbp_rejectionflag_ubyte, dilation_clamp_fix). SODA-2 has written no archived product for any probe, so arrayprobe soda2 run applies those by default; name one false, or pass --protective off, to opt out. The .pbp.call sidecar records the protective mode and set. Each module's reason: BACKLOG_STATUS.md.

from arrayprobe_soda2.process_2d import soda2_process_2d
from arrayprobe_soda2_enhancements.registry import PROTECTIVE, apply, load_all, resolve

load_all()                                        # registration is an import side effect
with apply(resolve({"double_pi_fix": True}, protective=PROTECTIVE)) as record:
    data = soda2_process_2d(op)
record["applied"], record["skipped"]              # what reached the driver, and what did not

apply substitutes corrections at named bindings the port exposes in arrayprobe_soda2.enhancement_hooks (the port never imports this package), and restores them on exit. 14 of the 19 corrections reach the driver this way; the other five, and why, are listed in BACKLOG_STATUS.md. With every correction OFF the run is byte-identical to the port.

Which findings ship here and why: BACKLOG_STATUS.md. Corrections not shipped, each with what unblocks it: docs/DEFERRED.md. Per-module design notes: docs/CORRECTIONS.md.

From a clone

Contributors working from a checkout of the repository install it into the root package's existing venv instead (a build-convenience choice, not a boundary one):

# Linux / macOS: .venv/bin/python in place of .venv/Scripts/python.exe
.venv/Scripts/python.exe -m pip install -e enhancements_soda2
cd enhancements_soda2
../.venv/Scripts/python.exe -m unittest discover -s tests -p "test_*.py"

SODA-2 is cited in the form its author, Aaron Bansemer, provided:

Aaron Bansemer. (2026). abansemer/soda2: v2.26.0 (Version v2.26.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.18331418

Metadata

Release files for arrayprobe-soda2-enhancements 0.1.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 arrayprobe-soda2-enhancements 0.1.0
File Size Uploaded Provenance Actions
arrayprobe_soda2_enhancements-0.1.0.tar.gz 89.8 kB With provenance Details for arrayprobe_soda2_enhancements-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for arrayprobe-soda2-enhancements 0.1.0
File Interpreter ABI Platform Actions
arrayprobe_soda2_enhancements-0.1.0-py3-none-any.whl Python 3 none any Details for arrayprobe_soda2_enhancements-0.1.0-py3-none-any.whl

Total release size: 153.1 kB

Release files / arrayprobe_soda2_enhancements-0.1.0.tar.gz

Download URL arrayprobe_soda2_enhancements-0.1.0.tar.gz
Size 89.8 kB
Tags Source
SHA-256 checksum
How to use checksums
654429c43c95399feb2acb87549b35986fbc07818541109fee9c4819686c83d3
BLAKE2b-256 checksum
How to use checksums
d330ccbc60b8dfec157e2c50e96abd6cef72b410a65e8c972a774af9c018259f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

Release files / arrayprobe_soda2_enhancements-0.1.0-py3-none-any.whl

Download URL arrayprobe_soda2_enhancements-0.1.0-py3-none-any.whl
Size 63.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aea6a4cbe90d3554c987d8b24297f99b4b10a5c5cd11ddc735951f1d62509c37
BLAKE2b-256 checksum
How to use checksums
8475c4eda9b702c409ae24f71ca97b88be5907ff4691dc81a5282760ba2eca13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

Security for arrayprobe-soda2-enhancements 0.1.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for arrayprobe_soda2_enhancements-0.1.0.tar.gz

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 Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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