Skip to content

Commit 0bb90ce

Browse files
authored
Update Number of Channel Query In Stream Reader's and Writer's Verify Function (#852)
* Speed up stream reader verify function Use self._in_strea.num_chans to get number of channels * Apply similar modification to writer * Generate the code * Update CHANGELOG.md - as per Brad's comment, it affects all read and write functions, thus may need to let user know this
1 parent 72d09b9 commit 0bb90ce

File tree

5 files changed

+9
-17
lines changed

5 files changed

+9
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ All notable changes to this project will be documented in this file.
2929
* [Full changelog: 1.2.0...1.3.0](https://github.com/ni/nidaqmx-python/compare/1.2.0...1.3.0)
3030

3131
* ### Resolved Issues
32-
* ...
32+
* [843: read methods use task.in_stream.channels_to_read, which is slow](https://github.com/ni/nidaqmx-python/issues/843)
3333

3434
* ### Major Changes
3535
* (IN PROGRESS behind "WAVEFORM_SUPPORT" feature toggle) Added support for reading and writing Waveform data.

generated/nidaqmx/stream_readers/_channel_reader_base.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ def _verify_array(self, data, number_of_samples_per_channel, is_many_chan, is_ma
5656
if not self._verify_array_shape:
5757
return
5858

59-
channels_to_read = self._in_stream.channels_to_read
60-
number_of_channels = len(channels_to_read.channel_names)
59+
number_of_channels = self._in_stream.num_chans
6160

6261
array_shape: tuple[int, ...] | None = None
6362
if is_many_chan:
@@ -100,8 +99,7 @@ def _verify_array_digital_lines(self, data, is_many_chan, is_many_line):
10099
if not self._verify_array_shape:
101100
return
102101

103-
channels_to_read = self._in_stream.channels_to_read
104-
number_of_channels = len(channels_to_read.channel_names)
102+
number_of_channels = self._in_stream.num_chans
105103
number_of_lines = self._in_stream.di_num_booleans_per_chan
106104

107105
array_shape: tuple[int, ...] | None = None

generated/nidaqmx/stream_writers/_channel_writer_base.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,7 @@ def _verify_array(self, data, is_many_chan, is_many_samp):
9393
if not self._verify_array_shape:
9494
return
9595

96-
channels_to_write = self._task.channels
97-
number_of_channels = len(channels_to_write.channel_names)
96+
number_of_channels = self._out_stream.num_chans
9897

9998
expected_num_dimensions = None
10099
if is_many_chan:
@@ -130,8 +129,7 @@ def _verify_array_digital_lines(self, data, is_many_chan, is_many_line):
130129
if not self._verify_array_shape:
131130
return
132131

133-
channels_to_write = self._task.channels
134-
number_of_channels = len(channels_to_write.channel_names)
132+
number_of_channels = self._out_stream.num_chans
135133
number_of_lines = self._out_stream.do_num_booleans_per_chan
136134

137135
expected_num_dimensions = None

src/handwritten/stream_readers/_channel_reader_base.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ def _verify_array(self, data, number_of_samples_per_channel, is_many_chan, is_ma
5656
if not self._verify_array_shape:
5757
return
5858

59-
channels_to_read = self._in_stream.channels_to_read
60-
number_of_channels = len(channels_to_read.channel_names)
59+
number_of_channels = self._in_stream.num_chans
6160

6261
array_shape: tuple[int, ...] | None = None
6362
if is_many_chan:
@@ -100,8 +99,7 @@ def _verify_array_digital_lines(self, data, is_many_chan, is_many_line):
10099
if not self._verify_array_shape:
101100
return
102101

103-
channels_to_read = self._in_stream.channels_to_read
104-
number_of_channels = len(channels_to_read.channel_names)
102+
number_of_channels = self._in_stream.num_chans
105103
number_of_lines = self._in_stream.di_num_booleans_per_chan
106104

107105
array_shape: tuple[int, ...] | None = None

src/handwritten/stream_writers/_channel_writer_base.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,7 @@ def _verify_array(self, data, is_many_chan, is_many_samp):
9393
if not self._verify_array_shape:
9494
return
9595

96-
channels_to_write = self._task.channels
97-
number_of_channels = len(channels_to_write.channel_names)
96+
number_of_channels = self._out_stream.num_chans
9897

9998
expected_num_dimensions = None
10099
if is_many_chan:
@@ -130,8 +129,7 @@ def _verify_array_digital_lines(self, data, is_many_chan, is_many_line):
130129
if not self._verify_array_shape:
131130
return
132131

133-
channels_to_write = self._task.channels
134-
number_of_channels = len(channels_to_write.channel_names)
132+
number_of_channels = self._out_stream.num_chans
135133
number_of_lines = self._out_stream.do_num_booleans_per_chan
136134

137135
expected_num_dimensions = None

0 commit comments

Comments
 (0)