Skip to content

Releases: ni/measurement-plugin-python

Measurement Plug-In SDK for Python v2.1.0

10 Oct 20:09
45fc817
Compare
Choose a tag to compare

Compatibility Notes

  • The version for a measurement plug-in is now specified in the .serviceconfig file. If your plug-in specifies version using the constructor of the MeasurementService 'version' parameter and not with a 'version' element in the .serviceconfig file, the version will be ignored and your service will be registered as version 0.1.0.
  • Configuration parameters with array types should be treated as Sequence[T] or Iterable[T] rather than List[T]. You can still index, iterate, slice, etc. but some operations such as concatenating with another list or tuple are not supported. If you need the parameter to be converted to a list or a tuple, you should do that in your measure() function. See this example.

New Measurement Plug-In Client Generator

Bug Fixes and Minor Changes

  • Replaced internal encoders with message encoder calling public API (#767)
  • Create a top-level ni-measurement-plugin-sdk meta package (#781)
  • Change the generator tool name to ni-measurement-plugin-generator (#798)
  • Added check for metadata validation (#807)
  • Fix invalid test default values and allow double/float parameters take integers (#832)
  • Add enumerate services API (#826)
  • Update measurement service to get version from .serviceconfig (#827)
  • Update default channel pool options when creating grpc channels (#887)
  • Update Plug-in to Plug-In (#898)
  • Do not specify version in the MeasurementService constructor (#907)
  • Update version checking to warn that version is deprecated and error if there is no .serviceconfig version (#935)
  • Add resolve service with information API in the discovery client (#950)

Examples

  • Rename TestStand sequences to append _example (#776)
  • Add .serviceignore files to the examples (#784)
  • Add Plug-in Library installs scripts to the examples (#789)
  • Use the tuple with the updated "in_compliance" value (#842)
  • Replace strings with the constant variable in NI VISA DMM and Output Voltage (#812)
  • Update service class of Game of Life example (#877 #933)
  • Don't assume array parameters are implemented as lists (#936)

New Contributors

Full Changelog: 2.0.0...2.1.0

Measurement Plug-In SDK for Python v2.1.0-dev2

27 Sep 18:12
7df18c2
Compare
Choose a tag to compare

Compatibility Notes

  • The version for a measurement plug-in is now specified in the .serviceconfig file. If your plug-in specifies version using the constructor of the MeasurementService 'version' parameter and not with a 'version' element in the .serviceconfig file, the version will be ignored and your service will be registered as version 0.1.0.
  • Configuration parameters with array types should be treated as Sequence[T] or Iterable[T] rather than List[T]. You can still index, iterate, slice, etc. but some operations such as concatenating with another list or tuple are not supported. If you need the parameter to be converted to a list or a tuple, you should do that in your measure() function. See this example.

New Measurement Plug-In Client Generator

  • Added the client generator, allowing users to call into a measurement plug-in from Python (#889, #891, #892, #900, #901, #902)

Bug Fixes and Minor Changes

  • Measurement Plug-In Generator Bug Fixes Since v2.1.0-dev1
    • Raise errors for invalid enums (#920)
    • Update default value for the pin map sites (#921)
    • Fix mypy errors (#929)
    • Update client to resolve a specific plug-in version (#938)
    • Fix SyntaxWarning caused by incorrect escape sequence (#934)
    • Add dependency on service (#947)
    • Provide support backward compatibility for Older libraries (#951)
    • Fix Path type conversion and type hints for client codegen (#952)
  • Examples
    • Update service class of Game of Life example's .instudioproj and .sfp (#933)
    • Don't assume array parameters are implemented as lists (#936)
  • Update version checking to warn that version is deprecated and error if there is no .serviceconfig version (#935)
  • Add resolve service with information API in the discovery client (#950)

Full Changelog: 2.1.0-dev1...2.1.0-dev2

Measurement Plug-In SDK for Python v2.1.0-dev1

23 Sep 16:54
Compare
Choose a tag to compare

Compatibility Notes

  • The version for a measurement plug-in is now specified in the .serviceconfig file. If your plug-in specifies version using the constructor of the MeasurementService 'version' parameter and not with a 'version' element in the .serviceconfig file, the version will be ignored and your service will be registered as version 0.1.0.
  • Configuration parameters with array types should be treated as Sequence[T] or Iterable[T] rather than List[T]. You can still index, iterate, slice, etc. but some operations such as concatenating with another list or tuple are not supported. If you need the parameter to be converted to a list or a tuple, you should do that in your measure() function. See this example.

New Measurement Service Client Generator

  • Added the client generator, allowing users to call into a measurement service from Python (#889, #891, #892, #900, #901, #902)

Bug Fixes and Minor Changes

  • Update pipeline files to run the acceptance tests in generator directory (#884)
  • Update Plug-in to Plug-In (#898)
  • CONTRIBUTING.md: Update for repo layout, submodules, and new lint tools (#893)
  • Do not specify version in the MeasurementService constructor (#907)

Full Changelog: 2.1.0-dev0...2.1.0-dev1

Measurement Plug-In SDK for Python v2.1.0-dev0

18 Sep 14:07
f7f52d4
Compare
Choose a tag to compare

New Measurement Service Client Generator

Bug Fixes and Minor Changes

  • Rename sequences to append _example (#776)
  • Create a top-level ni-measurement-plugin-sdk meta package (#781)
  • Add .serviceignore files to the examples (#784)
  • Fix ReadTheDocs build by including working directory for post-install (#786)
  • Add Plug-in Library installs scripts to the examples (#789)
  • Change the generator tool name to ni-measurement-plugin-generator (#798)
  • examples: replace strings with the constant variable (#812)
  • Replaced internal encoders with message encoder calling public API (#767)
  • Added check for metadata validation (#807)
  • Fix invalid test default values and allow double/float parameters take integers (#832)
  • Update the stubs for the ni-apis proto files that are out of date (#815)
  • service/tests: Disable large message tests on 32-bit Windows (#820)
  • Simplify mypy invocation by specifying files to check (#816)
  • GitHub: Update poetry lock checking (#823)
  • service/tests: Fix psutil deprecation warning (#817)
  • Update measurement service to get version from .serviceconfig (#827)
  • Add enumerate services API (#826)
  • README.md: Re-add links to example downloads (#836)
  • README.md: Fix documentation links and minor issues (#837)
  • example: use the tuple with the updated "in_compliance" value (#842)
  • renovate: Automatically update ni-apis submodule (#857)
  • github: Upgrade upload-artifact and download-artifact to v4 (#861)
  • Update area path to HW Config Amber (#863)
  • [Minor] Improve the dictionary value accessing (#875)
  • [Minor] Add dependency to Measurement Plug-In Client (#876)
  • Update service class of Game of Life example (#877)
  • Enable Bandit security linter (#865)
  • Update default channel pool options when creating grpc channels (#887)

New Contributors

Full Changelog: 2.0.0...2.1.0-dev0

Measurement Plug-In SDK for Python v2.0.0

16 Jul 15:37
1e5592a
Compare
Choose a tag to compare

Renamed Packages

  • The packages have been renamed to remove the deprecated MeasurementLink product name (#751, #753)
    ni_measurementlink_service -> ni_measurement_plugin_sdk_service
    ni_measurementlink_generator -> ni_measurement_plugin_sdk_generator
  • General removal of MeasurementLink product name (#746)
  • Change the generator tool name to ni-measurement-plugin-generator (#799)
  • Apply renames to markdown contents (#756)
  • Update TestStand sequences with renames (#758)
  • Update discovery client JSON service path (#752)
  • Apply renames in pyproject.toml, docstrings, comments, and logging (#760)
  • Update missed TestStand sequences with renames (#761)
  • Rename .env variable prefix for simulation (#763)
  • Update path names in .py code (#764)

Repo reorganization

  • Major reorganization of the repo to have a packages top-level folder (#787)
    • ni-measurement-plugin-sdk top-level meta package installs the ni-measurement-plugin-sdk-service and ni-measurement-plugin-sdk-generator packages
    • ni-measurement-plugin-sdk-service package is the primary package that allows users to create a measurement plug-in service
    • ni-measurement-plugin-sdk-generator package is a utility package that helps users get started by generating a measurement plug-in service from a template

General Improvements and Fixes

  • Update the repo to pull its .proto files from the ni/ni-apis repo as a submodule instead of duplicating them in this repo (#702)
  • Add timeout of 10s for reserve_all_registered_sessions() (#688)
  • Update service to use I/O resource specialization instead of Pin (#691)
  • Example Improvements and Fixes
    • nidcpower_source_dc_voltage: Update measurement to support multiple instrument sessions (#676)
    • nidcpower_source_dc_voltage: Add a device reset on channels in measurement (#690)
    • nidcpower_source_dc_voltage_with_multiplexer: Reset source channel after running measurement (#696)
    • niscope_acquire_waveform: Update measurement to run when trigger source isn't present in measured pins (#694)
    • Rename sequences to append _example. This helps support using the InstrumentStudio sequencer with our shipping examples (#782)
    • Update TestStand sequence files to use IO Resource instead of Pin (#704)
  • Other Fixes
    • Fix ReadTheDocs build by including working directory for post-install (#790)
    • Add .serviceignore files to the examples (#791)
    • Add Plug-in Library installs scripts to the examples (#792)
    • Fix zipping examples during publish (#796)
    • Updating DAQmx example to allow it to run without pin maps (#736)
    • example: game_of_life: remove the second incrementation of generation variable (#770)
    • Update test instructions to include simulation of devices so all tests will run (#739)
    • Display proper error message when update pin map step is not set up correctly in a TestStand sequence (#719)
    • Allowing _helpers.py in our examples to return an empty string for the pin map id when there is no active pin map (#735)
    • Add 'Load Files' parameter to digital measurement so it can work with the InstrumentStudio simple sequencer (#732)
    • Update lock file and fix docutils import (#740)

New Contributors

Full Changelog: 1.4.0...2.0.0

Measurement Plug-In SDK for Python v2.0.0-dev5

15 Jul 20:42
58a205a
Compare
Choose a tag to compare

What's Changed

  • Change the generator tool name to ni-measurement-plugin-generator (#799)
  • Fixes
    • Fix zipping examples during publish (#796)

Full Changelog: 2.0.0-dev4...2.0.0-dev5

Measurement Plug-In SDK for Python v2.0.0-dev4

12 Jul 17:00
ed7080a
Compare
Choose a tag to compare

What's Changed

  • Major reorganization of the repo to have a packages top-level folder (#787)
    • ni-measurement-plugin-sdk top-level meta package installs the ni-measurement-plugin-sdk-service and ni-measurement-plugin-sdk-generator packages
    • ni-measurement-plugin-sdk-service package is the primary package that allows users to create a measurement plug-in service
    • ni-measurement-plugin-sdk-generator package is a utility package that helps users get started by generating a measurement plug-in service from a template
  • Examples
    • Rename sequences to append _example. This helps support using the InstrumentStudio sequencer with our shipping examples (#782)
  • Fixes
    • Fix ReadTheDocs build by including working directory for post-install (#790)
    • Add .serviceignore files to the examples (#791)
    • Add Plug-in Library installs scripts to the examples (#792)

Full Changelog: 2.0.0-dev2...2.0.0-dev4

Measurement Plug-In SDK for Python v2.0.0-dev2

26 Jun 16:05
Compare
Choose a tag to compare

What's Changed

  • Additional renames away from MeasurementLink
    • Apply renames to markdown contents (#756)
    • Update TestStand sequences with renames (#758)
    • Update discovery client JSON service path (#752)
    • Apply renames in pyproject.toml, docstrings, comments, and logging (#760)
    • Update missed TestStand sequences with renames (#761)
    • Rename .env variable prefix for simulation (#763)
    • Update path names in .py code (#764)
  • Fixes
    • Updating DAQmx example to allow it to run without pin maps (#736)
    • example: game_of_life: remove the second incrementation of generation variable (#770)

New Contributors

Full Changelog: 2.0.0-dev1...2.0.0-dev2

Measurement Plug-In SDK for Python v2.0.0-dev1

17 Jun 16:14
e236962
Compare
Choose a tag to compare

Renamed Packages

  • The packages have been renamed to remove the deprecated MeasurementLink product name (#751, #753)
    ni_measurementlink_service -> ni_measurement_plugin_sdk_service
    ni_measurementlink_generator -> ni_measurement_plugin_sdk_generator
  • General removal of MeasurementLink product name (#746)

What's Changed

  • Examples
    • Update TestStand sequence files to use IO Resource instead of Pin (#704)
  • General
    • Update the repo to pull its .proto files from the ni/ni-apis repo as a submodule instead of duplicating them in this repo (#702)
    • Update test instructions to include simulation of devices so all tests will run (#739)
  • Fixes
    • Display proper error message when update pin map step is not set up correctly in a TestStand sequence (#719)
    • Allowing _helpers.py in our examples to return an empty string for the pin map id when there is no active pin map (#735)
    • Add 'Load Files' parameter to digital measurement so it can work with the InstrumentStudio simple sequencer (#732)
    • Update lock file and fix docutils import (#740)

New Contributors

Full Changelog: 1.5.0-dev0...2.0.0-dev1

MeasurementLink Support for Python v1.5.0-dev0

19 Apr 19:39
Compare
Choose a tag to compare

What's Changed

  • Example Improvements and Fixes
    • nidcpower_source_dc_voltage: Update measurement to support multiple instrument sessions (#676)
    • nidcpower_source_dc_voltage: Add a device reset on channels in measurement (#690)
    • nidcpower_source_dc_voltage_with_multiplexer: Reset source channel after running measurement (#696)
    • niscope_acquire_waveform: Update measurement to run when trigger source isn't present in measured pins (#694)
  • Add timeout of 10s for reserve_all_registered_sessions() (#688)
  • Update service to use I/O resource specialization instead of Pin (#691)

New Contributors

Full Changelog: 1.4.0...1.5.0-dev0