Releases: ni/nidaqmx-python
Releases · ni/nidaqmx-python
1.2.0
1.2.0
-
Merged Pull Requests
-
Resolved Issues
- Fix PEP 660 builds by setting
build-system
to usepoetry-core
- 579: nidaqmx does not generate numbered virtual channel names correctly
- 692: Cannot set "ai_conv_rate" on NI DAQ 9209 due to missing active device modifier for timing attributes
- Fix PEP 660 builds by setting
-
Major Changes
- Removed the
docs
extra and converted it to a Poetry dependency group. - Updated hightime dependency from
^0.2.2
to>=0.2.2
to allow for newer versions.
- Removed the
1.2.0-dev1
Resolved Issues
- Update tests to require X Series device with 32 DIO lines (#753)
- Fix dependency: hightime = ">=0.2.2" (#772)
New Contributors
- @github-actions made their first contribution in #751
- @TanYiQing made their first contribution in #753
- @mikeprosserni made their first contribution in #772
Full Changelog: 1.2.0-dev0...1.2.0-dev1
1.2.0-dev0
Resolved Issues
- Fix PEP 660 builds by setting
build-system
to usepoetry-core
- 579: nidaqmx does not generate numbered virtual channel names correctly
Major Changes
- Removed the
docs
extra and converted it to a Poetry dependency group.
Minor Changes
- Upgrade to Python 3.9 syntax (#681)
- README.rst: Clarify that NI created and supports this package (#703)
- nidaqmx: Update to typeshed gRPC stubs (#708)
- Update pep8-naming and fix inconsistently named TypeVar (#713)
- Remove NILICENSE for gRPC Features (#716)
- Update DAQmx Installer Download Link (#728)
- mypy: Enable --warn-unused-ignores and remove unused ignores (#749)
- GitHub Actions workflow and repository improvements
New Contributors
Full Changelog: 1.1.0...1.2.0-dev0
1.1.0
1.1.0
-
Merged Pull Requests
-
Resolved Issues
-
Major Changes
- Added support for mioDAQ configurable digital voltage.
- Added support for mioDAQ ID Pin.
- Removed support for Python 3.8.
1.0.2
1.0.2
-
Merged Pull Requests
-
Resolved Issues
- 644: nidaqmx doesn't support Python 3.13+
- 641: No devices found
- Fall back to ASCII encoding if the system locale is not set.
-
Known Issues
1.0.1
1.0.1
-
Merged Pull Requests
-
Resolved Issues
- 540: Task.wait_for_valid_timestamp doesn't return the timestamp
- 606: CERTIFICATE_VERIFY_FAILED occurs when executing installdriver command on Windows system
- 615: Onboard device memory overflow
- 623: installdriver CLI doesn't prompt or indicate what versions are being downloaded/installed on a clean system
-
Known Issues
1.0.0
1.0.0
-
Merged Pull Requests
-
Resolved Issues
-
Major Changes
- Add support for strain calibration (offset nulling and shunt calibration)
- Add support for DAQmx calibration info properties
- Add support for WaitForValidTimestamp
- Fix naming issues:
- Rename
ShuntCalSelect.AAND_B
toA_AND_B
.
- Rename
- Automate Driver Install Experience within nidaqmx Module
- Update libtime to accept time before 1970
1.0.0-dev0
Pre-release version for further testing.
In lieu of full release notes, here are the commits since 0.9.0
* 8a96d34 (HEAD -> master, origin/master) update to 1.0.0-dev0 (#567)
* a6d9e71 Reorganize examples to folders (#565)
* 31a89b5 After the fact feedback from PR #558 (#564)
* 06da4f4 Build(deps): Bump idna from 3.6 to 3.7 (#563)
* e609ae6 Update hightime library (#560)
* 5a8c6a5 Automate Driver Install Experience within nidaqmx Module (#512)
* 230b235 Add tests to verify closing task in event callback does not crash or error (#558)
* 3fdfbee Accept either comma delimited or flattened channel string as valid (#553)
* b73c3ac mypy: Ignore redef in importlib_metadata hack and run mypy --platform win32 (#554)
* a60f369 Component tests for Global Chans, Task Done, and Watchdog (#548)
* 44f2486 Improve error reporting in some cases (#550)
* 33fb53f Build(deps-dev): Bump black from 24.2.0 to 24.3.0 (#547)
* ef87d63 fix physical channel/device collection slice/string behavior (#536)
* e902251 Add pathlib.PurePath type for file path (#542)
* d5b5636 Pick up trigger attributes changes from scrapigen (#545)
* d4d078b Refactor Task Internal Modules: Triggers (#546)
* 2e0e590 Refactor Task Internal Modules: Channels (#544)
* 4d6b783 Refactor Task Internal Modules: Collections (#541)
* 026eba1 Update cfg analog multi edge trig APIs (#535)
* 5fd2123 Refactor Task Internal Modules (ExportSignal, OutStream, Timing) (#539)
* 22301b5 Refactor task.py and internal module (in_stream.py) (#534)
* 91cea8e Allocate Buffer Size for Read/Write String Status Properties (#537)
* 0f65354 Fix parameter rosette_meas_types type in docstrings (#511)
* ca462ac Add Counter Stream Writer tests (#533)
* c0e4716 Add Tox Env for Internationalization Testing (#532)
* 2c18e56 Add Digital Stream Writer tests (#531)
* bac7f01 Add Functional Tests for Internationalization (#525)
* df7366e tests: Add new tests for Task.read (#530)
* 57b0001 handwritten: Fix mypy errors with recent _lib.py changes
* 5ca4030 handwritten: Fix Linux-specific mypy error
* 5646c78 GitHub: Run mypy on generated/nidaqmx
* 7b8c8ca handwritten: Fix mypy errors in task.py
* bbce385 handwritten: Fix mypy errors in stream_readers.py
* a5aee8a codegen: Fix mypy errors in in_stream.py
* 12e5ea1 codegen: Fix mypy errors for numpy.float64([...]), etc.
* 71ee5aa handwritten: Fix mypy errors in _time.py
* a0a4cd9 codegen, handwritten: Ignore mypy errors in "alternate constructors"
* c999a5f handwritten: Fix mypy errors for utils.py
* 5f3dd8f Update poetry.lock (#526)
* 4e41a70 Add Analog Stream Writer tests (#515)
* 981e45f Support Non-ASCII Characters for User-Provided String (#518)
* 9648bc6 Add python-decouple Dependency (#524)
* 6267cc0 Add functional test for wait_for_valid_timestamp (#510)
* 18cb6e2 Update libtime to accept time before 1970 (#504)
* 205dc3b Add tzlocal dependency in poetry.lock (#521)
* bb5ef01 Update AI Bridge Default Argument Values (#509)
* 22ae455 Change ai_voltage_field_daq_task to ai_voltage_task (#520)
* a2869af Update poetry.lock and reformat code with updated tools (#517)
* 7e8800c Add max_config files for Linux (#516)
* 14f953c tests: Fix mypy errors and run mypy during PR build (#505)
* 0905e65 replace fielddaq with cdaq in tests (#513)
* a7a3643 Add support for DAQmx calibration info properties (#473)
* 8cac1b8 Add support for WaitForValidTimestamp to nidaqmx-python (#479)
* ba42d15 Add Unit test for cfg_time_start_trig (#488)
* 6acaca7 handwritten: Add `CalHandle` and `TaskHandle` type aliases to `_lib` and delete conditionals for DAQmx version <8.9 (#503)
* ce040ba add subclass (#496)
* ac3f5e0 Be more precise with X series device fixtures (#501)
* 0e87936 Split stream reader component tests by subsystem (#499)
* 97e0c37 fix typing issue in Python 3.8 (#500)
* 3129f87 Add Counter Stream Reader tests (#497)
* 11b8f56 Add Digital Stream Reader tests (#494)
* 173f46b Fix raw-read Function Names Spacing Issue (#492)
* 3d67f7d Add Analog Stream Reader tests (#493)
* 457077b Add Digital and Counter create channel tests (#491)
* 7119a3f Add AI TEDS create channel tests (#490)
* 1305bc1 import MAX config when running system tests (#489)
* 53c8ef9 Add "When" attribute to start_trigger.py (#481)
* a6b070d Add AI create channel tests (#485)
* 8bc4799 Fix readthedocs documentation generation (#486)
* 908cebf CONTRIBUTING.md: Update physical device recommendation (#480)
* 5e77102 Add CfgTimeStartTrig to daqmx-python (#475)
* c5fddf5 Add Offset Nulling Calibration API support for nidaqmx-python (#468)
* 8f1b610 Add Shunt Cal API support for nidaqmx-python (#469)
* 275944c Build(deps): Bump jinja2 from 3.1.2 to 3.1.3 (#470)
* eca4e38 repo: Add security policy (#467)
* f5c7da3 Update to 0.9.1 (#466)
0.9.0
0.9.0
-
Merged Pull Requests
-
Major Changes
nidaqmx.errors.DaqNotFoundError
,nidaqmx.errors.DaqNotSupportedError
, and
nidaqmx.errors.DaqFunctionNotSupportedError
are now public exceptions.- Consistently return
nidaqmx.errors.DaqNotFoundError
on all platforms when the NI-DAQmx
driver is not installed. - Updated supported Python versions to 3.8, 3.9, 3.10, 3.11, and 3.12
0.8.0
0.8.0
-
Merged Pull Requests
- Full changelog: 0.7.0...0.8.0
- Query: Closed PRs with the label: interpreter_implementation
- Query: Closed PRs with the label: library_interpreter
- Query: Closed PRs with the label: grpc_interpreter
- Query: Closed PRs with the label: test_improvements
- Query: Closed PRs with the label: interpreter_fixes
- Query: Closed PRs with the label: interpreter_testcase_update
- Query: Closed PRs with the label: event_handling
-
Major Changes
- Added support for communicating with DAQmx devices through gRPC using NI gRPC Device Server. This enables using DAQmx with the MeasurementLink session management service.
- The initialization methods for
Task
,Scale
, and other classes now accept a keyword-onlygrpc_options
parameter. Pass aGrpcSessionsOptions
object to enable gRPC support. - The
System
class now has aremote()
method which accepts aGrpcSessionOptions
object. - NI gRPC Device Server version 2.2 or later is required. Older versions of NI gRPC Device Server are unsupported because they are missing bug fixes needed to support nidaqmx-python.
- The initialization methods for
- The following functions now emit
DeprecationWarning
when called:nidaqmx.errors
module:check_for_error
,is_string_buffer_too_small
, andis_array_buffer_too_small
arectypes
-specific helper functions, so they have been moved to an internal module.System
class:set_analog_power_up_states
does not supportPowerUpStates.TRISTATE
andget_analog_power_up_states
has design issues that make the previous implementation unworkable, so they have been deprecated in favor ofset_analog_power_up_states_with_output_type
andget_analog_power_up_states_with_output_type
.
- The internals of the
nidaqmx
package have been refactored to support gRPC:- Access to the DAQmx driver is now handled by the internal
BaseInterpreter
abstract base class. There are separate implementations of this abstract base class forctypes
vs. gRPC. - Internal initialization methods now accept an
interpreter
parameter. Methods that take aninterpreter
are not part of the public API. - Added a stub generator which will generate the gRPC stub files based on the proto files present in
src/codegen/protos
. The files will be generated intogenerator/nidaqmx/_stubs
. - The internal
nidaqmx._task_modules.read_functions
andnidaqmx._task_modules.write_functions
modules have been removed. If your application uses these modules, you must update it to use public APIs such astask.read()
/task.write()
,task.in_stream.read()
/task.out_stream.write()
, ornidaqmx.stream_readers
/nidaqmx.stream_writers
. - Updated the existing tests to run with and without gRPC support.
- Added multiple test cases to improve the overall test coverage.
- Access to the DAQmx driver is now handled by the internal
- Added support for communicating with DAQmx devices through gRPC using NI gRPC Device Server. This enables using DAQmx with the MeasurementLink session management service.
-
Known Issues
- Comparisons between DAQmx object instances do not take gRPC remoting into account. For example,
Device("Dev1")
refers to a local device andDevice("Dev1", grpc_options=...)
refers to a remote device, but they are considered equal. Likewise, two instances ofDevice("Dev1", grpc_options=...)
with different remote hosts are considered equal.
- Comparisons between DAQmx object instances do not take gRPC remoting into account. For example,