tektronix / tm_devices

Test & Measurement Device Management
https://tm-devices.readthedocs.io
Apache License 2.0
48 stars 20 forks source link

Enable adding unsupported device types via the DeviceManager #262

Closed nfelt14 closed 3 months ago

nfelt14 commented 3 months ago

Proposed changes

Unsupported device types can now be added via the DeviceManager (or config file or environment variable). This does raise a warning indicating that functionality is limited.

Types of changes

What types of changes does your code introduce? Put an x in the boxes that apply

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

github-actions[bot] commented 3 months ago

Breaking API Changes

src/tm_devices/helpers/constants_and_dataclasses.py:497: VALID_DEVICE_CONNECTION_TYPES:
Attribute value was changed:
  Old: MappingProxyType({DeviceTypes.AFG: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.AWG: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.DAQ: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.GPIB, ConnectionTypes.SERIAL), DeviceTypes.DMM: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.MT: (ConnectionTypes.REST_API), DeviceTypes.PSU: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.SCOPE: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB, ConnectionTypes.MOCK), DeviceTypes.SMU: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.SS: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.GPIB)})
  New: MappingProxyType({DeviceTypes.AFG: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.AWG: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.DAQ: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.GPIB, ConnectionTypes.SERIAL), DeviceTypes.DMM: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.MT: (ConnectionTypes.REST_API), DeviceTypes.PSU: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.SCOPE: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB, ConnectionTypes.MOCK), DeviceTypes.SMU: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.SERIAL, ConnectionTypes.GPIB), DeviceTypes.SS: (ConnectionTypes.TCPIP, ConnectionTypes.USB, ConnectionTypes.SOCKET, ConnectionTypes.GPIB), DeviceTypes.UNSUPPORTED: tuple(ConnectionTypes)})

Link to workflow run

codecov[bot] commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (c6e87cf) to head (b531456). Report is 53 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #262 +/- ## ========================================= Coverage 100.00% 100.00% ========================================= Files 152 152 Lines 4829 4821 -8 Branches 768 769 +1 ========================================= - Hits 4829 4821 -8 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 3 months ago

Test Results (windows)

path passed subtotal
tests\test_afgs.py 2 2
tests\test_alias_dict.py 1 1
tests\test_all_device_drivers.py 1 1
tests\test_alternative_connection_addresses.py 19 19
tests\test_awgs.py 4 4
tests\test_config_parser.py 38 38
tests\test_device_manager.py 18 18
tests\test_devices_legacy_tsp_ieee_cmds.py 3 3
tests\test_generate_waveform.py 6 6
tests\test_helpers.py 71 71
tests\test_ieee_scpi_cmds.py 1 1
tests\test_margin_testers.py 5 5
tests\test_pi_device.py 1 1
tests\test_psu.py 1 1
tests\test_rest_api_device.py 10 10
tests\test_scopes.py 7 7
tests\test_singleton.py 1 1
tests\test_smu.py 4 4
tests\test_ss.py 1 1
tests\test_tm_devices.py 4 4
tests\test_unsupported_device_type.py 1 1
TOTAL 199 199

Link to workflow run

github-actions[bot] commented 3 months ago

Test Results (macos)

path passed subtotal
tests/test_afgs.py 2 2
tests/test_alias_dict.py 1 1
tests/test_all_device_drivers.py 1 1
tests/test_alternative_connection_addresses.py 19 19
tests/test_awgs.py 4 4
tests/test_config_parser.py 38 38
tests/test_device_manager.py 18 18
tests/test_devices_legacy_tsp_ieee_cmds.py 3 3
tests/test_generate_waveform.py 6 6
tests/test_helpers.py 71 71
tests/test_ieee_scpi_cmds.py 1 1
tests/test_margin_testers.py 5 5
tests/test_pi_device.py 1 1
tests/test_psu.py 1 1
tests/test_rest_api_device.py 10 10
tests/test_scopes.py 7 7
tests/test_singleton.py 1 1
tests/test_smu.py 4 4
tests/test_ss.py 1 1
tests/test_tm_devices.py 4 4
tests/test_unsupported_device_type.py 1 1
TOTAL 199 199

Link to workflow run

github-actions[bot] commented 3 months ago

Test Results (ubuntu)

path passed subtotal
tests/test_afgs.py 2 2
tests/test_alias_dict.py 1 1
tests/test_all_device_drivers.py 1 1
tests/test_alternative_connection_addresses.py 19 19
tests/test_awgs.py 4 4
tests/test_config_parser.py 38 38
tests/test_device_manager.py 18 18
tests/test_devices_legacy_tsp_ieee_cmds.py 3 3
tests/test_generate_waveform.py 6 6
tests/test_helpers.py 71 71
tests/test_ieee_scpi_cmds.py 1 1
tests/test_margin_testers.py 5 5
tests/test_pi_device.py 1 1
tests/test_psu.py 1 1
tests/test_rest_api_device.py 10 10
tests/test_scopes.py 7 7
tests/test_singleton.py 1 1
tests/test_smu.py 4 4
tests/test_ss.py 1 1
tests/test_tm_devices.py 4 4
tests/test_unsupported_device_type.py 1 1
TOTAL 199 199

Link to workflow run