Skip to main content

Contrib drivers

instro-contrib is a separate package containing drivers that have passed code review but were verified on real hardware by the contributor, not by Nominal. They typically come from one of two sources:
  • Community contributions: drivers submitted by users who own the hardware and tested locally.
  • Staff drops: drivers Nominal has written for a device it doesn’t have on hand.
If a driver is in instro-contrib, that means: it type-checks, it has a unit test against a mocked transport, and a Nominal reviewer has read it. It does not mean Nominal has personally run it on the device.

Install

instro-contrib is published on PyPI and installed via the contrib extra:
or with pip:
It’s also included in the all extra. See Installation for the full list of extras.

Import path

Contrib drivers live under instro.contrib.<category>.drivers.<driver_module>:
The category-level class (InstroPSU, InstroDMM, etc.) is always imported from core instro. Only the concrete driver lives in instro.contrib.

Stability expectations

  • API may change between releases. A contrib driver’s constructor or behavior may be revised based on user feedback or graduation. Pin to a specific commit if you need a frozen target.
  • No regression verification by Nominal. A core dependency change (e.g. a VisaDriver refactor) might break a contrib driver between releases. The smoke test catches import-level breaks. Behavioral breaks may not surface until you run it.
  • Bugs are accepted as PRs. If you hit a problem with a contrib driver, the fastest path to a fix is usually contributing one: the original author may not be reachable.

Available drivers

This is the complete set of instro-contrib drivers as of the current release.

Matrix WPS300S-series PSU

Class: MatrixWPS300S
Import: from instro.contrib.psu.drivers import MatrixWPS300S
Tested against: WPS300S-150-5 (0–150 V, 0–5 A, 300 W)
Protocol: SCPI over RS-232, 9600 baud 8-N-1
Drivers should be added to this list as part of the merge which brings them into the main branch. For pre-release drivers browse packages/instro-contrib/instro/contrib/ or this file in the source GitHub repository.

Graduation to core

When Nominal acquires the hardware and can verify the driver directly, it moves into core instro. The import path drops .contrib:
Graduations are noted in CHANGELOG.md. The old instro.contrib import path is a hard cutover. There is no compatibility shim: old code stays broken until the import is updated. For one release after the graduation, a stub at the old path raises an ImportError that names the destination:
The stub is deleted in the following release, after which the old import fails with a plain ImportError.

Contributing a driver

See the Contrib Package section of CONTRIBUTING.md for the contribution bar and review process.