Skip to content

Conversation

@mikeprosserni
Copy link
Contributor

@mikeprosserni mikeprosserni commented Aug 15, 2025

  • This contribution adheres to CONTRIBUTING.md.
  • I've updated CHANGELOG.md if applicable.
  • I've added tests applicable for this pull request

What does this Pull Request accomplish?

  • Adds AnalogMultiChannelReader.read_waveforms()
  • Adds LibraryInterpreter.read_analog_waveforms() and .internal_read_analog_waveform_per_chan()

Why should this Pull Request be merged?

Users want to be able to read multiple waveforms at once.

What testing has been done?

test___analog_multi_channel_reader___read_waveforms_feature_disabled___raises_feature_not_supported_error
test___analog_multi_channel_reader___read_waveforms___returns_valid_waveforms
test___analog_multi_channel_reader___read_waveforms_no_args___returns_valid_waveforms
test___analog_multi_channel_reader___read_waveforms_in_place___populates_valid_waveforms
test___analog_multi_channel_reader___read_into_undersized_waveforms___throws_exception
test___analog_multi_channel_reader___read_with_wrong_number_of_waveforms___throws_exception

@github-actions
Copy link
Contributor

github-actions bot commented Aug 15, 2025

Test Results

    22 files   -     12      22 suites   - 12   29m 55s ⏱️ - 28m 36s
 2 558 tests +    12   2 176 ✅ +     7    382 💤 +    5  0 ❌ ±0 
23 977 runs   - 21 583  20 704 ✅  - 18 360  3 273 💤  - 3 223  0 ❌ ±0 

Results for commit b697c4d. ± Comparison against base commit 4451d98.

♻️ This comment has been updated with latest results.

@bkeryan
Copy link
Collaborator

bkeryan commented Aug 15, 2025

Command ['D:\\a\\nidaqmx-python\\nidaqmx-python\\.venv\\Scripts\\python.exe', '-I', '-W', 'ignore', '-c', 'import sys\n\nif hasattr(sys, "real_prefix"):\n    print(sys.real_prefix)\nelif hasattr(sys, "base_prefix"):\n    print(sys.base_prefix)\nelse:\n    print(sys.prefix)\n'] errored with the following return code 3221225781
Error: Process completed with exit code 1.

@mikeprosserni I don't know what happened here. Try rerunning failed jobs.

@mikeprosserni
Copy link
Contributor Author

mikeprosserni commented Aug 15, 2025

Note, I'll need to merge in the waveform_attribute_mode changes here once they are committed.

Actually, since this PR was ready first, I'll merge the other way.

@mikeprosserni
Copy link
Contributor Author

mikeprosserni commented Aug 15, 2025

Command ['D:\\a\\nidaqmx-python\\nidaqmx-python\\.venv\\Scripts\\python.exe', '-I', '-W', 'ignore', '-c', 'import sys\n\nif hasattr(sys, "real_prefix"):\n    print(sys.real_prefix)\nelif hasattr(sys, "base_prefix"):\n    print(sys.base_prefix)\nelse:\n    print(sys.prefix)\n'] errored with the following return code 3221225781
Error: Process completed with exit code 1.

@mikeprosserni I don't know what happened here. Try rerunning failed jobs.

@bkeryan I retried twice, and it failed all three times.

Mike Prosser added 2 commits August 15, 2025 16:05
@mikeprosserni mikeprosserni requested a review from bkeryan August 15, 2025 21:09
@bkeryan
Copy link
Collaborator

bkeryan commented Aug 15, 2025

@mikeprosserni I don't know what happened here. Try rerunning failed jobs.

@bkeryan I retried twice, and it failed all three times.

@mikeprosserni @mshafer-NI setup-poetry is building dulwich (which includes optional Rust extensions) from source and poetry install is failing with error 0xC0000135 (STATUS_DLL_NOT_FOUND). It seems like these might be related.

We're planning to upgrade ni/python-actions/setup-poetry to use Poetry 2.x by default soon. I'll see if that fixes this.

Edit: also, yesterday's builds like https://github.com/ni/nidaqmx-python/actions/runs/16970490210/job/48105927969 used Python 3.13.5 but this build used Python 3.13.6.

@bkeryan
Copy link
Collaborator

bkeryan commented Aug 15, 2025

@mikeprosserni @mshafer-NI It still fails with Poetry 2.1.3: https://github.com/ni/nidaqmx-python/actions/runs/17000915019/job/48202416338?pr=802

Now I think the problem is that the venv cache key is not using the full Python version, so upgrading from 3.13.5 to 3.13.6 didn't invalidate the cache.

Cache hit for: nidaqmx-main-only-Windows-py3.13-d40744af24cb311168b8937563e292230256002a81c59bd5b1a861ec71fa9acd

@bkeryan
Copy link
Collaborator

bkeryan commented Aug 15, 2025

@mikeprosserni @mshafer-NI It still fails with Poetry 2.1.3: https://github.com/ni/nidaqmx-python/actions/runs/17000915019/job/48202416338?pr=802

Now I think the problem is that the venv cache key is not using the full Python version, so upgrading from 3.13.5 to 3.13.6 didn't invalidate the cache.

Cache hit for: nidaqmx-main-only-Windows-py3.13-d40744af24cb311168b8937563e292230256002a81c59bd5b1a861ec71fa9acd

#803

@bkeryan bkeryan enabled auto-merge (squash) August 16, 2025 19:11
@bkeryan
Copy link
Collaborator

bkeryan commented Aug 16, 2025

#803

@mikeprosserni That fixed it. I merged main into this PR's branch.

@bkeryan bkeryan merged commit 80aa980 into master Aug 17, 2025
31 of 32 checks passed
@mikeprosserni mikeprosserni deleted the users/mprosser/task-3233518-analog-multi-read-waveform branch August 18, 2025 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants